嵌入式VxWorks学习总结报告
嵌入式VxWorks学习总结
作者:学号: 单位:日期:
2010-10-21
1
嵌入式VxWorks学习总结报告 目 录
1 嵌入式VxWorks OS介绍 .................................错误!未定义书签。 2 VxWorks开发 ...................................................错误!未定义书签。
2.1 Tornado开发工具 ......................................... 错误!未定义书签。
2.1.1 安装过程............................................. 错误!未定义书签。 2.1.2 内部组件............................................. 错误!未定义书签。 2.1.3 使用说明............................................. 错误!未定义书签。 2.2 VxWorks开发策略.....................................................................1
2.2.1 交叉调试开发 ...................................................................1 2.2.2 板级支持包BSP................................................................1 2.2.3 任务调度..........................................................................4 2.2.4 信号量 .............................................................................6 2.3 VMWare上安装VxWorks ...........................................................9
2.3.1 概述 ................................................................................9 2.3.2 准备工作..........................................................................9 2.3.3 开始安装........................................................................ 10 2.3.4 编译程序........................................................................ 12 2.3.5 制作引导磁盘 ................................................................. 14 2.3.6 配置FTP服务器 ............................................................. 14 2.3.7 创建VxWorks系统 ......................................................... 15 2.3.8 配置联机调试环境 .......................................................... 16 2.4 PC机上安装VxWorks .............................................................. 18
2.4.1 概述 .............................................................................. 18 2.4.2 开发前准备 .................................................................... 19 2.4.3 修改BSP........................................................................ 19 2.4.4 网卡配置........................................................................ 20 2.4.5 制作启动盘 .................................................................... 22 2.4.6 后续配置与开发.............................................................. 23 2.5 软件界面开发......................................................................... 23
2.5.1 WindML与中文显示 ........................................................ 23 2.5.2 WindML环境配置............................................................ 26 2.5.3 汉字显示方案 ................................................................. 28 2.5.4 WindML注意事项............................................................ 29
3 开发和问题 ................................................................................... 29
I
嵌入式VxWorks学习总结报告 3.1 VxWorks开发工作................................................................... 29
3.1.1 硬件环境搭建 ................................................................. 30 3.1.2 网络通信........................................................................ 30 3.1.3 基于缓冲队列的多任务网络通信 ...................................... 32 3.1.4 命令通道与任务优先级.................................................... 33 3.1.5 双网卡通信 .................................................................... 34 3.1.6 中西文混合输出.............................................................. 36 3.2 问题与说明 ................................................. 错误!未定义书签。
3.2.1 VxWorks版本....................................... 错误!未定义书签。 3.2.2 BSP开发 ............................................. 错误!未定义书签。 3.2.3 开发语言............................................. 错误!未定义书签。 3.2.4 界面开发............................................. 错误!未定义书签。 3.2.5 显卡配置............................................. 错误!未定义书签。 3.3 后续工作 .................................................... 错误!未定义书签。
4 参考资料 ....................................................................................... 39
II
嵌入式VxWorks学习总结报告 2.2 VxWorks开发策略
2.2.1 交叉调试开发
Tornado开发使用主机-目标机交叉开发模型:
应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器与目标机上的目标代理程序的通信,完成对应用程序的调测与分析。主机、目标机与之间的连接情况,可参照下图。
主机的开发环境可以是Windows、HP等操作系统,目标机的硬件环境可以是Power PC、ARM、普通PC机等。
主机与目标机之间的连接可以采用交叉网线或者串口。大多开发采用网线,连接方便,开发简单。
2.2.2 板级支持包BSP
Tornado目录下config/bspname包含板级支持包BSP,它由运行VxWorks的某些硬件驱动文件组成,如有串行线的VME板、时钟和其它设备。文件包括:Makefile, sysLib.c, sysSerial.c, sysALib.s, romInit.s, bspname.h 和 config.h.
文件sysLib.c以硬件独立方式提供VxWorks和应用程序间的板级联系,主要包括: ?
初始化函数
- 初始化硬件到一已知状态 - 标识系统
- 初始化设备,如SCSI或常规设备
1
嵌入式VxWorks学习总结报告 ?
内存/地址空间函数 - 得到板上内存大小 - 总线地址空间
- 设定/获得非易失性RAM - 定义板的内存位图(可选)
- 为有MMU的处理器定义虚拟内存到物理内存的映射 ?
总线中断函数 - 打开/关闭总线中断 - 产生总线中断 ?
时钟/定时器函数 - 使能/不能定时中断 - 设置定时器的周期性 ?
邮箱/位置监视函数(可选)
- 使邮箱/位置监视中断能
在目录config/all 的配置文件usrConfig.c和bootConfig.c负责启动库函数。设备驱动可调用内存和总线管理函数。
板级支持包BSP负责目标板硬件的初始化,实时内核的载入等。对于硬件初始化的顺序,大致可按下表中形式进行:
函 数
sysInit()
(a)锁住中断; (b)禁用缓冲;
(c)用缺省值初始化系统中断表(仅i960); (d)用缺省值初始化系统错误表(仅i960); (e)初始化处理器寄存器到一缺省值; (f)使回溯失效; (g)清除所有悬置中断;
(h)激活usrInit(),指明启动类型。
UsrInit()
(a)对bss赋零;
(b)保存bootType于sysStartType;
(c)调用excVecInit(),初始化所有系统和缺省中断向
量;
(d)依次调用sysHwInit(),
usrKernelInit(), kernelInit().
usrKernelInit()
依次调用classLibInit(),
taskLibInit(), taskHookInit(), semBLibInit(),
函 数 功 能 所 在 文 件 sysALib.s
usrConfig.c
usrKernel.c
2