stm32移植ecos #4,移植redboot(ROM启动方式)上篇stm32移植ecos #5,移植redboot(ROM启动方式)下篇两篇中,详细介绍了redboot的移植过程,且烧写到内部flash后可正常启动。从整个移植过程来看,移植是很简单的。借助ecos模板,几乎不需要太多修改就可以让redboot运行起来。

简单地让redboot运行起来是不够的,我们知道,作为bootloader,其最基本的功能就是用来引导OS,这里就是用来引导ecos系统。那么怎样让redboot来引导我们的ecos系统呢?还有一个我在思考的问题:redboot只是ecos的一个单线程最小系统,而ecos最终是与我们的应用程序链接在一起的,那么,redboot是必需的吗?我们是否不需要redboot就可以一上电直接运行我们的最终目标程序(ecos+应用程序)呢?

怎样让redboot来引导我们的ecos系统

根据我现有ecos的项目经验和嵌入式linux的项目经验,在我看来,redboot引导ecos需要以下几步:

  1. 执行flash的初始化,并创建相应分区;
  2. 把映像文件通过网络或串口下载到内存,再从内存下载到flash。或者直接使用串口或者J-LINK烧写到flash中;注,这里最重要的是创建一个引导入口
  3. 编辑redboot的启动脚本;

虽然步骤很清晰,但当我在redboot中执行fis init即在flash中建立分区后,再重新上电,redboot就起不来了;当把所有flash(包括外部norfalsh)擦除再重新烧写redboot到内部flash后,又可正常启动了。

我再试了另一种方法,想直接引导内存中的程序(helloworld程序,ecos中的一个最简单应用例子),但是用xmodem下载到一半的时候居然不能下载了。囧……

由以上看,要想真正用起redboot并引导OS,还是有很多知识需要了解和很多工作需要做。这个问题先到这里,再来看看第2个问题。

redboot是必需的吗

这个问题,实际上我们想想:在stm32中,如果必需要有redboot作为引导,无形中会给我们的应用带来复杂性。相反,如果不需要,将大大简化ecos在stm32中的应用与开发。

作为这个问题的引子,前几天我在ecos的讨论邮件列表中,看到有人在问“RedBoot necessary for porting ecos?”,而相关回复是:redboot可以不需要。看如下图的原文:

image

当然,redboot也是有其大用的,如考虑远程固件时,使用redboot就很有用了。另外,redboot中可用作GDBServer,这对于使用GDB来调试程序就很有用了。

» 文章出处: reille博客—http://velep.com , 如果没有特别声明,文章均为reille博客原创作品
» 郑重声明: 原创作品未经允许不得转载,如需转载请联系reille#qq.com(#换成@)
分享到:

 Leave a Reply

(必须)

(我会替您保密的)(必须)

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

   
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量