一、今天主要计划干这么些事情:
1)用SourceInsight为BSP和WINCE源码建立工程
2)用Doxygen为BSP和WINCE源码建立工程
3)了解PB的编译过程,加快NK.bin的编译速度
二、执行情况:
1)用SourceInsight为BSP和WINCE源码建立工程
BSP的SI工程大小也就几兆吧,WINCE42的就大了,有六百多兆。
还是不太习惯SourceInsight,主要原因:
- 虽说SI高度可定制,但是要弄得和久已习惯的VC+VAX风格一致,感觉要花的功夫还是太多,而且换台机器还得重新设置。
- SI的搜索结果默认没有高亮关键字,这点远不如PowerGrep。
- 总体看来PowerGrep除了文件多时慢了点,其它真没啥缺点。
2)用Doxygen为BSP和WINCE源码建立工程
调目标板调的烦燥,没有尝试。
3)了解PB的编译过程,加快NK.bin的构建速度
%WINCEROOT%\PUBLIC\COMMON\OAK\MISC
可以把该目录下.bat文件中的echo off替换为echo on, 这样可以在PB中看到很多构建过程的细节,但是有一个bat文件()最好不要打开echo on,负责会输出太多的信息。
a)如果只修改了BSP,那么选择Build->Open Build Release Directory打开一个命令窗口
b)跳转到BSP所在目录执行build
c)如果没有错误,则根据情况,选择运行下列cmd脚本之一
myCopy_rel.cmd
xcopy /q /i /e /c target d:\wince420\public\xbasev1_abc\wince420\xsbase255\cesysgen\oak\target xcopy /q /i /e /c target\ARMV4\retail D:\WINCE420\PUBLIC\xbasev1_abc\RelDir\XSBASE255_ARMV4Release |
myCopy_dbg.cmd
xcopy /q /i /e /c target d:\wince420\public\xbasev1_abc\wince420\xsbase255\cesysgen\oak\target xcopy /q /i /e /c target\ARMV4\debug D:\WINCE420\PUBLIC\xbasev1_abc\RelDir\XSBASE255_ARMV4Debug |
d)然后在PB中点选Make Image或者Build即可
4)阅读资料
上网看了不少文章,回来又仔细阅读了部分参考板的BSP源码
a)从gooogleman的文章中学习到的东西:
#如何添加和删除驱动
http://www.cnblogs.com/wogoyixikexie/archive/2009/02/10/1387346.html
备注:修改platform.bib,注释或者增加相应的内容即可
#PB5下快速构建NK.bin的方法
http://blog.csdn.net/gooogleman/archive/2008/12/27/3613752.aspx
b)从GuruCE网站学习到的东西
如何只编译改动过的部分
http://guruce.com/blogpost/what-to-build-when
备注:和今天白天自己分析PB的构建过程得到的方法基本一致,可惜没有早点看到。
c)GPIO Edge Detect Status Register (GEDR0, GEDR1, GEDR2)寄存器的使用方法
在GPIO口检测到上升沿或者下降沿中断后,GEDR寄存器对应位就会被置1,除非程序员自己手动置0.
- 对应位读0,没有检测到对应GPIO口的边沿中断。
- 对应位读1,检测到对应GPIO口边沿中断。
- 对应位写0,无效。
- 对应位写1,清除标记。
d)调试BSP时可以使用如下方法从串口输出调试信息:
- RETAILMSG(cond, printf_exp) Conditionally displays the print message.
- DEBUGMSG(cond, printf_exp) Conditionally displays the print message.
- 以上两个宏最后都是调用NKDbgPrintfW(LPCWSTR lpszFmt, …)来输出的,而后者又最终调用OAL中我们编写的串口输出函数。
三、今天的主要烦恼
a)由于现在还没有弄明白的原因,经常启动不到桌面(从提示信息上来看,似乎是FLASH中的内容Corrupted造成的)。
在EBOOT菜单里面格式化FLASH后再继续通常即可进入到桌面。
b)Release模式下还无法进入到桌面