欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VxWorks嵌入式实时操作系统实验总结

程序员文章站 2022-07-03 16:34:22
...

目录

一、实验目的

1.掌握VxWorks操作系统的原理和使用方法
2.熟悉Tornado开发环境及程序调试方法
3.掌握实验设备连接,做好软件和硬件的准备

二、准备事项

预备知识:

三、实验内容

1.熟悉和搭建开发环境
2. Bootable和Downloadable工程的建立
3.VxWorks系统移植及内核定制实验
4.实验6-1 初始化内存设备、系统时钟,启动应用程序
5.实验6-2 磁盘的建立与删除
6.实验6-3 鼠标数据的采集

四、致谢

.
.
.
.
. 

一、实验目的

1.掌握VxWorks操作系统的原理和使用方法

I. VxWorks实时操作系统概述

VxWorks是专门为实时嵌入式系统设计开发的操作系统,为程序员提供了高效的实时多任务调度、中断管理、实时的系统资源以及实时的任务间通信。在各种CPU平台上提供了统一的编程接口和一致的运行特性,尽可能地屏蔽了不同CPU之间底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks操作系统的应用程序可以在不同CPU平台上轻松移植。·

VxWorks操作系统是一个嵌入式实时操作系统(RTOS),和其他的实时操作系统图一样,其基于以下两个重要机制:
·多任务环境及人物间通信
·硬件中断处理

VxWorks多任务内核完成的功能是:实时调度、任务间通信及互斥,其他功能则作为系统库围绕在内核周维,它们可以根据需要进行剪裁。与其他非实时操作系统的不同主要表现在:
·VxWorks的优先抢占机制基于调度
·VxWorks对外部事件的反应和处理快
·VxWorks容量小并且可配置

II. VxWorks操作系统的使用方法

在实际工程中,一般需要在Tornado开发环境中创建一个带有VxWorks内核的可启动的工程(Bootable VxWorks Image)和一个可下载的应用程序工程(Downloadable Application Module)。对于VxWorks内核而言,其可剪裁,开发人员在Tornado开发环境中可以根据自己的需要选择自己需要的模块,并剔除不需要的模块。

2.熟悉Tornado开发环境及程序调试方法

在本实验中,使用的Tornado开发环境版本为Tornado Version 2.2, 其主界面如下:
VxWorks嵌入式实时操作系统实验总结
图 1- 1 Tornado开发环境界面

在程序调试中,一般可以采用开发环境配带的Debug工具,当然也可以Shell工具中验证查看程序输出的结果,或者将搭建好的操作系统和应用程序下载到实验箱的开发板上,直接进行仿真测试。

3.掌握实验设备连接,做好软件和硬件的准备

I. 硬件连接:

在硬件连接上,主要需要关心的是网口的连接与配置,注意在实验过程中由于计算机的网口需要连接到实验箱,因此计算机不能够通过有线网络连接到Internet,因此在实验开始之前,应尽量给实验用的计算机安装配置好各种需要的软件。

II. 软件准备:

主要用到的软件有:
实验指导书阅读软件:Word、Adobe PDF Reader
实验开发软件:Tornado、TFTP、DNW

具体的实验开发环境环境如下:
硬件环境
处理器: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
安装内存: 8.00GB
操作系统: Windows 7 旗舰版 64位
显卡: NVIDIA GeForce GT 630
硬盘: 2TB
软件环境
Tornado Version 2.2
TFTPD32 v2.51
DNW v0.50A
实验箱
CVTPXA270教学实验平台

二、准备事项

·装有Windows7/XP的PC机
·SinoSys-M2 实验系统及其技术说明书
·已将VxWorks的Boot Loader映像正确烧制的CVT-PXA270实验系统

预备知识:

1. PXA270处理器:

T-PXA270教学实验系统采用Intel公司推出的基于Intel XScale内核技术的新一代嵌入式微处理器芯片PXA270(开发代号Bulverde)系列产品处理器,它兼容ARM体系结构V5TE,主频高达624MHz,针对手持设备提供了非常丰富的功能接口,如LCD、音频、SD/MMC、CF、数码相机接口、键盘等。

