wince下出现Exception 'Alignment Error'

天山 2010-11-16 10:48:18
在我的板子上插入sdio接口的wifi无线模块,能够识别到,但是在我的编译环境VS2005中跳出如下的异常信息:

16685 PID:400002 TID:462000e [WiFi]: Firmware Version: 9.70.4.0
16892 PID:400002 TID:462000e Exception 'Alignment Error' (4): Thread-Id=0462000e(pth=88577028), Proc- Id=00400002(pprc=8102130c) 'NK.EXE', VM-active=051a0002(pprc=8ef87a48) 'explorer.exe'
16893 PID:400002 TID:462000e PC=c0b52a60(sdio8686.dll+0x00012a60) RA=c0b52a38(sdio8686.dll+0x00012a38) SP=d14bfd50, BVA=00000000


请问怎么回事啊? 应该从哪里着手找呢?看过我们的sd host controller driver 都是对齐的,请大虾帮帮忙啊
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天山 2010-11-17
  • 打赏
  • 举报
回复
找到那个map文件了,并通过PC=c0b52a60(sdio8686.dll+0x00012a60)定位到HandleScanResponse这个函数,(通过名字好像是扫描热点吧),但是我们好像没有编译源文件,只是用的dll。现在我修改如下:
将SDIO8686.dll,SDIO8686.rel,SDIO8686.map,SDIO8686.pdb,放到release目录下,重新build下载到板子上,插入wifi卡之后,先打印很多DMAWRITE的信息,又是怎么回事啊?

110070 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110070 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110071 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110072 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110073 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110074 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110075 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110076 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110077 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110123 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110124 PID:400002 TID:43d004a [WiFi]: Firmware Version: 9.70.4.0
110124 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110126 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110128 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110129 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110131 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110135 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110139 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110147 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110150 PID:400002 TID:2450002 DMAWRITE: 0xd0cb0000
110326 PID:400002 TID:43d004a Exception 'Alignment Error' (4): Thread-Id=043d004a(pth=88686d08), Proc-Id=00400002(pprc=8105930c) 'NK.EXE', VM-active=01ba0002(pprc=8f298908) 'udevice.exe'
110326 PID:400002 TID:43d004a PC=c0bc2a60(sdio8686.dll+0x00012a60) RA=c0bc2a38(sdio8686.dll+0x00012a38) SP=d14cfd50, BVA=00000000
sunrain_hjb 2010-11-17
  • 打赏
  • 举报
回复
如果没有MAP文件,
可以直接用IDA反汇编sdio8686.dll,
然后查看0x00012a60处到底在做什么。
天山 2010-11-16
  • 打赏
  • 举报
回复
release目录下这么多map文件,应该去哪个里面看呢?sdio8686.map? 另外,我加载完这个wifi卡的驱动之后,它对应的dll文件应该会在release目录下吧,可是怎么没有呢?刚接触这个,不是很懂,还请多多指教。
jw212 2010-11-16
  • 打赏
  • 举报
回复
RA是return address,你可以根据PC=c0b52a60(sdio8686.dll+0x00012a60) 提供的0x00012a60这个地址去MAP文件中找到对应的哪个函数出的问题
天山 2010-11-16
  • 打赏
  • 举报
回复
在sdio8686.dll对应的一个map文件里去找吗?还请指教,另外打印出的“PC=c0b52a60(sdio8686.dll+0x00012a60)”又是指的什么呢?
jw212 2010-11-16
  • 打赏
  • 举报
回复
RA=c0b52a38(sdio8686.dll+0x00012a38)这里出问题了有mAP文件debug一下吧

19,500

社区成员

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

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