ARM在嵌入式linux内核裁剪与移植的应用

发布者:Tianyun2021最新更新时间:2012-01-16 关键字:ARM  linux内核裁剪 手机看文章 扫描二维码
随时随地手机看文章

微处理器用一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器与传统的中央处理器相比,具有体积小,重量轻和容易模块化等优点。微处理器的基本组成部分有:寄存器堆、运算器、时序控制电路,以及数据和地址总线。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。而Linux的开放性,使得许多人都认为Linux非常适合多数Intemet设备。Linux操作系统可以支持不同的设备和不同的配置。Linux对厂商不偏不倚,而且成本极低,因而很快成为用于各种设备的操作系统。嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。

1 嵌入式linux操作系统

Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是"Linux".Linux操作系统也是自由软件和开放源代码发展中最着名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者LinuSTorvalds.Linux的程序源码全部公开,任何人都可以根据自己的需要裁剪内核,以适应自己的系统。文章以将linux移植到ARM920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核的裁剪以及移植过程,文中介绍的基本原理与方法技巧也可用于其它芯片。

2 内核移植过程

2.1 建立交叉编译环境

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。

交叉编译交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓 平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

交叉编译器完整的安装涉及到多个软件安装,最重要的有binutils、gcc、glibc三个。其中,binutils主要用于生成一些辅助工具;gcc则用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具;glibc主要是提供用户程序所使用的一些基本的函数库。

自行搭建交叉编译环境通常比较复杂,而且很容易出错。本文使用的是开发板自带的交叉编译器,即CROSS一3.3.4.交叉编译器,该编译只需将光盘中的arm-linux一3.3.4.bar.bz2用tar ixvf arm-linux一3.3.4.bar.bz2命令解压到/usr/local/arm下即可。

2.2 修改Makefile

Makefile文件Makefile一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

修改内核目录树根下的Makefile时,可先指明交叉编译器。设计时,可向Makefile中添加如下内容:

ARCH ?=arm

CROSS_COMPILE?=arm-linux-然后设置PATH环境变量,使其可以找到其交叉编译工具链,然后运行vi~/.bashrc,再添加如下内容:

export PATH=/usr/local/arln-linux一3.4.4/bin:$PATH

2.3 设置Flash分区

此处一共要修改3个文件,分别如下:

(1)在arch/arm/machS3C2410/devs.c文件中添加如下内容:

#include

#include

#include

然后再建立Nand flash分区表;同时建立Nand F1ash芯片支持,最后加入Nand FLASH芯片并支持到Nand Flash驱动。

另外,还要修改arch/arm/machs3c2410/devs.C文件中的s3c_device_nand结构体变量,同时添加对dev成员的赋值。

(2)指定启动时初始化

内核启动时,可以依据对分区的设置进行初始配置,然后修改arch/am4mach-s3c2410/machsmdk2410.e文件下的smdk2410_devices[],指明初始化时包括在前面所设置的flash分区信息,并添加如下语句:

&s3c_device_nand,

(3)禁止Flash ECC校验

内核一般都是通过UBOOT写到Nand Flash的。UBOOT则通过软件ECC算法来产生ECC校验码,这与内核校验的ECC码不一样,内核中的ECC码是由S3C2410中Nand Flash控制器产生的。所以,这里选择禁止内核ECC校验。

修改drivers/mtd/nand/s3c2410.C 下的s3c2410_nand_init_chip ()函数,可在该函数体最后加上如下一条语句:

chip->eccmode=NAND_ECC_NONE;

3 内核配置过程

3.1 支持启动时挂载devfs

为了使内核支持devfs以及在启动且在/sbin/init运行之前能自动挂载/dev为devfs文件系统,应修改fs/Keonfig文件,找到menu"Pseudo filesystems"并添加如下语句:

3.2 配置内核产生。config文件

Linux内核裁减的配置菜单命令有好几个配置方法,这几个方法实现的功能类似,只是与用户的交互界面不同。其中:

make config是基于文本的、最为传统的配置界面,可进入命令行;

make menuconfig是基于文本菜单的配置界面;

make xconfig是基于图形窗口模式的配置界面,在Xwindow下推荐使用该界面。

在这3种方法中,make menuconfig使用最为广泛,这里选用的是make menuconfig的配置方法。相应的配置有三种选择,它们分别代表的含义如下:

