保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

Bootrom功能改进经验谈


>

…… /*下载更新代码并更新*/

break;

……

}

“u”命令的实现流程如图3。除了flashUpdate()之外,其它函数都由VxWorks本身提供。如果更新挫败,则改变JP设置,从备份Boot

rom启动,再次更新Bootrom或运行应用软件。

2 增加重启功能

VxWorks的Bootrom用户命令缺少重启功能,给调试和实际应用带来诸多不便。与Bootrom在线更新方法相同,增加这项功能其实并不难,只要在函数bootCmdLoop()中增加新命令“r”(reset的缩写),在命令中调用系统重启函数sysReboot()即可。SysReboot()由设计师根据系统的不同自行编写。

Switch(*(pLine++)){

……

case 'r'; /*重启系统*/

sysReboot();

break;

……

}

举一反三,还可以根据需要在Bootrom中增加许多自己的命令。完成之后,不要忘了在Bootrom命令解释函数bootHelp()中添加新增命令的用途、用法等帮助信息。

3 自动运行应用软件

在实际应用中,一般将上层软件和VxWorks映象链接在一起,暂且称之为应用程序。默认情况下,当Bootrom运行后,它会倒计时7s,然后从启动参数(BOOT_LINE)指定的路径下载应用程序。但是,因为Bootrom提供了启动参数修改命令,启动参数可能由于某些原因发生更改。例如调试时需要从FTP服务器下载,或者疏忽好奇等,给下次应用带来不少麻烦,很可能出现应用程序下载挫败等故障。

为了保证自动启动总是从固定路径下载应用程序,而不受启动参数的影响,需要修改文件bootConfig.c中的自动启动函数autoboot()。例如,自动启动总是从CF卡读取应用程序。

if(bytesRead ==0){ /*倒计时期间没有输入*/

LoadApplicationImage();/*复制应用程序映象到起始地址为Entry的内存中*/

go((FUNCPTR)ENTRY;/*从Entry地址开始运行*/

}

else{

……

}

Entry是应用程序的入口地址,VxWorks系统中该值是RAM_LOW_ADRS。LoadApplicationImage()函数将应用程序映旬从CF卡复制到起始地址为Entry的内存中,然后将PC指针指向该地址,启动系统。如果在倒计时期间有字符输入,则进入Bootrom的命令界面,用户可以修改启动参数,然后按“@”从启动参数指定的路径下载程序,而不影响调试,但是更改后的参数不会影响下次自动启动的下载路径。

4 多种应用软件的选择

在通信领域,许多产品的硬件平台其实相同,区别在于应用软件。不同的软件塑造出了一个个特色鲜明的产品。如果能够将不同的软件集成到一个硬件平台

《Bootrom功能改进经验谈(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/148811.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。