- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM的嵌入式Linux操作系统移植的研究
基于ARM 的嵌入式Linux操作系统移植的研究
刘名博,邓中亮
北京邮电大学电子工程学院 (100876)
E-mail :liumbo5552@
摘 要:随着ARM技术的广泛应用, 建立基于ARM构架的嵌入式操作系统已成为当前研究
的热点。本文结合实例论述了基于ARM9核的微处理器上的嵌入式Linux 操作系统的移植技
术, 讨论了uClinux 内核的移植过程中内核代码裁剪,介绍了移植uClinux 的基本实现过程。
关键词:ARM 嵌入式操作系统 移植 Linux
1. 前言
目前, 在嵌入式系统里基于ARM核的嵌入式处理器已经成为市场主流。随着ARM技术
的广泛应用, 建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题。在众多的
嵌入式操作系统里, 开发人员选择比较多的是Linux , 这是因为它公开源代码, 可以让任何
人将其修改移植到自己的目标平台系统里使用。ARM Linux 支持包括ARM7 、ARM9 、
StrongARM等系列的ARM处理器, 这些ARM处理器都带有内存管理单元(MMU) , 而对于不
带有内存管理单元的CPU , 一般采用uClinux 作为其操作系统。本文就是根据实际项目,研
究如何将uClinux 内核(使用的uClinux版本:2.4.18 )移植到ARM构架的目标平台上。
2. 目标平台介绍
本文讨论的嵌入式目标平台采用的是大唐微电子科技有限公司开发的基于 ARM946E
核的COMIP 嵌入式处理器,COMIP 内部集成了LCD 控制器,支持 SRAM、SDRAM 和FLASH
等多样大容量外部存储器。本文所用平台在系统统一编址空间里经重映射后的地址空间分配
为:SRAM 位于 0 ~ 0FLASH 位于 0 ~ 0SDRAM 位于
0 ~ 0。其中FLASH 地址烧写了Bootloader、uClinux kernel 以及Jffs2
文件系统。
3. uClinux 移植分析
3.1 uClinux 启动的 Bootloader 介绍
uClinux 的Bootloader 有许多开源代码,如 Blob 、Redboot 、U-boot 等,Bootloader 有以
下功能:
1. 禁止所有中断;
2. 设置存储器参数;
3. 设置 GPIO 参数;
4. 设置处理器的时钟,初始化各个模式下寄存器与堆栈;
5. 使能 I catch ,D catch ;
6. 跳转到 c 代码,初始化串口,设置 uClinux 启动参数;
7. 然后跳转到 uClinux 的内核启动地址。
3.2 uClinux 启动参数
uClinux 启动可以在 Bootloader 中输入相应的启动参数,启动参数放入 SDRAM 中固定
的地址,以方便uClinux 在启动过程中取得相应的地址的数据,并解释执行。启动参数的定
义在:linux/include/asm/setup.h 。
- 1 -
Linux 2.4.x 以后的内核都期望以标记列表(tagged list) 的形式来传递启动参数。启动参数
标记列表以标记 ATAG_CORE 开始,以标记 ATAG_NONE 结束。每个标记由标识被传递
参数的 tag_header 结构以及随后的参数值数据结构来组成。数据结构 tag 和 tag_header 定
义在 Linux 内核源码的include/asm/set
文档评论(0)