用PB6开发WINCE时常遇到的错误以及解决方法汇兑

在调试时首先要打开串口调试信息,我的开发板是mini2440,打开串口调试信息,只需要修改..\src\inc\option.h的文件,选择:#define KITL_SERIAL_UART0


下面,是我在实际的开发过程中遇到的一些问题,希望此文能给一些同样遇到下面这些错误的朋友一些帮助……

1、错误代码:CEFilter error. Missing "@CESYSGEN IF" statement(s) detected.

解决方法:删除..BSP\Src\Common DIRS file中的:

“# @CESYSGEN ENDIF CE_MODULES_SDNPCID_IMGUPD”

2、错误代码U1073: don't know how to make  XXXXXXX

解决方法:

修改相应的source文件,看看下面两项是否齐全:

TARGETLIBS=\

   $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \

SOURCELIBS=$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ceddk.lib

如果不全,补全它。

3、错误代码:local function definitions are illegal

解决方法:程序中有漏写了大括号,找到该位置并补全它

4、错误代码:驱动编译通过,加载驱动时出现错误

(1)VirtualAlloc 和VirtualCopy调用失败

(2)Exception 'Data Abort' (4): Thread-Id=00d60002(pth=83cc7464), Proc-Id=00400002(pprc=82008308) 'NK.EXE', VM-active=00d70006(pprc=83cbae88) 'udevice.exe'

PC=c0821744(mykey.dll+0x00001744) RA=c0821734(mykey.dll+0x00001734) SP=d042e938, BVA=d09d0060

Exception 'Raised Exception' (-1): Thread-Id=00d60002(pth=83cc7464), Proc-Id=00400002(pprc=82008308) 'NK.EXE', VM-active=00d70006(pprc=83cbae88) 'udevice.exe'

PC=c003b6c8(k.coredll.dll+0x0001b6c8) RA=8023848c(kernel.dll+0x0000648c) SP=d042e1d4, BVA=ffffffff 

(3)测试应用程序中CreateFile失败,用GetLastError返回的错误代码为:55

解决方法:

错误说明:虚拟分配地址时出错,导致后面的数据访问出现错误。VirtualCopy中第二个参数要用虚拟地址,而不是物理地址,所以把把第二个参数S3C2440A_BASE_REG_PA_IOPORT改为IOP_BASE则可以了。如果要用物理地址(例如驱动访问cpu寄存器),则第三个参数则要加上PAGE_PHYSICAL,并且第二个参数要除以8(>>8

#define S3C2440A_BASE_REG_PA_IOPORT 0x56000000

#define IOP_BASE  0xB1600000

修改前:

//GPIO virtual allocation

 IO_REG=(S3C2440A_IOPORT_REG *)VirtualAlloc(0,sizeof(S3C2440A_IOPORT_REG),

MEM_RESERVE,PAGE_NOACCESS);

 if(!IO_REG) RETAILMSG(debug,(TEXT("gpg virtual allocation failure.\r\n")));

 else {

 VirtualCopy(IO_REG,(S3C2440A_IOPORT_REG *)S3C2440A_BASE_REG_PA_IOPORT,

sizeof(S3C2440A_IOPORT_REG),PAGE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值