"Y":将该功能编译进内核;

"N":不将该功能编译进内核;

"M":将该功能编译成可以在需要时动态插入到内核中的模块。

运行make menuconfig时,在smdk2410_defeonfig基础上,其所增删的内核配置项如下:

(1)增加对模块的支持

  Loadable module support--->

  [*]Enable loadable module support

  [*]Automatic kernel module loading

  System Type-->

4 内核编译与下载

4.1 内核编译

编译内核时,可运行以下命令:其一是#make clean,即清理环境,保证没有不正确的依赖文件存在;二是#make dep,即将内核源码树中每个子目录产生的".depend"文件建立起依赖关系;三是#make zImage,用于建立压缩的linux内核映像。

4.2 下载zImage到开发板

下载zImage到开发板的方法很多,常见的有网络下载(如FTP、TFTP等方式)、串口下载、USB下载等。本文采用FTP方式来移植Linux内核映像文件到目标机NAND FLASH中。代码如下:

CRANE2410#tftp 0x30008000 zImage至此,该嵌入式Linux的编译和移植工作便告全部完成。

5 结束语

本文以将linux移植到ARM920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核裁剪以及移植的过程,并对移植中的关键技术和重要步骤给出了详细的说明。移植后的Linux系统在开发板上运行稳定,性能良好。本文的操作过程对嵌入式Linux系统在其它处理器上的移植也具有参考意义。

关键字:ARM  linux内核裁剪 引用地址:ARM在嵌入式linux内核裁剪与移植的应用

上一篇:基于嵌入式ARMS3C2440的裂纹实时测量系统的设计
下一篇:基于ARM嵌入式系统GUI开发研究

推荐阅读最新更新时间:2024-03-16 12:51

关于ARM7 S3C4510B上μClinux移植问题
Linux是一种支持多种体系结构处理器的操作系统,有很强的移植性。描述了将μClinux移植到基于S3C4510B处理器目标板上的方法与过程。首先介绍了S3C4510B处理器和μClinux,并简单说明了如何搭建移植环境,然后着重讨论了在该开发板上Bootloader的设计实现以及μClinux内核的移植方法,最后对在这种基于μClinux的嵌入式系统环境下如何开发应用程序做了简单说明。 1引言 ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识
[单片机]
关于<font color='red'>ARM</font>7 S3C4510B上μClinux移植问题
基于ARM的家庭视频服务器的研究
引言 随着科学技术的不断进步和发展,人们对生活质量也提出了更高的要求。家庭网络作为一个新生体越来越近的开始走进人们的生活,它将家庭单元作为一个节点加入了网络的大家庭,其中作为连接家庭内部与Internet的桥梁的家庭网关起了举足轻重的作用。嵌入式网关的主要功能如下: 远程控制:客户通过Internet上连接的任意一台PC机的浏览器,都可以访问家庭网络的服务器;家庭网络中的设备状态将以HTML文件的方式显示在客户端的浏览器中;客户通过对HTML页面上相应设备的点击以实现对家庭网络中设备的远程控制,操作的结果同样以HTML页面的方式刷新客户端的浏览器。 远程监视:客户通过Internet上连接的任意一台PC机的浏览器,都可
[单片机]
基于<font color='red'>ARM</font>的家庭视频服务器的研究
高通私有化能不能成事?孙正义的野心有多大?
  虽然因为特朗普政府的出手干预,让博通收购 高通 的举措最终搁浅,但 高通 并非就此高枕无忧了。事实上,近日又有传闻称, 高通 前任董事长保罗·雅各布(Paul Jacobs)正在预谋和软银孙正义合作,将高通私有化了。据悉,软银计划以 ARM 公司为依托对高通进行私有化运作,软银在2016年斥资300多亿美元将 ARM 收购。当今的智能手机和平板电脑处理器多数都采用 ARM 的技术架构,包括高通在内,也是如此。如果二者真的可以携手的话,那么孙正义的野心不可谓不小,对物联网、移动互联网、车联网都会带来巨大的改变。    私有化高通可不可行?   据悉,雅各布已经聘请两家银行和律师为其处理这笔交易。按照雅各布的计划,控制权仍将留在