除了强大的性能和丰富的功能接口,PXA270中采用了无线MMX(Wireless MMX)和Speed Step两项Intel的专有技术,使得PXA270与其他同类芯片相比,在多媒体处理能力和功耗方面有着非常大的优势。

PXA270的存储器总线接口支持SDRAM、同步/异步的突发模式/页模式Flash存储器、页模式ROM、SRAM、可变延迟I/O(variable latency I/O, VLIO)存储器、PC卡和CF扩充存储器(Compact Flash expansion memory)。存储器类似均可通过软件编程。

PXA270微处理器的存储器接口配置有三个不同的存储空间:SDRAM、静态存储器和PC卡空间。其中SDRAM有四个分区,支持16位、32位访问方式,由nSDCS<0~3>片选控制;静态存储器有6个分区,可连接ROM、FLASH、SRAM或VLIO,支持16位、32位访问方式,由nCO0<0~5>片选控制;而PC卡空间有两个分区。

2.实验箱接口的功用与使用方法

在本实验中,主要用到的接口有网口和连接鼠标的PS/2接口,主要作用均为传输数据。所不同的是,在网口的连接中,需要对其地址进行专门的配置。

三、实验内容

1.熟悉和搭建开发环境

首先按照准备事项准备好所需要的硬件设施,并按照正确的连接方法予以连接,主要包括实验箱的供电,实验箱与实验计算机的连接等,实验过程中一定要保证所有接口连接的可靠性。

在该部分,软件的安装较为复杂,涉及到很多方面的调整与配置,主要的安装注意事项如下:

WIN7 下 TXXX2.2 可以用,必须以兼容性XP3模式,管理员运行(旗舰版WIN7) ,按我们的手册一路安装.最后用另外的三个**文件覆盖到安装目录同名文件即可.环境变量和.DAT也按手册里的设置好.

设置好后,安装过程与xp系统下一样,请按文档执行安装。

如果碰到安装的时候到达60%那就停止的现象,按如下操作:

到进程里把Tornado.exe给关掉,然后安装就能继续了。安装完后,拷贝WIN7下的替换文件,在替换的时候总是出现有程序在运行,实际是在任务管理器中的,服务里运行的WTXAPI.DLL,把这个关掉,这样就可以替换成功了。 **参考文档,和xp一样。

需要替换的文件所在位置(默认安装在C盘):
1、C:\Tornado2.2\host\x86-win32\bin: tornado.exe
2、C:\Tornado2.2\host\resource\tcl\app-config\Tornado: 01TGTSVRCONFIGURE.WIN32.TCL
3、C:\Tornado2.2\host\x86-win32\bin:WTXAPI.DLL
4、C:\Tornado2.2\host\x86-win32\bin:TGTSVR.exe

2. Bootable和Downloadable工程的建立

在本节,创建的是基于VxSim模拟器的工程,不能够下载到板子上,只能进行仿真,在后面会介绍如何创建结合硬件的工程。

·可启动工程的创建

1.创建一个可启动的工程:
VxWorks嵌入式实时操作系统实验总结
图 3 - 2 新建工程(Bootable)
输入新建工程的详细信息,注意路径的选择,最好新建一个独立的路径
VxWorks嵌入式实时操作系统实验总结
图 3 - 3 工程设置(Step 1)
2.选择BSP(基于VxSim模拟器)
VxWorks嵌入式实时操作系统实验总结
图 3 - 4 工程设置(Step 2)
3.完成工程的创建:
VxWorks嵌入式实时操作系统实验总结
图 3 - 5 工程设置(Step 3)
4.编译上述工程
VxWorks嵌入式实时操作系统实验总结
图 3 - 6 编译工程
至此,便建立了一个未做裁剪的默认设置的VxWorks内核工程(Bootable)

·创建一个可下载的工程

1.新建工程
VxWorks嵌入式实时操作系统实验总结
图 3 - 7 新建工程(Downloadable)
2.设置工程名和路径
VxWorks嵌入式实时操作系统实验总结
图 3 - 8 工程设置(Step 1)
3.选择编译器(因本节是基于模拟器创建的工程,因此不需要选择硬件设备)
VxWorks嵌入式实时操作系统实验总结
图 3 - 9 工程设置(Step 2)
4.完成工程的创建
VxWorks嵌入式实时操作系统实验总结
图 3 - 10 工程设置(Step 3)

