首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
Bootrom功能改进经验谈 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 23:52:33 点击数:[] ![]() |
|||||
序。默认情况下,当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中增加这项功能并非难事。以两个应用软件为例,在函数bootCmdLoop()中增加新命令“o”(other的编写),如下所示。 switch(*(pLine++)){ …… case 'o': /*启动另一应用软件*/ LoadAnoterApplicationImage();/*复制另一应用程序映象到起始地址为Entry的内存中*/ AutoSystemVersionSet();/*询问用户是否将另一应用软件设置为默认启动*/ go((FUNCPTR)Entry);/*从Entry地址开始运行*/ break; …… } 上述的几点经验大部分是修改文件bootConfig.c的代码。因为bootConfig.c是一个公用文件,为了不影响其它底层软件的开发,建议将它复制到当前Bootrom开发目录下,并且在Makefile文件中增加定义:BOOTCONFIG=bootConfig.c。 嵌入式系统开发需要经常开辟新的思路,一些微小的简单改动通常能够带给产品新的功能和特征。启动代码是嵌入式系统的重要组成部分。笔者的以上四点经验在PowerPC处理器(MPC8260)平台和MIPS处理器(RM7000A)平台上得到了验证,希望对其它系统的启动代码的开发有所借鉴和启迪。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |