基于ARM的嵌入式Linux系统构建.pdf
《基于ARM的嵌入式Linux系统构建.pdf》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式Linux系统构建.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 01 0年 第 1 9卷 第 1 1期 计 算 机 系 统 应 用 基于 AR M 的嵌入式 L i n u x系统构磐 冷玉林钟 将(重庆大学 计算机学院 重庆 4 0 0 0 4 4)摘要:详细论述 了在 基 于 AR M9 2 O T核心 的$3 C2 4 1 O平 台上构建嵌入 式 L i n u x系统 的过程,包括 交叉开发 环境的建立,引导加载程序 U B o o t、L i n u x 操作 系统 内核针对特 定 目标平 台的移植,以及根文件 系 统的建立等。试验结果显示系统在 目标平台上运行稳定、可靠,对其它嵌入式系统的开发具有参考意 义。关键 词:嵌入式 系统:AR M
2、;$3 C2 41 O微处理器:L i n u x Bui l di ng Embe dd e d Li nu x Sy s t e m Ba s e d O i l ARM LE NG Y u Li n,ZHONG J i a n g (De p a r t me n t o f C o mp u t e r S c i e n c e,Ch o n g q i n g Un i v e r s i t y,C h o n g q i n g 4 0 0 0 4 4,C h i n a)Abs t r a c t:Thi s pa p e r d i s c u s s e s t h e
3、p r o c e s s o f b u i l d i ng e mb e d d e d Li n u x s ys t e m o n t h e ARM 9 20 T c o r e ba s e d$3 C2 4 1 0 p l a t f o r m,i n c l u d i ng t h e e s t a bl i s h m e n t of c r o s s-de v e l o pme n t e nv i r o n m e n t,t he t r a n s p l a n t ing of U Bo o t a n d Linu x k e m e l t
4、o a s p e c i fic t a r g e t p l a t f o r m,a n d t h e b u i l ding o f r o o t fil e s ys t e m Th e f ina l s y s t e m p r o v e s t o b e s t a b l e a n d r e l i a b l e a f t e r s e v e r a l t e s t i n g Al s o i t S h e l p f u l t o t h e e x p l o i t i n g o f o t h e r e mb e d d e
5、 d s y s t e ms Ke y wo r d s:e mb e d d e d s y s t e m;ARM;$3 C2 4 1 0 mi c r o p r O c e s s O r;Li nu x 1 引言 随着信息产业的发展和集成 电路技术的进步,嵌 入式系统已经广泛地应 用到移 动计 算设备、网络设备、工控设备、信息 家 电和仪 器仪表等领域。嵌入式系统,是 以应 用为 中心、以计 算机技 术为基础、软硬件 可裁 剪,能适应应 用系统对功能、可靠 性、成 本、体 积、功耗严格要求的专用计算机系统。这种系统具有软件 代码少、响应速度快、高度 自动化 等特 点,用于实现 对其
6、它设备的控 制、监视或 管理等 功能,特 别适用于 要求实时的和多任务的应用。AR M 嵌入式芯片是一 种高性能、低功耗 的 R I S C芯 片。他 由英 国 AR M 公司 设计,世界上几乎所 有的主要半 导体 生产商都生产基 于 AR M体 系结构 的通 用芯片,或在其专用芯片中应 用相关 AR M技 术,$3 C 2 41 0是韩国 S a ms u n g公司 基于 AR M 公司的 AR M9 2 0 T处理器核,采用 0 1 8 u m 制造工艺的 3 2位嵌入式微处 理器。L i n u x是免费发 收稿时间:2 0 1 0 0 3 1 9:收到修改稿时间:2 01 0 0 4
7、 1 8 行 的、快速高效 的操作系统,它的出现 在计 算机世界 引发了一场革命。L i n u x以其代码开放、功能强大又 易于移植等特点成为嵌入式操作系统的新兴力量。在 所有的嵌入式操作 系统 中,L i n u x 是发展最快、应 用 最广泛的。利 用 L i n u x搭建嵌入式系统是近年来 出现 的最令人振奋 的方案之一l 2,3 1。嵌入式 L i n u x是按照嵌 入式操作系统的要求设计的一种小型操作系统,由一 个 内核 以及一些根据需要进行定制 的系统模 块组成。其 内核很小,一般只有几百 k b,即使加上其他必要 的 模 块和 应用程序,所需的存储空间也很小,非常适合 于嵌
8、入 式系统。本 文 将 详 细 论 述 在 基 于A R M9 2 O T 核 心 的 S 3 C 2 41 O平台上构建嵌入式 L i n u x系统的过程,包 括 交 又 开发 环境 的建 立,引导 加载 程 序 U-B o o t、L i n u x 操作 系统内核针对特定 目标平台的移植,以及 根 文件 系统 的建立等。S y s t e m C o n s t r u c t i o n 系统建 设 2 3 计 算 机 系 统 应 用 2 0 1 0年 第 1 9卷 第 1 1期 2 交叉开发环境的建立 嵌入式软件开发 中所采 用的编译为交 叉编译,所 谓交叉编译就是在一个平 台上生
9、成可 以在 另一个平台 上执 行的代码。搭建 交又编译环境是嵌入式开发的第 一步,也是必备的一步,选择合适的交叉编译器对于 嵌入式开发是非常重要的。交叉编译器的安装一般 涉 及到多个软件的安装,这包括 b i n u t i l s、g c c、g l i b c 等软件。其中,b i n u t i l s主要用于生成一些辅助工具,如 o b j d u mp、a s、I d等;g c c是用来生成交叉编译 器,主要生成 a r m-l i n u x-g c c 交叉编译工具;而 g l i b c 主要是提供用户程序所使用的一些基本的函数库。社 区的开发者和一些芯片厂商已经编译出了常用体
10、系结 构的工具链,使用这些工具链,将使得工作量大大降低。将 工 具 链 压 缩 包a r m l i n u x g c c 一 3 4 5 一 g l i b c-2 3 6 t a r b z 2解压至 wo r k s p a c e t o 0 l s目录:#c d wo r k s p a c e t o o l s#t a r j x v f a r m-l i n u x g c c 一 3 4 5 一 g l i b c 一 2 3。6 t a r b z2 在 e t c b a s h r c 文件末尾加入如下一行:P A TH=S P A T H:wo r k s p a
11、 c e t o o l s g c c 一 3 4 5 一 g l i b C 一2 3。6,b _ n 3 嵌入式L i n u x 系统的构建 3 1引导加载程序 U B o o t 的移植 系统上 电之后,需要一段程序 来进行初始化:关 闭 wA T C H D O G、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等。如果它能将操作系统 内核 复制到内存中运行,无论从本地(如 F l a s h)还是从 远 端(如网络),就称这段程序为 B o o t L o a d e r。简单地 说 B o o t L o a d e r 就是在操作 系统内核或 用户应用程序 运行之前
12、运行的一段小程序。通 过这段 小程序,可 以 初始化硬件设备、建立内存空间的映射图,从而将系统 的软硬件环境 带到一个合适的状 态,以便为最终调用 操作 系统内核 或用户应用程序准备好环境。对于一个 嵌入式系统来说,可能有的包括操作系统,有的小型系 统 也 可 以 只 包 括 应 用 程 序,但 是 在 这 之 前 都 需 要 B o o t L o a d e r 为 它 准 备 一 个 正 确 的 环 境。通 常,B o o t L o a d e r是依赖 于硬件 而实现的,特别是在嵌 入式领域。为嵌入式系统建立一个通 用的 B o o t L o a d e r 是 很 困 难 的。U
13、 B o o t,全 称 为U n i v e r s a l B o o t L o a d e r,即通 用 B o o t L o a d e r,是遵循 GP L条款 的开 2 4 系统建 设 S t e m C o n s t r u c t i o n 放源代码项 目,并且已经成为 AR M 平台事实上 的标 准 B o o t L o a d e r,其名字“通 用”有两层含 义:可引 导多种操作系统、同时支持多种架构 C P U 4 。本文所 用 U B o o t版本为 U-b o o t 一 1 3 4,将所 获取 的源码 压缩包 U b o o t 一 1 3 4 t a
14、 r b z 2解压得到全部源码,首先需要 分析 一下 它已支持的开 发板,比较 出硬件最 接近的开发板。本文将在 U-b o o t 一 1 3 4已经支持的 s md k 2 4 1 O板的基础上进行移植。3 1 1新建、修改 目标板对应 目录及文件 在 b o a r d目录下将 s md k 2 41 O复 制为 my 2 4 1 0 目录,将此 目录下的 s md k 2 4 1 0 C文件重命名为 my 2 4 1 0 C:将 i n c l u d e c o n f i g s s md k 2 4 1 O h复制 为 my 2 4 1 0 h:在顶层 Ma k e f i l
15、 e中添加如下两行 my 241 0一 c o nf i g:unc o nf i g$(MK CONF I G)$(:一 c o n f i g)a r m a r m9 2 0 t my 2 41 0 NUL L s 3c 24 x0 然后 在 b o a r d m y 2 4 1 O Ma k e f i l e 中修改 C O B j s:C OB J S:=my 2 41 O O f l a s h O 3 1 2 修改 S D R A M配置 本文将 目标板 H C L K 设为 1 0 0 MH z,根 据 S D R AM 芯片 的具体 参数重新计算 R E F C N T
16、寄存 器的值,对 b o a r d my 2 4 1 0 I o wl e v e l i n i t S 文件作如下部分修改:#d e f i n e R E F CN T 0 x 4 f 4 p e r i o d=7 8 1 2 5 u s,H CL K=1 0 0 Mh z。(2 0 4 8+1-7 8 1 2 5 1 0 0)3 1 3支持 目标板 N A N D F l a s h 对 N A N D F l a s h的支持有新 旧两套代码,新代码 在 d r i v e r s mt d n a n d目录下。选择用此新代码来支 持 目标板 N A N D F l a s h
17、。要让 U B o o t支持 N A N D F l a s h。首 先 在i n c l u d e c o n f i g s my 2 4 1 0 h 的 宏 C ONF I G COMMAN D S 中 增 力 口 C ON F I G CMD N AN D,然后在 i n c l u d e c o n f i g s my 2 4 1 0 h中选择 不定义 C ON F I G N AN D L E G A C Y宏(若定义则为使 用 旧代码)。在 i n c l u d e c o n f i g s my 2 4 1 0 h中作如下 定义:#de f i ne CONF I
18、G CMD N AND#d e f i n e C F G M A X N A N D D E V I C E 1 目标板 上有一块 N A N D F l a s h 设备#d e fi n e CF G N AND B AS E O x 4 e O O O O O 0 N A ND F l a s h 控 制器基址 3 1 4 支 持 C S 8 9 0 0 本文 目标板 网卡芯片 C S 8 9 0 0的连接方式与样板 2 01 0年 第 1 9卷 第 1 1期 计 算 机 系 统 应 用 s md k 2 41 0一致,U B o o t 已能够支持 C S 8 9 0 0,其 驱动程
19、序 为 d r i v e r s c s 8 9 0 0 C。所 以在使 用网络之前 设置其 l P 地址、MA C地址、宿主机 I P 地址 即可。3 1 5 若干默认配置参数 的设置 在 i n c l u d e c o n f i g s my 2 4 1 0 h 中增加 以下默 认配置参 数:#de f i ne CONF I G S E TUP ME MORY T AGS 1#de f i ne CONF I G CMDL I NE T AG 1#de f i ne CONF l G B O0TAR GS “noi ni t r d r o o t=d e v mt d b l
20、o c k i r o o t f s t y p e=j f f s 2 c o n s o l e=t t y S AC0”#d e ftne CONF I G E THADDR 08:00:3 e:26:0 a:S b#de f i ne CONF I G NE TMAS K 25 5 2S5 25 5 0#de f i ne CONF I G I P ADDR 2 22 1 98 1 31 3 3#d e f i ne CONF I G S E R VE R I P 222 1 98 1 31 3Z 上述参数分别 为设置 向内核 传递的命令行参 数,以及 目标 板,宿主机 I P的设置
21、等。3 1 6 U B o o t 的编译、烧写 执行以下命令 配置、编译,得到二进制映 象文件 U b oo t b i no#ma k e my 24 1 0一 c on f i g 群ma k e a l I 最后,通过J T A G与宿主机并口相连,在主机烧写 程序 H _ J T A G 的支 持下将 U-b o o t b i n 文件烧 写到 N OR F l a s h。烧 写完成 后。复位 实验 板,串 口终端 显示 U-b o o t 的启动信 息。3 2 L i n u x内核 的移植 标准 L i n u x内核 对于资源受 限的嵌入式 系统来说 过 于 庞 大,要 将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 嵌入式 Linux 系统 构建
限制150内