计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

基于VxWorks的bootrom代码改进

2015-01-15 01:06
导读:理工论文论文,基于VxWorks的bootrom代码改进怎么写,格式要求,写法技巧,科教论文网展示的这篇文章是很好的参考: 摘要:在Wind River公司开发的VxWorks嵌入式操作系统平台上,改进
摘要:在Wind River公司开发的VxWorks嵌入式操作系统平台上,改进交换机产品bootrom软件的实现方式;给出实现方法和改进目的,为BSP开发人员提供一套全新的bootrom实现方案。

1 问题的提出

VxWorks是Wind River公司开发的一种嵌入式操作系统,具有强大的功能和友好的用户界面。VxWorks软件应用非常广泛,不仅应用在网络设备、家用电器当中,而且还应用在航天、导弹等高端领域。在网络设备应用领域中,通常利用VxWorks来开发bootrom代码、BSP(Boadr Support Packet)代码以及上层的网络协议代码。

通常,Bootrom软件有以下功能:①通过串口下载操作系统映像;②通过串口升级自身映像;③通过串口下载系统配置文件、系统信息文件;④加载操作系统映像,使其正常启动;⑤其它的辅助功能,如地址内容查看功能、址内容修改功能和bootrom菜单显示信息控制的功能等。对于通常的bootrom代码编译,大多数用户选择使用GNU make的DOS命令来进行。因为如果bootrom不提供网口功能的话,单纯的CPU驱动部分代码量是不大的;但如果提供网口功能的话,代码量相对较大,文件之间的内在关系比较复杂,因此,系统使用GNU make的DOS命令来编译生成bootrom就显得有点麻烦。Makefile文件主要是由“目标”(target)、“依赖性”(dependencies)和“动作”组成的一系列规则,而VxWorks提供的GNU make工具就是根据Makefile指定的规则来编译和链接程序的。Makefile基本结构虽然简单,但正确、灵活地运用这些规则并不是那么轻松的事情。即使根据GNU Makefile规则书写出适当的Makefile文件,但随着代码的改变,Makefile还需要经常修改,这就增加了BSP开发人员的负担。而且,对于交换产品而言,其成本控制是非常严格的。对于存放bootrom软件的Flash来说,通常要求大小为512KB,这样就需要考虑到容量的限制。

因此,必须使用新的方法来简化bootrom代码编译,而且要在保证提供网口功能的情况下,系统提供的bootrom软件小于512KB。 (科教作文网http://zw.NSEaC.com编辑发布)

2 实现方法

2.1 通过建立工程生成bootrom映像

采用建立工程的方式可以有效地解决这个问题。首先依据bootrom中的BSP代码来新建一个工程,然后将网中驱动代码加入到建好的工程中。这样就可以通过编译工程实现带有网口下载功能的bootrom软件。但对于VxWorks嵌入式系统而言,它有自己一套规范,求bootrom软件在加电后必须从romInit()函数开始运行,而建立工程所得的入口函数为sysInit()。因此需要增加一个系统壳代码,这个壳代码所要完成的任务就是加载bootrom工程的映像,并从romInit()开始执行bootrom代码。通过建立工程来调试bootrom代码有以下优点。

(1)责任分明

开发产品是一个复杂的工程,需要多人合作完成。对于CPU子系统和网口驱动系统这两块内容来说,更需要责任明确。通过建立工程来调试代码,可以准确地定位错误文件和函数的位置。是BSP代码出现问题,还是网口驱动代码出现问题,可以一目了然,做到责任明确。

(2)提高效率

通过建立工程可以节省书写Makefile文件时间,并可以让VxWorks软件的友好图形界面这优点得到更好的体现。另外,建立工程也可以减少文件编译排错的难度,方便工程文件的调试以及功能的验证,从而大大提高工作效率,加快工作进度。

2.2 编写壳代码并实现加载

建立工程生成映像文件的入口函数为sysInit(),而VxWorks规范中要求系统加电后要从romInit()函数开始运行。因此,需要设计一个方案来加载编译工程得到的映像,而且要具备初始化CPU和SDRAM存储空间的功能。

上一篇:setjmp构建简单协作式多任务系统 下一篇:没有了