构建基于ARM920T的嵌入式Linux系统

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:a0126051548
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对嵌入式Linux系统的启动加载程序bootloader进行配置,对Linux内核进行裁剪,完成对根文件系统的制作,最后将嵌入式Linux移植到基于ARM920T处理器目标板。
  关键词:嵌入式linux;移植;bootloader;文件系统
  
  引言
  
  目前,嵌入式操作系统的种类很多,如VxWorks,Windows CE和Linux等。在这些操作系统中,Linux是发展最快,应用最广泛的。由于使用费用、开放源代码程度和使用习惯等各方面因素,Linux是得到较多推广的操作系统之一。由于Linux支持从x86到嵌入式处理器的多种处理器,使得Linux桌面PC上开发的很多资源可以轻松的移植到各种嵌入式平台上,这种便利使得在嵌入式系统中使用Linux操作系统具有很大吸引力。
  
  开发环境
  
  硬件环境
  本系统中使用目标平台S3C2410(SAMSUNG公司使用ARM920T处理器内核开发的一款嵌入式处理器)。ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。
  S3C2410的资源还包括外围存储设备(SDRAM和NandFlash),外围显示设备(触摸屏和LCD)与外围接口设备(串口、网口与并口)。
  
  软件平台
  嵌入式Linux系统从软件系统的角度通常可以分为以下4个部分。
  ·引导加载程序。包括固化在固件中的启动代码(可选)和Bootloader。
  ·内核。特定于嵌入式板子的定制内核以及控制内核引导系统的参数。
  ·文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统。它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好的运行环境的载体。
  ·用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会有一个嵌入式图形用户界面。同时装有Bootloader、内核启动参数、内核映象和根文件系统。
  
  嵌入式Linux系统移植的实现
  
  引导加载程序
  Boot Loader是在操作系统内核运行之前运行的一段小程序。大多数Boot Loader都分为stagel和stage2两大部分。Stagel主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:(1)为基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache等),(2)为第二阶段准备RAM空间(如果是从某个固态存储媒质中,则复制Bootloader的第二阶段的代码到RAM),(3)设置堆栈并跳转到第二阶段的C程序入口点。Stage2通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:(1)初始化本阶段要使用到的硬件设备,检测系统内存映射。(2)将内核映像和根文件系统映像从Flash读到RAM。(3)为内核设置启动参数,调用内核。
  本系统中采用的BootLoader是韩国Mizi公司开发的vivi,适用于ARM9处理器。在配置编译之前,首先要建立交叉编译环境。把cross-2.95.3.tar.bz2、arm-linux-gcc-3.4.1.tar.bz2软件包拷贝到/usr/10cal/arm目录下,分别解压这两个包以构成本系统的交叉编译环境。
  


  据实际板子的实际情况对NandFlash进行分区。需要注意的是要和下面Linux内核配置编译配合起来。本开发板提供的64M的NandFlash做为存储设备,其空间分配表如表1所示。
  


  [4]make menuconfig
  [5]make
  至此,可以生成vivi的bin文件,通过开发板JTAG口和PC机并口建立连接,把vivi移植到开发板上,重新加电,这样就可以引导内核。
  
  Linux内桉的移植
  Linux的内核版本发行同Linux对嵌入式处理器支持程度的发展是不同步的。因此,需要对特定的处理器体系结构选择合适的核。本系统采用的是linux-2.6.14.1.tar.bz2的版本,与2.4的版本相比,2.6版本对资源的定义进行了分类,代码相当精练,可读性很好,条理清晰,修改起来容易。
  而且支持标准的高级电源管理apm。事实上,Samsung$3C2410已经成为linux的一个标准支持平台。
  编译配置内核主要步骤如下:
  [1]进入内核源代码目录,修改Flash分区表部分的源码,与vivi对NandFlash的分区相匹配。即定义文件arch/arm/mach-s3c2410/devs.c中的分区表结构体static struct mtd_partition partition_info[]中的分区名,偏移量和分区大小。同时加入NandFlash分区,即定义结构体struct s3c2410-nand-set handset[]。与此同时,修改结构体struct s3c2410-platform-nandsupperlpplatform[]以建立对Nand Flash芯片的支持。最后,加入Nand Flash芯片支持到Nand Flash驱动。
  [2]对内核进行适当的配置。在本系统中,配置过程的关键在于是:在对MTD配置时,选择支持MTD驱动以及支持NANDFLASH驱动;选择支持要用到的各类文件系统。如果要建立及安装模块,则要在配置内核时选择模块的支持。选择交叉编译工具arm-linux-gcc-3.4.1编译内核源码之后,会在kernel|arch|arm|boot/下生成名为zImage的内核映象。在vivi的命令提示模式下使用下载命令完成内核加载到开发板的存储设备上。
  
  根文件系统
  Linux系统采用文件系统组织系统的文件与设备,为设备和用户程序提供统一的接口。文件系统的存在使得数据和设备可以被有效而透明地存取访问。 本系统使用CRAMFS格式的根文件系统,它是具备最基本特性的文件系统,主要用于嵌入式系统,优点是将文件数据以压缩形式存储,在需要运行的时候进行解压缩,具有很大的压缩比,可以做到高效的随机读取。
  在本系统中,首先,在根文件目录rootfs下通过输入下面的命令:
  mkdir dev proc etc mnt bin sbin lib tmp建立上述的目录。没有建立home目录是因为其内容只是针对工作站与服务器的设置有用,在嵌入式Linux中即使有也是空的。然后把所需要的配置文件,动态函数库放到相应的目录。
  采用BusyBox是缩小根文件系统的一个好方法。BusyBox非常形象地称为嵌入式Linux系统的“瑞士军刀”,因为它将许多常用的UNIX命令与工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,BusyBox所提供的功能和参数略少,但在嵌入式系统中,已经足够了。
  将busybox-1.1.3.tar.gz放到上述tmp目录下,进行解压:
  


  由于根文件系统采用的是CRAMFS格式,所以使用mkcramfs生成cramfs映象,具体的命令是:mkcramfs my_rootfsmy_rootfs.cramfs。根文件系统映象文件就完成了。同内核加载一样,通过vivi命令提示把根文件系统映象加载到开发板上。
  按照上面的安排,一个基本的嵌入式Linux系统构建完毕。其启动过程如图1所示。
  


  
  结语
  
  本工作对嵌入式Linux系统的启动加载程序bootloader进行配置,对Linux内核进行裁剪,完成对根文件系统的制作,将嵌入式Linux移植到基于ARM920T处理器目标板,为开发者提供了在ARM9平台上构建嵌入式Linux系统的方法的参考。实验表明其系统具有很好的实时性、稳定性。
其他文献
陈建华 孔凡军  摘要:介绍了如何制作一个基于Linux2.6.19内核的小型Linux系统,并将其移植到S3C2410开发板上。内容包括引导程序2.6.19内核、根文件系统的修改、配置、编译、移植等。  关键词:Linux2.6.19内核;小型Linux系统;S3C2410    引言    ARM9$3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前,在便携
期刊
对于大部分中小型企业(SMB),运营成本需要精打细算,所以在低成本IP电话市场SMB是主力军,领先于一般企业和家庭用户。低成本IP电话能够为各种企业与家庭用户提供所需的特性与性能,而无需过高功耗或高级设备的先进功能。所以,低成本IP电话的BOM成本应该控制在20-30美元问,而发展趋势是降至20美元以下。面对这种严格的BOM成本要求,厂商应该如何降低电话成本?  TI公司中国区语音业务拓展经理周刚
期刊
安森美半导体全球汽车电子方案及市场总监贺宝康(Herve Branquart)日前在接受本刊采访时表示,2011年安森美半导体公司的总收入创纪录地达到了34.42亿美元,比2010年增长约49%。其中汽车电子业务占22%,约7.6亿美元,实现了高达62%的同比增长率,高于整体业务的增长。  集中了全面的车身以及动力系统解决方案,安森美半导体开始持续全面发力汽车电子市场。  包括汽车空调方案、车载娱
期刊
在FPGA系统中,实现对外部A/D数据采集电路的控制接口逻辑,由于其逻辑功能不是很复杂,因此可采用自定义的方式。采用这种方法进行设计有两种途径。①从软件上去实现。这种方案将NIOS处理器作为一个主控制器,通过编写程序来控制数据转换电路。由于NIOS处理器的工作频率相对于外部设备来说要高出许多,故此种方法会造成CPU资源极大的浪费;②用FPGA的逻辑资源来实现A/D采集电路的控制逻辑。FPGA有着丰
期刊
谭启寅 马文军 李宗洋  系统功能及应用    本系统主要完成将智能车行驶过程中的各种状态信息(如传感器亮灭,车速,舵机转角,电池电量等)实时地以无线串行通信方式发送至上位机处理,并绘制各部分状态值关于时间的曲线。有了这些曲线就不难看出智能车在赛道各个位置的状态,各种控制参数的优劣便一目了然了。尤为重要的是对于电机控制PID参数的选取,通过速度一时间曲线可以很容易发现各套PID参数之间的差异。对于
期刊
即使是初学者也能够快速掌握的MCU评估工具包    由于系统的处理性能和功能在很大程度上取决于所选用的MCU。因此选用何种MCU是系统设计中非常重要的步骤。特别是没有使用过的MCU,选用前的评估是不可缺少的。“Renesas Starter Kit”(瑞萨学习工具包)就是一款能哆非常简单地进行评估工作的支持工具。  “Renesas Starter Kit”(瑞萨学习工具包)是“开发工具”中的一种
期刊
一“2007英特尔中国多核技术学术论坛”展开多核编程与应用的讨论    2007年7月中旬,英特尔公司在大连召开“2007英特尔中国多核技术学术论坛”,来自全国40多所高校的近百名教师济济一堂,探讨多核时代的软件编程方法和应用方案。    摩尔定律=晶体管预算+最低功耗+最低成本    Intel副总裁兼中国产品开发总经理王文汉博士指出,摩尔定律也随着时代的变迁而变换着内容。1965年诞生的摩尔定
期刊
嵌入式系统设计行业正在发生变化,同一位开发人员经常需要设计具有不同性能的系列终端产品,以适应多样的市场需求。为了迎接这样的设计挑战,飞思卡尔日前推出了新的Flexis系列微控制器(MCU)的前两种产品,在8位与32位产品间的兼容性方面取得了新的突破。  基于S08内核的MC9S08QEl28和第一款基于ColdFire V1内核的器件MCF51QEl28是业内领先的针脚兼容8位与32位的微控制器,
期刊
2008年2月28日至29日,“2008中国半导体年会”如期在上海举行。作为中国半导体行业的重要会议,业界一直把它所传达的信息作为行业发展的风向标。  一方面,由中国半导体行业协会在会议上发布的对于过去一年的重要行业数据,可以作为总结过去的重要参考,同时,行业精英人士在会议上对新的一个的行业发展判断同样致关重要。    市场规模持续扩大,增速放缓    根据CCID在年会上发布的统计数据显示,20
期刊
增长速度快    “据市场研究机构Market Avenue Partners的报告显示,2006年中国MCU的销售额达到43.6亿美元,比2005年增长了16.27%。”MIPS科技公司战略营销经理IanAnderton说,“中国的MCU市场正在迅速发展,并且没有放缓的迹象,因为中国正从低成本产品开发向提供更有价值的产品发展演变。”  苏州国芯科技有限公司的总经理肖佐楠说,2007年中国的MCU
期刊