ARM Linux在TE2410开发板上的移植

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:gegengwang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:简要介绍了TE2410开发板的硬件特性,重点阐述了Linux 内核在ARM9上的移植过程。其中包括:建立交叉编译环境、系统内核的移植和根文件系统的移植等。移植后的操作系统在开发板上运行稳定,并且可以根据需要编写应用程序,将该开发板用于工业控制。
  关键词:ARM Linux;TE2410;移植;Bootloader
  中图分类号:TP311.54文献标识码:A文章编号:1009-3044(2008)31-0915-02
  Porting ARM Linux to TE2410 Board
  YAN Guo-yingZHANG Ji-kou
  (Hebei University, Baoding 071002, China)
  Abstract:The hardware properties of TE2410 board are presented. The technique of Porting ARM Linux to TE2410 board are introduced in this paper. All the work consists of the building the cross compile environment,the Porting of ARM Linux kernel and the Porting of root File system. After finished the porting successfully,the system run stable on the board. We can design application programme to meet control requirements.
  Key words: ARM Linux; TE2410; Porting; Bootloader
  1 引言
  ARMLinux是一个将Linux内核移植到各种基于ARM处理器的目标系统的项目,由RussellKing主持,已经为超过100种不同的目标机器成功完成了移植工作[1]。本文以TE2410 ARM9开发板为开发平台,详细介绍了Linux内核在ARM9上的移植过程。其中包括:建立交叉编译环境、内核的配置和编译、内核文件的烧写、根文件系统的移植等。移植成功后开发人员可以直接调用Linux 已经集成好的各种函数及接口,为新产品早日上市及抢占最有利的市场提供了帮助。
  2 TE2410开发板介绍
  不同的硬件平台所定制的Bootloader和Linux系统内核是不同的。本设计中用到的Bootloader是vivi,版本:0.1.4。开发主机和目标板卡通过串口相连。设计的目标平台为TE2410-1型开发板,基于三星公司的S3C2410X处理器,采用6层板设计。S3C2410X使用ARM920T内核,内部带有MMU(内存处理单元),适用于设计移动手持设备类产品。
  TE2410-1型开发板具有以下主要特性:CPU采用S3C2410XARM9内核,稳定运行200M与258M;64M SDRAM内存;64M nandflash.采用yaffs文件系统可以安全可靠的读写;基于cs8900a的10M网络;显示最高可以达到800x600的VGA和TV输出;基于uda1341的声音输入输出;1个标准串口, 2个usb host,1个usb device,标准SD卡接口,标准20pin JTAG接口;CPU内置STN/CSTN/TFT LCD控制器,支持1024*76分辨率下的各种液晶;板上4个按键5个led;留出总线插座,供用户扩展其他产品用。系统的 Bootloader和Linux内核都是基于以上硬件资源配置的。
  3 移植过程
  3.1建立交叉编译环境
  移植的Linux内核版本为Linux2.6.22.1,交叉编译器(CROSS-COMPILE)版本为4.2.0,开发操作系统为Fedora 6,交叉编译环境建立的具体步骤如下:
  1)解压文件:tar jxvf obsolete-gcc-4.2.0.tar.bz2;
  2)把解压的文件夹中的“4.2.0”文件夹拷贝到 /usr/local/arm目录下。这里需要注意:如果没有arm目录就新建arm目录,但是一定要是拷贝到这个目录,不然不能运行;
  3)在命令窗口输入export PATH=/usr/local/arm/4.2.0/bin:$PATH;
  4)如果输入“arm-”然后按下tab键能自动补全命令 arm-linux-说明搭建成功。
  3.2 内核配置和编译
  在TE2410板卡中,内核的配置和编译主要涉及对下列文件的修改。
  1)修改 Makefile:[root@localhost linux-2.6.22.1]# vi Makefile
  ARCH ?=arm;CROSS_COMPILE ?=/usr/local/arm/arm-2007q1/bin/arm-none-eabi-
  2)修改common-smdk.c文件
  a. vivi 目录下输入vim ./arch/s3c2410/smdk.c命令,在mtd_partition_t default_mtd_partitions[] = {……}查看vivi的分区信息。
  b. 根据vivi中的分区信息,在static struct mtd_partition smdk_default_nand_part[] = {……}
  中设置内核分区。注意:内核分区信息必须和 vivi 的分区信息相同,否则分区表不能显示,烧写的内核也不能运行。TE2410 开发板的分区如表1所示。
  c. 在 arch\arm\mach-s3c2410\mach-smdk2410.c 文件中加入S3C2410X需要初始化的设备接口,主要包括对usb、lcd、i2c总线、nand等的初始化。命令格式如:
  Startic struct platform_device *smdk2410_devices[] _initdata={
  &s3c_device_usb,
  &s3c_device_lcd;
  ……/*add here*/ }
  3)禁止nand flash 的ECC:内核中的ECC校验码是由S3C2410中nand flash控制器产生的,一般内核烧写时生成的ECC校验码与内核ECC不一致。所以,通常选择禁止内核ECC校验。步骤如下:打开drivers/mtd/nand/s3c2410.c ;搜索关键字NAND_ECC_SOFT,在s3c2410_nand_init_chip函数里修改NAND_ECC_SOFT为NAND_ECC_NONE。
  4)支持启动时挂载devfs:为了内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统,需要在[root@localhost linux-2.6.22]# vi fs/Kconfig找到menu "Pseudo filesystems"添加如下语句:
  config DEVFS_FS bool "/dev file system support (OBSOLETE)" default y
  config DEVFS_MOUNT bool "Automatically mount at boot" default y depends on DEVFS_FS
  5)配置内核:输入[root@localhost linux-2.6.21.1]# make xconfig命令,通过对选项的添加和去除,可以实现对内核资源的配置。主要内容如表2所示。
  6)编译内核:[root@localhost linux-2.6.22.1]# make zImage
  3.3 烧写linux内核到开发板上
  1)在Windows下:将编译生成的内核镜像 zImage 拷贝到电脑的某个硬盘上,将和TE2410开发板配套的安装光盘上所给的Mytftp.exe 文件拷贝到和 zImage 同一个文件夹下。
  2)重启开发板,到vivi 敲空格,然后在vivi> load flash kernel t
  3)启动 dos 命令:到zImage所在的文件夹下输入 mytftp –i 192.168.0.12 PUT zImage
  回车稍等就会出现vivi>表示烧写成功。
  3.4 根文件系统的移植
  嵌入式Linux系统的根文件系统通常是以Ramdisk的方式存在的,Ramdisk的映像文件一般以压缩的形式存放在Flash中,在内核启动时将这个压缩的文件解压存放到内存中再作为根文件系统装载。根文件系统的移植主要步骤如下:
  1)下载用busybox制作好的root_china.tar.gz,解压以后用命令进入root_china /dev,并输入mknod console c51;
  2)用制作工具mkcramfs将root_china 文件夹里的所有文件做成文件系统;
  3)执行 ./mkcramfs root_chinaroot_china.cramfs将其制成可烧写的cramfs文件系统。
  4)烧写到flash,方法与内核烧写类似。
  在步骤1中容易出现“ VFS: Mounted root (cramfs filesystem) readonly. Freeing init memory: 112K,Warning: unable to open an initial console”的现象?原因是不能正确挂接文件系统。在2.6以前的版本挂接文件系统时会在dev 文件夹下自动生成console 文件。在以后的版本不会自动生成,必须手动在此文件的节点上添加mknod console c51。
  4 结论
  在具有操作系统的嵌入式产品中Bootloader、操作系统内核、根文件系统是必需的,也是保证系统能运行的最小单元。本设计中TE2410开发板的配套光盘中有编译好的Bootloader并已完成Bootloader的烧写。本文主要实现了的Linux2.6.22.1内核和根文件系统的移植过程。移植后的操作系统在开发板上运行稳定,可以减少以后项目的开发周期。
  参考文献:
  [1] 李程远,刘文峰,李善平. ARMLinux在EP7312上的移植[J]. 计算机工程与设计,2003.7,24(7):73-76.
  [2] 孙天泽等.嵌入式设计及Linux驱动开发指南—基于ARM9处理器[M].电子工业出版社,2007(1):191-214.
  [3] 徐英慧.ARM9嵌入式系统设计——基于S3C2410与Linux[M].电子工业出版社, 2007(9):97-121.
