我在J:\WINCE500\PLATFORM\SMDK2440A\Src\Kernel\Oal\debug.c里修改OEMInitDebugSerial以使用串口0为调试口;
启动WINCE时输出下面信息(有些乱码),然后就看不到任何信息了。
我再用JTAG工具停住系统,查看串口0的寄存器,发现被改变了。
请问:
1. 要想使用串口0作为调试口,应该作何修改?
2. WINCE里,还有哪些代码要去初始化串口?
Wi钿秣s CE Kernel for A彝 (Thumb Enabled) Bu殪?on Feb 8 2007 at 23:36:51
ProcessorT??0920 Revision=0
箴_abt=ffff5000 sp_轵?ffff2800 sp_undef=骀ffc800 OEMAddressT徕靍 = 8002d444
DCac桢: 8 sets, 64 ways, 32 line size, 16384 箝?
ICache: 8 sets, 64 ways, 32 line siz? 16384 size
羽=鎓ffc7cc
OEMIo蔑顃rol: Unsupported 蔑鋏 0x10100b4 - dev殂?0x0101 func 45
OEMIoCont蝻? Unsupported Code 0?01008c - device 0?101 func 35
吓MIoControl: Unsupp矧鬳d Code 0x10100d0 - 鋏vice 0x0101 func 52
OEMIoControl: Un篚痧orted Code 0x10100? - device 0x0101 f躅?62
INFO: CReg2440Uart::CReg2440Uar?鮯ing processor fr羼蹂ncy reported by t桢 螦L (50000000).
串口驱动就是流驱动,和文件操作类似。如果你是乱码出来看看超级终端的设置对不对。不像是串口的问题
在OAL下的debug.c里面修改成uart0即可。很简单。
你的打印有点奇怪,波特率设置要注意。
應是你的 UART0 的 Device Driver 起來後修改的, 請將 Platform.reg 中有關 UART0 的設定先移除後重新 sysgen-buildrel-makeimg 即可.
Paul, Chao @ Techware
最前面的语句是bootloader打印的,bootloader里面的也要修改。至于串口寄存器被修改,那就搜索一下BSP了。
要改两个地方,
一个是debug.c, 初始分,配置串口0为调试口
一个是platform.reg 去除串口0
顶楼上。
Oal中debug.c会对串口0初始化,串口驱动被加载后也会对串口0初始化,而且波特率之类的设置可能是不一样的。
所以你要把串口0当成调试串口,就应该在注册表里面除去对串口0的流驱动加载!
被串口驱动改了,在platform.reg里屏蔽掉UART0的相关信息,重做内核
如果不屏蔽串口驱动,好像也可以改一下波特率的初始值也可以
在WINCE500\PUBLIC\COMMON\OAK\DRIVERS\SERIAL\COM_MDD2\mdd.c的COM_OPEN函数中,默认的应该是9600
我看这个函数OEMInitDebugSerial里面,是通过DEBUG_PORT来判断哪个是调试串口的。那么这个DEBUG_PORT在哪里呢? 我找了半天也没找到啊。。
我把其他的地方进行了交换啊之类的处理,debug.c 、init.c 和 注册表都修改了。但是还是不行。
我用的是idea6410.哪位能指导下啊?
感激不尽!!