一、今天主要计划干这么些事情:

1)用SourceInsight为BSP和WINCE源码建立工程

2)用Doxygen为BSP和WINCE源码建立工程

3)了解PB的编译过程,加快NK.bin的编译速度

二、执行情况:

1)用SourceInsight为BSP和WINCE源码建立工程

BSP的SI工程大小也就几兆吧,WINCE42的就大了,有六百多兆。

还是不太习惯SourceInsight,主要原因:

  1. 虽说SI高度可定制,但是要弄得和久已习惯的VC+VAX风格一致,感觉要花的功夫还是太多,而且换台机器还得重新设置。
  2. SI的搜索结果默认没有高亮关键字,这点远不如PowerGrep。
  3. 总体看来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打开一个命令窗口

image

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 lib d:\wince420\public\xbasev1_abc\wince420\xsbase255\cesysgen\oak\lib

xcopy /q /i /e /c target\ARMV4\retail D:\WINCE420\PUBLIC\xbasev1_abc\RelDir\XSBASE255_ARMV4Release
xcopy /q /i /e /c lib\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 lib d:\wince420\public\xbasev1_abc\wince420\xsbase255\cesysgen\oak\lib

xcopy /q /i /e /c target\ARMV4\debug D:\WINCE420\PUBLIC\xbasev1_abc\RelDir\XSBASE255_ARMV4Debug
xcopy /q /i /e /c lib\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.

  1. 对应位读0,没有检测到对应GPIO口的边沿中断。
  2. 对应位读1,检测到对应GPIO口边沿中断。
  3. 对应位写0,无效。
  4. 对应位写1,清除标记。

d)调试BSP时可以使用如下方法从串口输出调试信息:

  1. RETAILMSG(cond, printf_exp) Conditionally displays the print message.
  2. DEBUGMSG(cond, printf_exp) Conditionally displays the print message.
  3. 以上两个宏最后都是调用NKDbgPrintfW(LPCWSTR lpszFmt, …)来输出的,而后者又最终调用OAL中我们编写的串口输出函数。

三、今天的主要烦恼

a)由于现在还没有弄明白的原因,经常启动不到桌面(从提示信息上来看,似乎是FLASH中的内容Corrupted造成的)。

在EBOOT菜单里面格式化FLASH后再继续通常即可进入到桌面。

b)Release模式下还无法进入到桌面

posted on 2010-03-31 22:31  silentmj  阅读(1217)  评论(0编辑  收藏  举报