[网络通信]
英特尔挑战ARM智慧手机市场主导地位
    经过多年的整军经武,英特尔公司(Intel)即将瞄准手机市场展开出击。 在未来几个星期内,第一批支援英特尔 处理器 的 智慧型手机 将会上市,准备好与采用ARM公司IP架构的手机设备展开一场激烈的市占率争夺战。     英特尔为了这一刻的来临已经花了多年的时间准备了。 元件采购业务相关领域将仔细研究其于第二季的财报结果,以确认产品的表现如何,以及该公司是否能够打入这个炙手可热但竞争激烈的领域。 尽管采用ARM架构的设备已在手机市场占有主导地位,但随着PC发展达到高峰,带动对于行动设备领域的市场需求攀升,也就不难理解为什英特尔会将未来的下注在这些产品的成功上市。     但可别急着为英
[手机便携]
ARM参与管理的厚安创新基金正式启动 瞄准下一代技术革命
集微网消息,由ARM与厚朴投资共同管理的厚安创新基金 (HOPU-ARM Innovation Fund)日前正式启动。该基金的投资者包括中国主权财富基金、中国政府机构下设基金、深圳市政府全资公司以及国际知名投资机构。 结合ARM的全球产业生态系统和厚朴投资丰富的投资经验,厚安创新基金致力于投资来自ARM中国及全球生态系统中极具潜力的技术公司,覆盖一系列创业、创新投资项目,加速以物联网、智能硬件、云计算、大数据、人工智能等为代表的关键性创新应用的诞生。 ARM一直以来与中国共同成长,并积极推动中国创新和产业升级, 过去十年来中国合作伙伴基于ARM芯片的中国芯出货量成长一百多倍,协同两百多个国内合作伙伴打造了涵盖几乎所有电子信息产品
[手机便携]
ARM Cortex -M 体系结构
ARM的发展过程 对于ARM公司来讲,ARM公司只做CPU设计,采用出售IP的方式运营,半导体产商无需自己设计CPU,是生产关系的革命,提高了生产力。下面这张图ARM核的多个系列,我们可以看到ARM从V7核开始,就分为了A,R和M三个系列,分别对应高端的多媒体计算,中间的实时性系统以及低端的微控制器,而为控制器对应着我们学习的这个领域,Cortex-M系列的来讲,它保持了高度的兼容性。 32位 ARM Cortex M位单片机寄存器组 在数据和地址的通用寄存器角度,ARM Cortex M 系列的单片机都基本上有如下所示的寄存器组,从R0-R15一共16个寄存器构成了单片机的内部寄存器组 从上图可以看到从R0-R12是单片
[单片机]
<font color='red'>ARM</font> Cortex -M 体系结构
ARM将主导500美元以下嵌入式设备市场
摩根士丹利分析师弗朗科斯·穆尼尔(Francois Meunier)在一份研究报告中将ARM的股票评级从“持股观望”上调至“增持”。他认为,ARM在移动处理器市场领先Intel 2年时间,因此业绩还将继续提升。 ARM股票已被列入摩根士丹利的“最佳创意”股票名单中。穆尼尔在报告中表示:“ ARM给出的长期出货量预期最初往往让人觉得过于乐观,但最终却被证明是保守的。 半导体产品的价格弹性、智能手机和平板机等新型产品的出现,以及新兴市场对科技产品需求的上升成为过去5年中行业最主要的增长动力。如果未来5年这一创新趋势仍能够继续,那么到2016年ARM的每股收益将达到0.37英镑(约合0.58美元)。” 穆尼尔预计,ARM今年和明年的
[手机便携]
基于ARM核处理器的机器人手臂控制系统
近年来,随着MEMS及相关技术的发展,微机器人领域已越来越来受人关注。但由于零件的尺寸很小,微机器人组件的装配需要很高的精确度,一般的装配方法无法满足要求。本文介绍了一个可进行微零件装配工作的机器人手臂控制系统的控制方法。 1 系统结构 考虑到多机器人手臂的使用,整个机器人控制系统由上位机与多个下位机组成。下位机即是手臂控制器,每个下位机控制一个机械手臂的伸缩运动。上位机即为控制终端,通过不同配件组装方式生成每个手臂的位置数据,并通过数据线传输给各个下位机,由下位机控制手臂到达目标位置并进行目标操作。整个系统的结构框图如图1所示。 1.1 机械结构 如图2所示,手臂控制器的机械结构由直流减速电机、手臂、螺杆、减速齿轮
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved