分类: LINUX
2012-05-02 21:35:20
在安装了环境,熟悉了环境,也理解了HAL以后,我想我已经为移植Redboot做好了充分的准备工作了。那么,从现在开始,我要试着把基于ecos3.0的redboot移植到freescale的imx27ads开发板上来。大家如果感兴趣,就跟我一起来挑战吧。
首先,我们找一个相同体系结构的平台作为我们移植的起点,这里就选mac7100,因为它和i.mx27一样都是飞思卡尔的ARM芯片。下面我们通过修改mac7100来建立我们自己的mx27平台:
第一步:新平台文件夹和文件的名称修改
复制mac7100,并在当前目录下粘贴建立一个复件mac7100文件夹,做如下改动:
1. 复件mac7100修改成mx27;
2. mx27\ mac7100evb修改成
mx27\ mx27ads;
3. mx27\mx27ads\v3_0\cdl\ hal_arm_mac7100_mac7100evb.cdl修改成
mx27\mx27ads\v3_0\cdl\ hal_arm_mx27_mx27ads.cdl
4. mx27\mx27ads\v3_0\include\pkgconf\mlt_arm_mac7100_mac7100evb_rom.h修改成
mx27\mx27ads\v3_0\include\pkgconf\mlt_arm_mx27_mx27ads_rom.h
5. mx27\mx27ads\v3_0\include\pkgconf\ mlt_arm_mac7100_mac7100evb_rom.ldi
修改成mx27\mx27ads\v3_0\include\pkgconf\mlt_arm_mx27_mx27ads_rom.ldi
6. mx27\mx27ads\v3_0\include\mac7100evb_misc.h 修改成
mx27\mx27ads\v3_0\include\mx27ads_misc.h
7. mx27\mx27ads\v3_0\src\mac7100evb_misc.c 修改成
mx27\mx27ads\v3_0\src\mx27ads_misc.c
8. mx27\var\v3_0\cdl\ hal_arm_mac7100.cdl修改成
mx27\var\v3_0\cdl\ hal_arm_mx27.cdl
9. mx27\var\v3_0\src\mac7100_misc.c修改成
mx27\var\v3_0\src\mx27_misc.c
10. mx27\var\v3_0\src\mac7100_misc.h修改成
mx27\var\v3_0\src\mx27_misc.h
第二步:对mx27文件夹下的相关文件的内容做低智商修改
1. 修改文件mx27\mx27ads\v3_0\cdl\ hal_arm_mx27_mx27ads.cdl
将以下内容:
调整为:
将以下内容:
调整为:
2. 修改文件m x27\var\v3_0\cdl\ hal_arm_mx27.cdl
将以下内容:
调整为:
3. 我们现在再回过头去看一下,上面文件内容的修改有没有包括新建平台时所修改的所有文件名:
显然还有如下两个文件在文件内容修改中没有体现出来:
mx27\mx27ads\v3_0\include\mx27ads_misc.h
mx27\var\v3_0\src\mx27_misc.h
所以还得做如下修改:
在mx27\mx27ads\v3_0\src\mx27ads_misc.c中将
#include
修改为#include
mx27_misc.h目前没有找到有引用此头文件的地方,如果有人知道请告之。
4. 在ecos.db数据库文件中注册我们新加的包
我们先找到文件中package CYGPKG_HAL_ARM_MAC7100的位置,通过拷贝-粘贴-修改的方式,紧挨着它建立新包package CYGPKG_HAL_ARM_MX27,修改之后如下:
然后我们再找到文件中package CYGPKG_HAL_ARM_MAC7100_MAC7100EVB的位置,通过拷贝-粘贴-修改的方式,紧挨着它建立新包package CYGPKG_HAL_ARM_MX27_MX27ADS,修改之后如下:
我们继续再找到文件中target mac7100evb的位置,通过拷贝-粘贴-修改的方式,紧挨着它建立target mx27ads,修改之后如下:
第三步,验证我们新建的mx27平台,虽然其功能仍然是MAC7100的功能
1. 工作目录跳转到configtool所在目录:
命令:
Cd /home/zengdebiao/ecos/ecos-3.0/tools/bin
./configtool
2. 进入如下界面:
3. 从菜单Build-->templates进入窗口:
4. 从中选择MX27ADS应用平台,和配置包类型为Redboot,如下图所示:
5. 点击确定按钮,出现冲突窗口:
6. 利用工具的默认解决方案解决冲突,我们点continue,进入下面窗口:
7. 展开ecos HAL选项,就可以看到我们新添包的内容:
显然,我们对新平台的添加是成功的。
8. 点save将当前设置保存成redboot_mx27.ecc,这是在ecos\ecos-3.0\tools\bin下新增3项:redboot_mx27.ecc,redboot_mx27_build和redboot_mx27_install:显示如下:
9. 点菜单BuildàLibrary,开始编译项目,编译完成后在ecos\ecos-3.0\tools\bin\redboot_mx27_install\bin文件夹中就产生了我们需要的Redboot.bin文件:
由于没有mac7100evb的板子,我们不能亲眼看到运行结果,但我敢肯定,跟采用mac7100建立和编译的redboot运行结构是一样一样的。其实我们目前的工作就像给一个美女换了一件衣服,内在的气质还是一样的。好了,这次低智商修改就到这里,我们下次再做高智商的修改。