新增treo650 的STUART 串口驱动包源码和测试程序

上一篇 / 下一篇  2008-05-26 22:38:31 / 个人分类:treo650

  为了移植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版本相同。

############################################################

TAG: eCos treo650

引用 删除 yw   /   2008-05-28 00:23:40
ning,请问一下刚上手ecos做些什么来熟练比较好?有C++和一点linux下编程的基础
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar