基于ARM的Linux系统移植研究与实现

发布者:光子梦境最新更新时间:2013-12-27 来源: eccn关键字:SBC2410  Linux  嵌入式系统  系统移植 手机看文章 扫描二维码
随时随地手机看文章

0 引言
嵌入式系统是一个专用的计算机系统。该系统以计算机技术为基础,软硬件可裁减,但对功能、可靠性、成本等都有严格的要求。今天,一些专用系统需要处理大量的信息,由于传统的计算机系统很难实现硬件可裁减,因而已经不能满足专用系统的需要。伴随着我国汽车、家电等产业的快速发展,嵌入式系统的应用与开发已成为目前IT产业的一个新的热点。基于ARM的嵌入式系统的开发,首先要解决的问题是嵌入式操作系统的移植。Linux操作系统作为一种源代码开放、同时可支持多种处理器结构的多任务操作系统,具有内核小、易裁剪、可移植性好等优点,是目前嵌入式系统应用与开发的主流操作系统。本文主要研究在ARM9平台上搭建嵌入式Linux系统的实现方法。

1 嵌入式Linux操作系统及特点
目前,在嵌入式系统开发中,52%的项目选择Linux作为嵌入式操作系统,这与Linux自身的优良特性有不可分割的关系。
 Linux操作系统内核源代码开放,并具有丰富的软件资源。不同的应用领域可以根据需要对内核进行修改,每一种通用程序在Linux都能找到。在Linux上开发程序不需要从头做起,可以选择一个类似的软件进行二次开发,因而能够低成本地开发出满足自己需要的嵌入式系统。
另外,Linux系统能支持多种硬件设备,而且驱动丰富,能支持多种主流硬件设备和最新硬件技术。随着Linux的广泛应用,许多芯片生产厂家也已经开始为Linux提供驱动,这为Linux在各种硬件平台上的应用奠定了基础。
 Linux可支持多种体系结构,具有较好的可移植性。目前,Linux已经移植到绝大多数硬件平台上,能够支持ARM、MIPS、LPHA、SPARC等多种体系,Linux支持几乎所有流行的CPU。Linux具备一整套工具链,容易建立嵌入式系统的开发环境和交叉运行环境,可跨越嵌入式系统开发中仿真工具的障碍。由于其符合IEEE POSIX.1标准,因而应用程序具有较好的可移植性。
Linux具有完善的网络通信和文件管理机制。实际上,Linux从一开始就与网络密不可分,网络是Linux的最为显著的特征。Linux具有ARM9上的嵌入式Linux系统移植的特性,从而保证了它支持所有标准因特网协议,可以利用Linux的网络协议栈开发嵌入式TCP/IP网络协议栈。同时,Linux支持ext2、fat16、fat32、romfs等文件系统,从而为嵌入式系统应用开发打下了很好的基础。

2 Linux在ARM平台上的移植
2.1 SBC2410硬件平台介绍
SBC2410硬件平台是具有基于ARM9处理器SBC2410A,可支持ARM—Linux、WindowsCE等操作系统的嵌入式硬件平台。主要硬件资源有一片64 MB SDRAM,一片64 MBNandFlash,一片1 MB Nor Flash,一个串口COM0,一个USB Host A型接口,一个USB Slave B型接口,以及一个标准的JTAG接口等。
2.2 Linux在ARM平台上的移植准备
首先是要建立交叉编译环境。交叉编译环境是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要包括编译器gcc,二进制工具binutils,目标系统的标准c库glibc和目标系统的Linux内核头文件。宿主机要选好做嵌入式开发的Linux操作系统,配置好网络、NFS服务等。因为目标机没有足够的资源运行开发工具和调试工具,所以要在宿主机上建立交叉编译环境,然后由交叉编译工具生成可执行二进制代码(并不能在宿主机上运行),再下载到目标板上调试和运行。交叉编译标准c环境的生成步骤包括以下四步:
(1)获得binutils、gcc、glibc的源码;
(2)配置编译binutils,得到汇编器和连接器;
(3)配置编译gcc源码,生成gcc编译器;
(4)配置glibc编译生成glibc的c库函数。

2.3 引导程序移植bootloader
引导程序bootloader是与体系结构紧密相关的部分,是操作系统内核和应用程序运行之前运行的一小段程序,用于完成系统的启动和加载。它类似于PC机中的BIOS程序。bootloade严重依赖于硬件实现,一般在嵌入式系统中建立一个通用的bootloader是不可能的。用户必须自己编写这一小段程序,从而完成硬件设备的初始化,建立内存空间的映射图,将系统的软硬件带到一个合适的状态,为操作系统内核的运行做准备。
通常bootloader移植分为两步:
第一步常用汇编语言实现依赖于CPU体系结构的代码。主要包括硬件设备初始化;为加载bootloader准备RAM空间;拷贝bootloader到RAM空间中;设置好堆栈。
第二步常用C语言来实现。即:初始化本阶段要使用到的硬件设备;检测系统内存映射(memory map);将kernel映像和根文件系统映像从flash上读到ram空间中;为内核设置启动参数;调用内核。图1所示是bootloader的工作流程图。

bootloader的工作流程图

2.4 内核移植
内核移植首先应当启动操作系统,完成内存管理、任务调度、进程管理、加载驱动程序、网络等功能,然后执行应用程序或等待用户命令。虽然各功能之间存在复杂的调度关系,但由于Linux分层结构的特点,已将其中硬件相关的代码独立了出来,因此,移植过程中只需要改动进程管理、内存管理和设备管理中与硬件相关的那部分代码。
一般情况下,从官方网站上下载的内核不能直接在硬件平台上运行,而要跟据具体的硬件平台重新裁剪、编译内核,并根据硬件平台特性编写相应的硬件相关的代码,将Linux移植到硬件平台。对内核代码的修改包括以下部分:
(1)修改内核目录树根下的Makefile,找到ARCH和CROSS_COMPILE,修改ARCH=arm,CROSS_COMPILE=armlinux,然后设置PATH环境变量,在文件bashrc中添加expor PATH=/usr/local/arm/3.4.4/bin:$PATH,使其可以找到交叉编译工具链,然后重新登陆。
(2)设置flash分区,修改arch/arm/machSBC2410/devs.c用以指明分区信息,该文件的内容建立nand flash分区表;修改arch/arm /machSBC2410/machsmdk2410.c文件指定启动时初始化,并在kernel启动时依据对分区的设置进行初始配置。在Linux源文件目录下,执行makemenuconfig命令,配置内核产生config文件,选择处理器类型为SBC2410,选择串口驱动设备,完成后保存config文件。
在完成内核的裁减之后,执行命令make clean,编译内核之前先把环境给清理干净,也可以用makerealclean或makemrproper来彻底清除相关依赖,保证没有不正确的文件存在,最后将zimage下载到开发板。

3 结语
经过移植,Uboot和Linux在SBC2410平台就能运行,在此基础上,还可以进一步开发各类驱动程序及应用软件。用串口线将SBC2410和PC机相连,通过超级终端可以看到移植成功。系统成功启动后,就可以进入根文件系统。本文通过分析Linux的特点和移植方法,总结出了一种基于ARM的Linux系统移植的方法,并实现了Linux系统内核在SBC2410处理器平台上的移植。

关键字:SBC2410  Linux  嵌入式系统  系统移植 引用地址:基于ARM的Linux系统移植研究与实现

上一篇:基于嵌入式Linux的运动目标检测系统
下一篇:基于嵌入式WinCE5.0的无线监控系统

推荐阅读最新更新时间:2024-03-16 13:32

使用gcc工具链进行Linux环境下的stm32开发
处于好奇和学习Linux的目的,准备开始在虚拟机VMware的Ubuntu9.10操作系统下搭建stm32的开发环境。整个过程包括:安装gcc工具链---- 建立工程目录--- 编写Makefile,连接文件--- 编译生成可执行文件--- 下载测试。 我的工程资源:http://download.csdn.net/detail/xiaoxiaoxingkongo/9732047 工程建立参考连接:http://blog.csdn.net/embbnux/article/details/17616809 烧录参考链接:http://blog.csdn.net/ybhuangfugui/article/details/52597
[单片机]
Gnuboy虚拟机技术在ARM Linux中的应用及优化研究
Gnuboy已经实现了i386汇编代码的一些优化工作,能够在奔腾机器上运行良好,除此之外,到目前为止,它能够运行的平台还很有限。随着嵌入式系统设计技术的发展,PDA、Smartphone等嵌入式产品的功能不断地得到扩展,适应用户的需要, Gnuboy在嵌入式产品中的移植应用非常具有前景。目前Gnuboy在ARM Linux下还没有得到很好的应用,本文就是在构建的基于ARM920T Linux的嵌入式平台上对gnuboy运用进行的尝试性工作,同时, Gnuboy作为一种虚拟机技术,本文的工作对研究虚拟机技术在ARM L inux中的应用也具有一定的价值。 硬件环境 本实验测试板采用Motorola公司的MX1 Lite,系统的主
[单片机]
Gnuboy虚拟机技术在ARM <font color='red'>Linux</font>中的应用及优化研究
linux I2C读写EEPROM
/************************************************************/ //文件名:app_at24c02.c //功能:测试linux下iic读写at24c02程序 /************************************************************/ //包含头文件 #include stdio.h #include stdlib.h #include unistd.h #include sys/ioctl.h #include sys/types.h #include sys/stat.h #include fcntl.
[单片机]
基于ARM Linux的无线音视频对讲系统分析
随着数字化和网络化时代的到来,尤其是宽带无线网络的发展,为音视频这样大数据量传输业务在无线网络上的应用提供了契机。同时由于音视频独特的感官特性,使其相关的应用需求也变得越来越迫切。无线多媒体是多媒体和移动通信这两个领域的技术相互融合的产物,成为当今通信领域的一个热点。鉴于Linux内核的开源性,采用其作为操作系统,从而使整个系统具有更好的实时性和稳定性。整个系统以ARM11为核心处理器、采用新一代视频编解码标准H.264进行编译码,并通过无线网络传输音视频。它充分利用S3C6410微处理器内部集成的多媒体编解码器(Multi-Formatvideo Codec,MFC),有效提高了系统的性价比。整个系统为无线多媒体音视频的传输提供
[单片机]
基于ARM <font color='red'>Linux</font>的无线音视频对讲系统分析
Java技术在嵌入式系统中的应用
摘要:J2ME是Java 2平台的一个版本,使用在各种各样的消费电子产品和嵌入式设备上。Java Card技术规范得Java应用能运行在智能卡和更小的嵌入式设备上。本文介绍J2ME和Java Card的硬件平台和软件体系结构,以及如何进行J2ME和Java Card应用程序开发。Java在移动通信领域的应用已经引起广泛的关注,本文对此进行了详细的描述。 关键词:Java 嵌入式系统 Java卡 J2ME 移动通信 1 Java概述 Java是在1991年由Sun公司James Gosling Patrick Naughton、Chis Warth、Ed Frank以及Mike Sherindan等组成的"STAR7"小组所构
[嵌入式]
浅谈分析Arm linux 内核移植及系统初始化的过程二
4.1. 处理器、设备4.2. 描述 设备描述主要两个结构体完成:struct resource和struct platform_device。 先来看看着两个结构体的定义: struct resource { resource_size_t start; resource_size_t end; const char *name; unsigned long flags; struct resource *parent, *sibling, *child; }; Resource结构体主要是描述了设备在系统中的起止地址、名称、标志以及为了链式描述方便指向本结构体类型的指针。Resource定义的实例将被添加到platform_d
[单片机]
一见倾“芯”,贸泽电子将亮相第六届深圳国际嵌入式系统
  半导体与电子元器件业顶尖工程设计资源与授权分销商 贸泽电子 (Mouser Electronics) 宣布携手ADI, Cinch, Maxim, TE与TI于本月21-23日参加“第六届深圳国际嵌入式系统展”,现邀请广大观众莅临 贸泽电子 展位(1号馆1Q12),透过微观沙盘探索智能家居,工厂,农业,养殖,楼宇等背后的科技原理,开启未来都市生活的大门。此外,观众还将有机会体验VR赛车等互动游戏,并参与开发板抽奖活动。下面就随嵌入式小编一起来了解一下相关内容吧。   随著物联网的商机和应用逐渐实现,嵌入式技术越来越多地融入生产、工作、生活的方方面面,技术变革带来的便利性、创造力与生产力提升越来越明显,各领域对智能化技术与产品
[嵌入式]
基于ARM-LPC2368的网络接口的设计与实现
1 引言 随着Internet技术的迅速发展,人们对信息共享的要求也不断提高。目前,嵌入式系统已经渗透到我们生活的每个角落,它与网络的完美结合,为我们共享信息提供了很大的便利。PHILIPS公司的LPC2368是一款优秀的微处理器,基于它的嵌入式系统如果没有以太网接口,那么其应用价值也就会大打折扣。因此,就整个系统而言,以太网接口电路应是必不可少的,但同时也是相对较复杂的。 以太网接口电路主要由MAC控制器和物理层接口(Physical Layer,PHY)两大部分构成。LPC2368内嵌一个以太网控制器,支持精简的媒体独立接口(Reduced Media Independent Interface,RMII)和带缓冲DM
[单片机]
基于ARM-LPC2368的网络接口的设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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