BSP 系统的设计与实现分析论文
BSP 系统的设计与实现分析论文
1 BSP 系统设计的意义
前置机通信板使用ARM 微处理器,通过两路以太网口利用安全通信协议实现与联锁机的通信,通过两路CAN 总线实现与电子执行单元的通信,提供8 个LED 灯位来实时显示各种工作状态,利用上电初始化时读取背板地址来动态设置两通道的IP 地址,并能够以主备方式工作。
2 系统的设计与实现
2.1 VxWorks 系统的主要性能特点
VxWorks 系统所需要的存储空间最小要8KB(ROM),具有极好的可伸缩性;支持中断驱动的优先级抢占式调度和时间片轮转调度,并具有确定的、快速的上下文切换能力;支持信号灯、消息队列、管道、信号和套接字等进程间通信和互斥手段;支持诸如Ring、buffer、linklist 等共享内存技术;确定的微秒级的中断响应时间;支持使用于多种物理介质的TCP/IP 协议簇和几乎所有常用的基于TCP/IP 的应用层协议;快速灵活的I/O 系统;支持多种文件系统。
2.2 BSP 开发流程
BSP 的开发需要一个与目标板硬件环境相近的参考BSP 和相关代码模板,从而本文中的`目标板是在公司已有的联锁机三取二主板的BSP 基础上,进行的二次开发。开发环境的建立,主要是以目标板BSP 文件为模版在Tornado 安装的target config 目录下创建用户BSP 目录bspname,把Tornado target config 下文件和BSP模版文件拷贝到该目录下。根据目标板的不同功能对配置文件、寄存器和引脚、内存地址映射、makefile 文件和相关驱动程序等进行配置和修改。根据具体需要在命令行环境下利用Makefile 创建各种镜像,也可以在Tornado 集成环境下Build 菜单中选择Build Boot Rom来创建各种类型的Boot Rom 镜像。
3 镜像和驱动程序调试
初级阶段,主要指bootrom 的调试。bootrom 的开发是VxWorks BSP 开发的起点,目标机没有提供任何服务,使用ADS 中的AXD 工具,通过JTAG 口将编译好的bootrom 文件加载到目标机中。在串口初始化后可以使用串口向电脑打印相关信息,观察bootrom 的运行状态。高级阶段,主要是指最小系统调试完毕后。这时串口驱动完成,在程序中调试相关函数可以轻松实现控制台串口的信息答应,并且串口可以作为开发主机与目标机之间的WDB 通道通信,WDB 连接上后就可以使用Tornado开发环境中提供的工具进行调试。
3.1 调试环境
开发主机操作系统为Windows XP,BSP 应用编程基于VxWorks 嵌入式实时操作系统,并在Tornado 集成开发环境下开发调试。开发主机与目标板之间通过ARMmulti-ICE 仿真器连接,开发主机利用该仿真器调试用于目标板的bootrom_uncmp 镜像和VxWorks 镜像。为了更好的调试,需要查看目标板BSP 的运行过程等信息,然而本目标板不具备VGA 接口,只能通过其自带的串口来输出调试信息。目标板通过自带的串口接9 针串口线与工控机(本设计中的开发主机只带有1 个串口)的COM1 相连,在工控机上利用超级终端来输出打印信息。在串口调试成功后,开始调试网口,目标板利用网口来启动VxWorks,这时目标板需要从开发主机上的TFTP来下载VxWorks。目标板镜像bootrom_uncmp 和VxWorks调试成功后,便可去掉开发主机与目标板之间的ARMmulti-ICE 仿真器,接上J-link 烧写工具,开发主机利用该工具把bootrom_uncmp.bin 烧写到目标板的ROM中。
3.2 target server 的配置以及J-link 烧写工具为了能够实现正常连接,需要对target server 作相应的配置。并用J-link 把bootrom_cmp.bin 镜像烧到ROM 中。
3.3 超级终端
由于目标板硬件上没有VGA 接口,为了便于调试BSP 镜像和相关硬件驱动程序,用USART 下的Debug 口来输出调试信息。
3.4 其它调试
通过网络设备来启动VxWorks 系统时,需要通过TFTP 来下载bootrom_cmp 镜像和VxWorks镜像。在DebugMode 下,用串口、网口、TrueFFS 均能成功启动VxWorks后,便可改动启动模式为内部启动,即在BOOT Mode 下编译BSP,并重新生成boot image 镜像和VxWorks 镜像。
3.5 驱动程序的调试
Debug Mode 和Boot Mode 都能正常启动后,说明镜像是正确的。这时需要调试CAN 控制器SJA1000 的发送、接收功能,LED 灯光的设置和显示,动态电路的切换,背板地址的读取,网络地址的自动判定,模式开关的读取。
4 结论
在本次设计,本人参阅了大量的文献资料,了解了VxWorks 实时嵌入式操作系统中板卡支持包BSP 的概念和作用,熟悉了ARM CPU 结构,掌握了基于ARM 平台的VxWorks 操作系统BSP 开发的技术难点和重点,完成了VxWorks 操作系统在ARM9 芯片AT91RM9200 上的BSP 设计与调试,实现了CAN 控制器SJA1000 的驱动、0~9档的模式开关选择、LED 状态灯的读取和控制、主备切换的动态电路以及板卡背板地址和网络地址的读取。
参考文献
[1] 李勇.基于ARM9 的VxWorks BSP 的设计与实现[D].湖南:湖南大学,2009.