九鼎创展论坛
标题:
X210_II 的Wince6.0 Debug 串口使用总结
[打印本页]
作者:
LinkHS
时间:
2013-2-21 09:36
标题:
X210_II 的Wince6.0 Debug 串口使用总结
首先感谢名为“ARM”的QQ群管理员,在他耐心的指导下,解决了我的问题。
1. 在wince中,可以用如下的3个函数打印调试信息,详细信息如下:
NKDbgPrintfW(..)函数一般只在OAL中使用,可以直接从串口中打印出信息,不受编译选项的影响。
DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。
RETAILMSG(..)函数在Debug模式下和Release模式下编译都会打印出调试信息,但是如果你在工程的属性中
的"Build option"中选择了"Enable ship build",那么RETAILMSG函数就不会打印信息了。
所以我们一般选择
RETAILMSG 函数来输出信息。
2. 要使用Debug 串口,要在源码中启动这个串口,我们以板子上的USART0为例,说明要修改的地方。
(1)在WINCE600\platform\smdkv210的
SMDKV210.bat
文件要加入:
set BSP_DEBUGPORT=SERIAL_UART0
这样告诉内核你要使用
SERIAL_UART0
作为板级的调试串口。
(2)在
WINCE600\
platform\smdkv210\src\common\dbgserial的
Dbgserial.c
文件中加入:
#define DEBUG_PORT DEBUG_UART0
这句话在下面的流程分析中起作用。
3. 我们来分析一下内核是如何调用这个串口输出信息的。
(1)首先启动时候在 WINCE600\platform\smdkv210\src\oal\oallib的
Init.c
文件中的
InitializeCLKGating
函数里
开启了UART0的时钟:
file:///C:/Documents%20and%20Settings/Administrator/Local%20Settings/Application%20Data/youdao/ynote/images/2DEF39606ADB426FB7B76F1DA7C6443C/clipboard.png
(2)在
WINCE600\
platform\smdkv210\src\common\dbgserial 的
dbgserial.c
文件中
OEMInitDebugSerial
函数里初始化了ARM芯片串口的相关寄存器。输出函数调用此文件中的OEMWriteDebugByte 函数。
附:在
Platform\smdkv210\cesysgen\files
和
Platform\smdkv210\files
目录都存Platform.bib Platform.reg Platform.dat Platform.db 这四个文件。我们在VS2005中修改的都是
Platform\smdkv210\files
目录下的,当编译nk.bin文件时,wince会把这4个文件中无用的环境变量删除,然后拷贝到
Platform\smdkv210\cesysgen\files
目录下,所以Source Insight 工程可以不加此目录下的文件。
作者:
ARM
时间:
2013-2-25 16:43
作者:
鹏宇
时间:
2013-3-21 22:49
将串口0 作为用户端口设置,貌似除了在SMDKV210.bat 文件注释set BSP_DEBUGPORT=SERIAL_UART0后,在串口驱动里还要注释些代码吧
作者:
绣恩沐
时间:
2020-9-23 16:26
经验啊... 向楼主学习
http://www.topjianzhu.com
http://www.topjiao.com
http://www.topjiaocai.com
http://www.topjiaoche.com
http://www.topjiaocheng.com
http://www.topjiaotong.com
欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/)
Powered by Discuz! X3.2