其他文献
摘要:本文主要介绍了一种Modbus/TCP工业以太网协议的规范和主要功能分类,在处理Modbus/TCP转换的时候可以参考。  关键词:工业以太网;Modbus/TCP协议  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0855-02  The Achievement of the Modbus/TCP of Industrial Ethernet  HUO
期刊
摘要:以当前流行的开源软件和操作系统为基础,介绍了两种服务器端电子邮件服务的实现方式。涉及到服务器配置以及软件模块的编写。并分析了不同方式实现电子邮件服务的优劣。  关键词:电子邮件服务;Sun Solaris10;Perl;Sendmail   中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0815-02  Implement Email Service on
期刊
摘要:C语言的运算符具有使用灵活的特点,可以用于解决许多其它编程语言难以处理的复杂问题。但在实际应用中,因对其理解不深,可能出现各种难以意料的结果。该文对运算符教学过程中使用容易出现问题的地方进行了分析,并给出提出了相应的解决方法。  关键词:C 语言;运算符;程序设计;逻辑表达式  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)31-0900-02  Analysi
期刊
摘要:以H-H销售系统的研究和开发为背景,针对用户权限的安全问题,对B/S模式下系统用户权限管理的需求进行了分析,采用基于角色的安全管理策略进行了系统功能和业务流程的设计,并采用ASP.NET等技术实现了系统用户权限的静态和动态两种不同的管理模式,并在应用和性能上进行了比较。  关键词:ASP.NET;角色;权限管理  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)3
期刊
摘要:ARP欺骗攻击是一种利用ARP 协议存在的安全隐患对局域网内计算机的通信实施攻击的行为。在对ARP 欺骗攻击的原理进行分析的基础上,本文结合网络管理的工作实际,介绍了三种定位ARP攻击源主机的方法,并提出了三种防御ARP攻击的方案。  关键词:ARP攻击;ARP缓存表;MAC地址  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2008)31-0869-03  ARP
期刊
摘要:介绍一种优秀的嵌入式图形支持软件——MinGUI,初步构建了基于SEP4020 微处理器的嵌入式GUI(图形用户界面)开发平台,并分步介绍了将MinGUI 移植到此嵌入式系统平台的方法。最后在构建好的平台上开发并运行一个GUI实例,验证了此平台的成功开发及其应用的优越性。  关键词:Min GUI;嵌入式系统;SEP4020  中图分类号:TP311文献标识码:A 文章编号:1009-304
期刊
摘要:内容管理系统(CMS)为基于Web的信息管理提供了一种新的形式,即围绕“内容”来运作。CMS框架则进一步为内容管理活动定义了一整套规则和流程,并提供了某种程度的原型。typo3作为一个优秀的CMS框架,除了一般框架都有的特性之外,还特别提供了针对多语言系统的支持。该文介绍了使用typo3来开发一个多语言门户系统的过程和经验,并结合具体实例说明typo3为此类系统开发带来的便利。实践证明,ty
期刊
摘要:基于CTI的水电信息系统是一个采用声音服务器模型的交互式语音应答系统;深入的分析了水电信息系统的需求,给出了系统功能和系统结构图,绘制了语音子系统的工作步骤,给出了系统数据库的总体设计,同时给出了语音子系统与数据库交互的函数接口,较好的完成了远程汇报,查询和管理水电信息的任务。  关键词:计算机电话集成;交互式语音应答;信息系统  中图分类号:TP399 文献标识码:A文章编号:1009-3
期刊
摘要: 该文对无线局域网最新一代的安全协议802.11i协议工作工程中的认证、密钥管理二个阶段进行分析,发现其存在DOS攻击缺陷,并对两阶段中可能出现的相应威胁提出了改进办法。通过对比发现改进后的协议能在认证阶段连接只有通过了双向认证的合法用户。在四步握手时能在CPU正常工作前提下把存储器资源消耗的问题解决,从而更大程度提高了无线数据传输的有效性。  关键词: 密钥;进程;四次握手;协议  中图分
期刊
摘要:针对当前Web服务架构的不足,利用结构化的Chord网络作为Web服务目录支撑平台,设计2层Web服务模型,介绍服务的发布与检索方法,通过比较、分析和仿真试验,验证了模型的优越性,提出了深入分析设计的思路。  关键词:对等网络;Web服务;Chord  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0809-03  Implementing Web Ser
期刊