Do everything if needed

Only to note everything I meet.

2011年8月10日 #

CE不能开机的可能情况

摘要: 一般来说CE的BOOT问题可以从如下方面入手:1,如果能调到调到调试串口的初始化函数,说明内存的配置是正确的(可以在该函数中写个死循环来验证),当然也能说明一个最基本的问题,kernel的入口 startup的实现是对的,nk.exe的加载地址也是对的。2,如果OEMInit函数能调到,基本的初始化也能调到,一般来说sp=fffffc(具体数记不到了)都能调到。3,初次做WINCE,ADS用的又比较熟的人需要注意一个问题:WINCE成功启动以后会不停的产生软中断,所以不时进入SWI是正确的,千万不要认为有问题。4,sp地址能正确打印但仍不能启动时,需要查一下RAM与NK是否有重合。5,gwes 阅读全文

posted @ 2011-08-10 07:20 microsun 阅读(578) 评论(1) 推荐(0) 编辑

直接编辑DLL文件,去掉某个链接函数

摘要: 近日,在做一款产品时,因为对开机速度的要求很高,我们将系统剪裁到最小,只剩下kernel,filesys,device和需要的驱动等。但我们使用的一个DLL链接了PostMessage,这个函数应该在GWES存在时才会有。所以该DLL不能被加载。因为该DLL是第三方提供的,没有源码,我们无法去掉对PostMessage的调用。厂家也不愿意修改。所以尝试直接编辑DLL。 首先,用IDA分析,找到使用PostMessage(编号865)的内存位置。但这段内存在IDA中不可读取,更别说编辑了。所以用uledit打开该DLL文件。找到对应的地址后,发现DLL用一段内存在存放import,整个impo. 阅读全文

posted @ 2011-08-10 07:07 microsun 阅读(2768) 评论(0) 推荐(0) 编辑

导航