·对工程进行调试

1.向可下载工程test中添加测试代码:
VxWorks嵌入式实时操作系统实验总结
图 3 - 11 新建文件
2.键入代码:

如下图所示,在本机安装的软件上,无法键入中文字符,如果需要添加注释,应尽量使用英文注释。
VxWorks嵌入式实时操作系统实验总结
图 3 - 12 代码示意
3.编译生成test工程,如图3-13所示。
VxWorks嵌入式实时操作系统实验总结
图 3 - 13 编译
VxWorks嵌入式实时操作系统实验总结
图 3 - 14 下载

4.下载目标文件,如图,3-14所示。
5.确定
VxWorks嵌入式实时操作系统实验总结
图 3 - 15 确定
操作选择:
VxWorks嵌入式实时操作系统实验总结
图 3 - 16 操作选择
完成:
VxWorks嵌入式实时操作系统实验总结
图 3 - 17 启动操作系统
6.此时我们可以通过命令行解释器(Shell工具)进行测试:
VxWorks嵌入式实时操作系统实验总结
图 3 - 18 Shell工具选择
确定
VxWorks嵌入式实时操作系统实验总结
图 3 - 19 启动Shell
7.进行简单测试:
在->之后键入add_test(1, 5)
VxWorks嵌入式实时操作系统实验总结
图 3 - 20 Shell 工具测试结果

3.VxWorks系统移植及内核定制实验

本实验将在Tornado中移植VxWorks操作系统到CVT-PXA270目标机中,且本实验必须有目标机硬件(CVT-PXA270)。
1.新建一个可启动的工程(VxWorks内核)
VxWorks嵌入式实时操作系统实验总结
图 3 - 21 新建工程
step 1 注意路径和工程命名
VxWorks嵌入式实时操作系统实验总结
图 3 - 22 工程设置(Step 1)
step 2 选择BSP
VxWorks嵌入式实时操作系统实验总结
图 3 - 23 工程设置(Step 2)
step 3 完成
VxWorks嵌入式实时操作系统实验总结
图 3 - 24 工程设置(Step 3)
2.编译生成工程
VxWorks嵌入式实时操作系统实验总结
图 3 - 25 工程编译
3.生成目标代码:
于CVT-PXA270内核加载使用u-boot的tftp命令完成,只能将纯机器码加载到目标机RAM中,因此,在加载内核之前必须先将vxworks文件转换成纯机器码文件(.bin)。为使操作更加简单,先利用Tools菜单中的Customize工具定制一个将elf格式文件转化为纯机器码的快捷菜单,方法如下:

打开Tools –> Customize(虽然此时作者已经写好了gen bin 这一快捷工具)
VxWorks嵌入式实时操作系统实验总结
图 3 - 26 新建快捷菜单
点击Add添加一个配置
VxWorks嵌入式实时操作系统实验总结
VxWorks嵌入式实时操作系统实验总结

图 3 - 27 编辑菜单配置
注意:
在Tool Command中,-O是一个大写的O,而非数字0
objcopyarm.exe -O binary vxworks vxworks.bin
点击OK,完成创建

点击gen bin
VxWorks嵌入式实时操作系统实验总结
图 3 - 28 生成bin格式文件
可以看到,此时工程文家中已经出现转换好的vxworks.bin文件,注意,路径在default文件夹中。
VxWorks嵌入式实时操作系统实验总结
图 3 - 29 工程文件夹

4.这个时候,我们就可以把VxWorks下载到目标机中了
首先,使用Tftp32小软件设置待下载的目录;
VxWorks嵌入式实时操作系统实验总结
图 3 - 30 TFTP软件及其配置
打开DNW软件,并点击连接
VxWorks嵌入式实时操作系统实验总结
图 3 - 31 打开DNW软件

打开实验箱电源,此时DNW软件将显示:
VxWorks嵌入式实时操作系统实验总结
图 3 - 32 DNW连接实验箱

