首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 使用VxWorks时出现了问题,请教各位,给点儿建议!cpu是MPC862 [已结贴,结贴人:sunwind45]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunwind45
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-20 17:33:30 楼主
    自己编了个小程序,在Tornador里结合VxWorks一起.

    程序很简单,就是读存储器!
    xd0 = *(unsigned int *)(SDRAM_ADR);

    xd1 = *(unsigned int *)(BOOTFLASH_ADR);

    xd2 = *(unsigned short int *)(FLASH_ADR);

    我的存储器有三种,一个是SDRAM,32位;一个是BootFLASH,32位;另一个也是FLASH,16位;但不做boot用.
    问题出在第三个读.

    前两个没问题,在读最后一个时,报错!是个异常!好象是存储器访问中断!

    不知道为什么!

    在VxWorks里应该能直接访问硬件吧.VxWorks不熟悉,没研究过,希望有高人指点!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunwind45
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 17:39:071楼 得分:0
    难道变量定义?unsigned int 是32位吗?unsigned short int 是16位吗?

    或者,对于SDRAM和BOOTFLASH之外的存储器,在bsp里是不是有什么额外的设置,才能访问?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunwind45
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:25:282楼 得分:0
    没人?还是我没说清楚?呵呵

    在bsp 里的config.h里,对存储器的设置,是不是影响vxworks对存储器的操作?

    如果,我有两个独立的SDRAM,一个cs1,一个cs2,那么在config.h里应该怎么设置?
    是不是local_mem这里的大小是二者之和,地址要连续?

    要是有两个独立的FLASH,是不是也是这样操作?只不过是在rom那个地方改?


    现在的情况是,我有两个flash,在rom_size那里设成两个的和,读是没问题的.

    但是,我要是有两个sdram,那是不是应该改local_mem那里?


    因为系统之前做好了,没想到有这样的问题.现在要修改local_mem,挺麻烦,要改很多地方!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • frank_zhou
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:10:303楼 得分:20
    *(unsigned short int *)这样访问没有问题,问题是出在内存映射上,这个FLASH_ADR可能没有被MMU映射进去,没法访问。
    可以在shell下用d命令查看一下这个地址,如果不能访问,那就是没有映射进去。到sysLib.c中将地址映射进去就好了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • leejey
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 23:35:294楼 得分:0
    unsigned short int ?????
    干么要这么用?  毛病
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunwind45
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-27 10:23:215楼 得分:0
    呵呵
        变量定义,我不是很专业,很随意的,我也不是开发专业软件,只是测试硬件而已.

    另外一个老大说的,可能是没映射进去,因为访问不了.

    现在,淅沥糊涂的修改了config.h里的ROM_SIZE的大小,使这个值包含我要访问的存储器,而且地址是连续的.这样就可以了.

    实际上,我是在测试mpc862与ti的dsp之间的hpi通信的.因为mpc862要访问dsp的内存,下载代码进去,所以就存在存储器访问的问题.现在是修改那个,就可以了.
    目前只是不是很稳定,可能是硬件的问题.不过,是可以运行了.

    就是有点怪异,dsp那块实际是个ram,而我修改的却是rom_size.

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunwind45
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-03 10:16:226楼 得分:0
    放在一起还是有问题,修改其中一个的时序会对另一个起作用:我修改了cs4的时序,使得bsp引导不起来了.

    还是分开来的好.正如上面的老大说的,在syslib.c里添加一个映射关系,就可以了.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved