2440WINCE向总线读写失败,寻求支持。

wdw1600 2009-07-03 04:50:00
#define nGCS4 0x20000000
...............
...............
#define WRITE_BUS(io_addr, val) (*((volatile unsigned char *)io_addr)=val)
...............
...............
void W83977_init()
{
...............
...............
static void w839977_etr_fuc_mod_enter(unsigned int efio)
{
RETAILMSG(DEBUG,(TEXT("w839977_etr_fuc_mod_enter\n")));//这里要打印
WRITE_BUS(efio, 0x87);
RETAILMSG(DEBUG,(TEXT("w839977_etr_fuc_mod_enter_in\n")));//到这里就不打印了,程序就死在WRITE_BUS了
WRITE_BUS(efio, 0x87);
RETAILMSG(DEBUG,(TEXT("w839977_etr_fuc_mod_enter_out\n")));
}
...............
...............
}

BWSCON寄存器把BANK4的NWAIT是禁止了的,另外总线宽度设置的是32位
void W83977_init()这个函数是在OEMinit()中调用的
请问各位大侠我上面对总线写数据方式是否合法,如果错了谢谢指点下(我自己的诊错是,进入OEMinit函数前WINCE已经开启了MMU所以不能直接对总线地址进行访问,不知我这样理解是否有误)
有关于CE访问总线的链接的大侠谢谢给个,我找了很久没找到,系统卡死在这里很郁闷。。。
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
paul_chao 2009-07-04
  • 打赏
  • 举报
回复
1. 使用 OALPAtoVA 来将 Physical Address 转换为 Uncached Virtual Address.

2. 在 OEMAddressTable 中将 CS4 的空间定义出来.

Paul, Chao @ Techware
wdw1600 2009-07-03
  • 打赏
  • 举报
回复
哦,谢谢,那我回去研究研究。
gooogleman 2009-07-03
  • 打赏
  • 举报
回复
一样的,你看看串口驱动就知道了。
wdw1600 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gooogleman 的回复:]
虚拟地址,以及堆内存等是否分配好了?
[/Quote]
问个很弱智的问题,我也想到要分配这些,但是我不知道怎么分配,以前弄驱动都是给IO分配虚拟地址,但是这个总线地址我不知道怎么分配,
daigua04 2009-07-03
  • 打赏
  • 举报
回复
开启了MMU就应该试用虚拟地址访问SDRAM或其他设备吧
gooogleman 2009-07-03
  • 打赏
  • 举报
回复
虚拟地址,以及堆内存等是否分配好了?

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