2440 外部串口驱动调试(作者:wogoyixikexie@gliet)
前周,已经把串口MDD移植到了BSP下,自带三串口已经正常,但是外部串口只能发送,不能接收。后来我发现外部串口的中断已经产生,只是2440一直没有反映,我刚开始一直死死的认为这个EINT1初始化是正确的,但是我没有想到这个初始化可能会被别的地方覆盖、修改。毕竟这个BSP不是我们写的。这个东西非常头痛,幸好wince.he牛人写了个寄存器读写工具,现在我准备拿他来用,等下来报告结果。
—————————————————————————————————————————————————————
ARM-WinCE5.0-寄存器读写工具
原文地址http://www.cnblogs.com/we-hjb/archive/2008/10/23/1317176.html
为了解决这两个问题,写了个小软件,MEMMgr.exe。功能很明确,在WinCE中用来读写寄存器,包括CPU内部的控制寄存器和总线上外扩的寄存器。这样,我们就可以监视GPIO了,再也不怕谁来动我的GPIO。:-D控制板上寄存器也更方便。程序界面如下:
其中,PhyAddr是寄存器的物理地址,如S3C2410的RTC寄存器0x57000070。Length是数据宽度,1对应的是一个BYTE,2对应的是一个WORD,4对应的是一个DWORD。Value对应的是寄存器的值。
该程序在S3C2410和PXA270的WinCE5.0上运行都没问题。由于WinCE6.0的内存管理发生了很大变化,所以该程序不能在CE6.0上正常工作。等需要时再做支持吧,车到山前再开路。
MEMMgr.exe的下载地址:https://files.cnblogs.com/we-hjb/MEMMgr.rar。
————————————————————————————————————
厉害,好现在就开始测试。先看看EINT1的寄存器的实际值,到底是否可靠吧。
——果然,这个设置不正确。但是发现程序的设置是正确的,估计是被别的地方覆盖了。
自己重新用应用程序设置试试。果然设置后就可以产生中断了。
_______________________________________________________________________________________________________
哈哈,这个软件很强悍,使用它真是使很多难以解决的BUG都闻风而逃!感谢sunrain_hjb牛人!