注: 1. 分析RedBoot的代码结构;为以后移植、修改RedBoot做准备;
2. 尝试分析Redboot 启动初始化流程,增强对系统启动和相应初始化过程的了解; 根据下一篇《如何构建eCos嵌入式系统 》分析整理基于mx3*的启动过程;
3. 尝试深入了解Redboot 数据传输以及RedBoot 命令部分代码的实现,留待以后能否增加一些命令(或者在一些Redboot开源代码的基础上增加);
4. RedBoot 中深入的一些内容 : Nand Flash 、DDR 、 SD 、 MMC ;
5.eCos(embedded Configurable OS) ---是一个操作系统,而Redboot只是其中的一个应用,但是只需要实现一个HAL 就可以实现一个可配置的小型系统,需要想想里面的接口是如何实现的;尤其是头文件,或者HAL层和上层架构间的通信方式。
一,RedBoot的基本知识:
- 部分内容参考整理自 :《ecos(redboot)移植剖析》 http://blog.21ic.com/user1/3820/archives/2007/36508.html
- 在~/ecos/package/ecos.db ---- 记录了现有包(package)和目标板(target)的描述;一般一个目标板对应多个不同的package,在移植我们的目标板时,可以按照模板添加描述。
- Redboot 的主要模块说明:
- hal(Hardware abstraction layer) -----该部分主要实现和硬件的操作,移植的工作也主要集中在这里。在 HAL 层,又分为以下几部分:Common HAL ---- /ecos/packages/hal/common Architecture HAL ---- /ecos/packages/hal/arm/arch Platform HAL ------/ecos/packages/hal/arm/mx3* 注:在相同的层次中,借鉴相应的其他CPU核是值得而且重要的。
其他重要模块的说明 :
- ecos/packages/devs :包括系统中各种外设的一些代码: 这些代码在不同的地方,根据需要被调用。包括 --- can总线,disk 硬盘,eth 以太网, flash(包括 NAND flash 和MMC 和SD ...均在此), i2c 通讯协议, SPI, pcmcia, pmic, usb协议,serial,watchdog; 在这里可以实现一些与硬件很紧密的外设; 而一般在HAL中,做的是核心的头文件和初始化外设的动作。
- ecos/packages/redboot/ : redboot 基本命令的实现 ,例如: load,fconfig, xyzModem,
原文见:http://blog.csdn.net/tianruxishui/article/details/5299804