基于arm的嵌入式linux操作系统移植的研究

基于arm的嵌入式linux操作系统移植的研究

ID:34145893

大小:220.72 KB

页数:4页

时间:2019-03-03

基于arm的嵌入式linux操作系统移植的研究_第1页
基于arm的嵌入式linux操作系统移植的研究_第2页
基于arm的嵌入式linux操作系统移植的研究_第3页
基于arm的嵌入式linux操作系统移植的研究_第4页
资源描述:

《基于arm的嵌入式linux操作系统移植的研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、http://www.paper.edu.cn基于ARM的嵌入式Linux操作系统移植的研究刘名博,邓中亮北京邮电大学电子工程学院(100876)E-mail:liumbo5552@sina.com摘要:随着ARM技术的广泛应用,建立基于ARM构架的嵌入式操作系统已成为当前研究的热点。本文结合实例论述了基于ARM9核的微处理器上的嵌入式Linux操作系统的移植技术,讨论了uClinux内核的移植过程中内核代码裁剪,介绍了移植uClinux的基本实现过程。关键词:ARM嵌入式操作系统移植Linux1.前言目前,在嵌入式系统里基于AR

2、M核的嵌入式处理器已经成为市场主流。随着ARM技术的广泛应用,建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题。在众多的嵌入式操作系统里,开发人员选择比较多的是Linux,这是因为它公开源代码,可以让任何人将其修改移植到自己的目标平台系统里使用。ARMLinux支持包括ARM7、ARM9、StrongARM等系列的ARM处理器,这些ARM处理器都带有内存管理单元(MMU),而对于不带有内存管理单元的CPU,一般采用uClinux作为其操作系统。本文就是根据实际项目,研究如何将uClinux内核(使用的uClinux版本

3、:2.4.18)移植到ARM构架的目标平台上。2.目标平台介绍本文讨论的嵌入式目标平台采用的是大唐微电子科技有限公司开发的基于ARM946E核的COMIP嵌入式处理器,COMIP内部集成了LCD控制器,支持SRAM、SDRAM和FLASH等多样大容量外部存储器。本文所用平台在系统统一编址空间里经重映射后的地址空间分配为:SRAM位于0~0x00080000,FLASH位于0x02000000~0x02200000,SDRAM位于0x08000000~0x08800000。其中FLASH地址烧写了Bootloader、uClinux

4、kernel以及Jffs2文件系统。3.uClinux移植分析3.1uClinux启动的Bootloader介绍uClinux的Bootloader有许多开源代码,如Blob、Redboot、U-boot等,Bootloader有以下功能:1.禁止所有中断;2.设置存储器参数;3.设置GPIO参数;4.设置处理器的时钟,初始化各个模式下寄存器与堆栈;5.使能Icatch,Dcatch;6.跳转到c代码,初始化串口,设置uClinux启动参数;7.然后跳转到uClinux的内核启动地址。3.2uClinux启动参数uClinux启动

5、可以在Bootloader中输入相应的启动参数,启动参数放入SDRAM中固定的地址,以方便uClinux在启动过程中取得相应的地址的数据,并解释执行。启动参数的定义在:linux/include/asm/setup.h。-1-http://www.paper.edu.cnLinux2.4.x以后的内核都期望以标记列表(taggedlist)的形式来传递启动参数。启动参数标记列表以标记ATAG_CORE开始,以标记ATAG_NONE结束。每个标记由标识被传递参数的tag_header结构以及随后的参数值数据结构来组成。数据结构tag

6、和tag_header定义在Linux内核源码的include/asm/setup.h头文件中。在嵌入式Linux系统中,通常需要由Bootloader设置的常见启动参数有:ATAG_CORE、ATAG_MEM、ATAG_CMDLINE、ATAG_RAMDISK、ATAG_INITRD等。Linux内核在启动时可以以命令行参数的形式来接收信息,利用这一点我们可以向内核提供那些内核不能自己检测的硬件参数信息,或者重载(override)内核自己检测到的信息。3.3uClinux内核自解压过程处理器在经过Bootloader初始化后,

7、跳转到uClinux的内核起始地址。一般uClinux有两个入口的说法,一个就是Head.S(本版本为head-comip.S),另一个是head-armv.S的,其实真正的入口是head-armv.S。这是由于uClinux编译完成后有两个版本,一个是.ram版本,一个是.rom版本,.rom版本是uClinux可执行文件的压缩版本,.ram为未压缩版本。Head.S为.rom版本的入口地址,head-armv.S为.ram版本的入口地址。head.S可以说属于Bootloader的范畴,主要功能是初始化自解压所需要的空间,获得

8、内核解压后的首地址ZRELADDR;然后调用decompress_kernel,(该函数也有初始化串口,提供串口的输入输出的函数,在include/asm-armnommu/arch-comip/uncompresse.c中定义),在该函数中调用g

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。