为了移植LCD驱动到eCos, 我把PXA270的datasheet的LCD部分仔细看了下,感觉还是蛮复杂的。因此如果移植和调试 LCD 驱动,没有相应的调试工具是不成的,总不能用v0.1.0的 LED 驱动来调试吧。工欲善其事,必先利其器!于是有了v0.2.0版本,增加了 STUART 的串口驱动(已经上载)。这样就有了串口的输入和输出,下一步就可以用它调试LCD驱动了。(还可以用它实现GDB调试,正在考虑中)。
串口的硬件连线如下(详细请参考"PalmDeveloperGuide_PalmOS.pdf",palm 网站有下载):

需要注意的是该管脚是普通的TTL电平,因此需要外接一块电平转化的串口板,将TTL电平转换为RS232电平。该板在《用br104h制作eCos实验板》有介绍。
下面是调试的碰到的一些问题和经验,写在这里共享之。
1、由于PXA270有三个串口,还有一个ASIC设备也支持串口,因此无法确定上面图上的串口到底是哪个。后来想了个办法:首先修改cocoboot源代码,运行之可以打印所有串口的寄存器。安装一个palm的串口应用程序,运行之,可以看到上面的串口的输入输出后,关闭该程序。 再运行cocoboot,对比前后串口的寄存器变化,发现STUART寄存器被初始化过了。就是它了!
2、由于是cocoboot引导eCos内核,而palm OS考虑到省电,因此STUART的时钟是没有使能的。一开始没有想到这点,因此运行串口打印会发现字符无法输出。
3、PXA270的UART和标准的16x5x的驱动有一些区别,IER 的bit 6是 UART ENABLE位,而devs/serial/generic/16x5x 驱动会将IER 的bit 6置0,导致添加16X5X的串口包后,串口无输出。在v0.2.0源码包里,我又新增了一个16x5x_pxa2x0包。
附 v0.2.0 版本的readme.txt
##########################################################
2008-05-26 ning <chou.o.ning@gmail.com>
添加 STUART driver packages
直接使用已编译好的文件直接运行
1. 将bin目录下的cocoboot.prc拷贝到SD(MMC)卡的PALM\Launcher目录下
2. 将bin目录下的zImage和initrd.gz拷贝到SD(MMC)卡的根目录下
3. 连接串口,波特率为38400。在tr650上运行cocoboot, 点击boot, 运行examples/serial.c测试程序,可以看到串口的输入和输出。
代码的安装和编译
1. 和v0.1.0版本相同。
############################################################