下载VxWorks内核映像文件vxworks.bin
键入:
CVT-PXA270 # tftp a0010000 vxworks.bin
此时,显示:
VxWorks嵌入式实时操作系统实验总结
VxWorks嵌入式实时操作系统实验总结
图 3 - 33 操作系统下载
运行VxWorks内核
键入:
CVT-PXA270 # go a0010000
此时显示:
VxWorks嵌入式实时操作系统实验总结
图 3 - 34 操作系统启动
做一简单测试:
键入:
VxWorks嵌入式实时操作系统实验总结
图 3 - 35 测试输出
可以按Ctrl + C停止输出

4.实验6-1 初始化内存设备、系统时钟,启动应用程序

系统中创建的第一个任务是usrRoot,该任务完成的功能有:MMU的完全初始化、文件系统初始化、、网络协议栈和网络设备的初始化、用户工具的初始化和多任务环境的**(定时启动器)等。usrRoot任务函数位于usrConfig.c中,在每个BSP目录下,一般都会有一个usrConfig.c的拷贝。在工程创建的过程中会根据这些文件中的usrRoot函数自动生成usrRoot函数并保存到prjConfig.c文件中。该函数的代码如下所示:

实验中,首先建立一个基于BSP的带系统内核的工程(Bootable),这一过程在前面的实验中已经介绍了完整的过程,在此处不再赘述。之后,打开prjConfig.c文件对其usrRoot函数进行修改,如下:

修改代码之后,将整个工程编译生成,并下载到目标机上,可以看到实验结果如下:
·在DNW超级终端中,可以看到:
VxWorks嵌入式实时操作系统实验总结
图 3 - 36 DNW显示画面

至此,完成了系统的初始化工作。

4.实验6-2 磁盘的建立与删除

在本实验中,需要创建一个可启动的工程(带Vxworks内核)和一个可下载的工程(应用程序),并将磁盘创建与删除的代码(如下)添加到可下载的工程中。值得注意的是,在磁盘文件分配中,以512个字节为一个扇区,这需要在分配磁盘大小时予以考虑,因此,实际创建的磁盘大小可能和我们的初始意愿设置并不相同。
创建和删除磁盘的关键代码如下:
由于硬件连接等不确定因素的影响,导致在DNW软件中显示的调试结果出现乱码,因此,本实验采用Shell工具进行测试。

测试结果如下:
VxWorks嵌入式实时操作系统实验总结
图 3 - 38 磁盘的建立和删除
就实验结果来分析,同一个名称的磁盘是不能多次被创建的,同时在删除创建的磁盘时,需要在函数的参数中,与创建磁盘时输入的参数相对应。

5.实验6-3 鼠标数据的采集

实验步骤:
1.在实验箱上的PS/2鼠标接口上接上一个PS/2鼠标,然后给实验箱上电。
2.参照第五章建立BspTest可启动工程,编译后将其下载到目标机运行,该内核已经缺省包含cvtpxa270mouse.c文件。
3.在VxWorks控制台(DNW超级终端)进行如下操作:
-> drvTestPS2Mouse 1
4.将PS/2鼠标滑动或者按下鼠标键,将在VxWorks控制台(DNW超级终端)上打印相应的值。

实验结果如下:
VxWorks嵌入式实时操作系统实验总结
图 3 - 39 鼠标数据采集返回

四、致谢

学习是一个漫长而艰辛的过程,在面对一个初识的学科,一个从未接触的领域,学习这一过程无疑是存在诸多艰险的。第一次接触实时的嵌入式操作系统、第一次接触软件总体的设计技术,这对于我来说都是全新的,充满着好奇,同样也充满着挑战。
在机载软件设计课程及实验中,我第一次接触到VxWorks嵌入式实时操作系统,认识到实时操作系统、嵌入式操作系统与我们日常所用的PC操作系统的区别,掌握了用Tornado开发环境根据自己的需要设计可裁剪的嵌入式系统的基本方法,掌握了调试内核软件等的方法,并在目标机上验证了自己的想法。这每一步的完成都是不可忽视的进步。
在课程的学习以及实验过程中,感谢李会方老师全程的指导和帮助,感谢老师每次耽误自已的吃饭时间等待我们来上课,感谢老师在课下我们休息的时候还在联系工程师解决实验设备存在的种种问题。是啊,老师做实验的时间比我们每个同学都要长,老师,您辛苦了!