打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QNX移植到AT91RM9200 --nl1031的笔记
userphoto

2008.03.06

关注
成功移植QNX到AT91RM9200处理器 作者 nl1031 日期 2007-9-16 16:42:00
经过不短的时间,断断续续的工作,在一些网友的帮助下,终于将QNX 6.3移植到ATEML的嵌入式处理器AT91RM9200上。
现在将QNX的微内核,时钟、中断、串口等程序跑了起来,通过超级终端可以进行QNX的一些命令操作了。
Welcome to Neutrino on the ATMEL AT91RM9200 (ARM 920 core) Board. BSP port by ln 2007.9.15
# pidin
     pid tid name               prio STATE       Blocked        
       1   1 proc/boot/procnto    0f READY                      
       1   2 proc/boot/procnto  255r RECEIVE     1              
       1   3 proc/boot/procnto  255r RECEIVE     1              
       1   4 proc/boot/procnto   10r RUNNING                    
       1   5 proc/boot/procnto   10r RECEIVE     1              
       1   6 proc/boot/procnto   10r RECEIVE     1              
       1   7 proc/boot/procnto   10r RECEIVE     1              
       2   1 /boot/devc-ser9200  10r RECEIVE     1              
       3   1 proc/boot/slogger   10r RECEIVE     1              
       4   2 proc/boot/pipe      10r RECEIVE     1              
       4   3 proc/boot/pipe      10r RECEIVE     1              
       5   1 bin/sh              10r SIGSUSPEND                 
       6   1 proc/boot/pidin     10r REPLY       1              
# pidin info
CPU:ARM Release:6.3.0  FreeMem:28Mb/31Mb BootTime:May 10 16:20:16 UTC 2007
Processor1: 1091736064 arm920 180MHz
# ls /proc/boot
.script            libc.so            procnto            sloginfo
cat                libc.so.2          shutdown           umount
cp                 ls                 sin                uname
devc-ser9200       mount              slay
echo               pidin              sleep
ksh                pipe               slogger
#


目前,还没有实现FLASH文件系统和网络。有时间再做吧。
现在将操作系统内核及库和一些应用程序做成一个映像,解压后大小大约1.2兆。bootloader是移植的uMon,用uMon将压缩的映像解压到内存,然后在内存中运行QNX系统。

另外值得一提的是QNX在9月12日开放了源代码,也开放了一些BSP,再搞QNX开发容易多了。呵呵
 
完成了QNX下9200的网络和FLASH文件系统 作者 nl1031 日期 2007-9-28 9:14:00
QNX6.32下的FLASH(NOR)文件系统的驱动移植比较简单,增加了28F640J3的器件ID就行。
8M Bytes的FLASH存储器,前2M划分给了bootloader(uMon)和保存QNX内核映像。后6M划分给了QNX系统。
建立了文件系统后,将一些共享库和工具文件拷贝到文件系统中,这样可以减少QNX内核映像的尺寸。
目前的内核映像大约500多KB。
在调试网络驱动时,利用zmodem协议通过串口,将网络驱动拷贝到目标板上,再运行调试。可以利用gdb进行驱动调试。在目标板上运行pdebug代理程序,通过串口进行连接,然后在主机上运行ntoarm-gdb进行调试。
AT91RM9200的网络性能不是很强,EMAC的DMA操作会挤占CPU的总线时间,或许用一个外部的网络控制芯片效果会更好。
试验了QNET和TCPIP,可以通过QNET与QNX主机之间直接通讯,如文件拷贝、进程控制等等。
 
改进了AT91RM9200的QNX网络驱动性能 作者 nl1031 日期 2007-9-28 16:01:00
将AT91RM9200的EMAC接收描述数组改到内部16KB SRAM后,网络性能明显提高。
在QNX主机上用ping -f -i0.001 192.168.0.99 命令运行了10分钟,没有丢包现象。在ethereal网络监视软件的状态统计中,可以看到网络的平均速度大约为: Avg.1.56Mbit/sec。
这样,基本可以应该用在工程中了。
可惜内部SRAM只有16K,只能开10个帧接受缓冲区,如果有160K就好了。呵呵

AT91RM9200板的QNX系统U盘好用了 作者 nl1031 日期 2007-10-19 19:42:00
也是经历了波折,在网友comquter的帮助下,将qnx的usb host驱动运行起来。
9200的usb host接口是ohci兼容的,因此用io-usb -d ohci ioport=0x300000,irq=23命令运行就可以启动驱动。
但是,开始在使能usb host的时钟时,错将usb device的时钟使能。导致已运行io-usb命令就使系统挂起,还以为需要特殊的ohci驱动程序呢。后来使能了正确的host时钟后,驱动正常运行。
at91rm9200板上qnx使用U盘的方法:
#io-usb -dohci ioport=0x300000,irq=23
#devb-umass cam pnp
#mount -tdos /dev/hd0t4 /dos
# df
/dev/hd0t4                 63565      48865      14700       77%  /dos/          
/dev/fs0p1                 12032        6659         5372       56%  /fs0p1         
/dev/hd0                     64128     64128                0     100%                 
 
QNX for 9200的IDE硬盘驱动调试成功 作者 nl1031 日期 2007-10-26 12:12:00
修改了devb-eide的代码,对应到9200的ncs2存储段,设置IDE的中断等。
结果程序运行后,不停中断。原来是中断模式寄存器设置生成外部中断低电平有效。
修改startup代码,SMR初始化成0x40,内外中断都是高电平有效,解决问题。
下面是连接的CF卡,工作在ATA模式。
# devb-eide eide ioport=0x30000000,irq=30
# Path=0 - Generic IDE
 target=0 lun=0     Direct-Access(0) -          SanDisk SDCFB-25 Rev: Rev
# mount -tdos /dev/hd0t11 /dos
# df
/dev/hd0t11               479972         4    479968       1%  /dos/          
/dev/fs0p1                 12032      7743      4288      65%  /fs0p1         
/dev/hd0                  500400    500400         0     100%                 

 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Installing and Running QNX Neutrino on an Embedded System
QNX的启动
Adding a Hard Drive in Linux
几个计算机小知识
QNX基础教程
linux常见故障一:linux 文件系统变只读
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服