嵌入式linux系统开发手册
嵌入式Linux系统
开发手册
郭万永(yong_bvcom@)
2003-6-23
目录
引言
第一章 嵌入linux简介
1.1 嵌入linux发展
1.2 嵌入linux开发步骤简介 1.3 嵌入linux开发模型
第二章 嵌入linux开发前期准备工作 2.1 主机系统
2.1.1 安装开发编译环境 2.1.2 配置DHCP
2.1.3 配置TFTP 2.1.4 配置NFS
2.2 目标系统 2.3 软件包获取
第三章 PPCBOOT/U-BOOT的移植 3.1 PPCBOOT/U-BOOT简介
3.2 U-BOOT源代码分析
3.2.1 与目标板相关的代码 3.2.2 与CPU相关的代码 3.2.3 头文件 3.3.4 公共代码 3.3.5 网络传输代码 3.3.6 Makefile文件
3.3.7 关键的驱动程序文件 3.3移植步骤
3.3.1 编译测试
3.3.2 U-BOOT的启动过程
3.3.3 添加自己的开发配置文件
3.3.4 目标板系统参数配置
3.3.5 串口初始化
3.3.6 SDRAM初始化
3.3.7 FLASH驱动
3.3.8 FEC以太网口初始化 3.3.9 其它 3.4 编译调试 3.4.1 编译
3.4.2 目标代码烧写 3.4.3 调试
3.5 U-BOOT命令 3.6 小结
第四章 嵌入Linux的移植 4.1 整体分析
4.1.1 平台支持 4.1.2 组件支持 4.1.3 文件系统 4.1.4 网络支持 4.2 内核源代码简单分析 4.3 重要代码说明及修改 4.3.1 串口驱动
4.3.2 FLASH驱动及MTD支持 4.3.3 FEC以太网口驱动 4.4 内核编译控制 4.4.1 内核编译 4.4.2 内核调试选项 4.5 内核的装载
4.6 引导嵌入Linux系统
4.7 关于文件系统 4.7.1 简介
4.7.2 嵌入Linux文件系统分析 4.7.3 DOC支持
4.7.4 实例分析-在FLASH上构造JFFS2文件系统 4.8 小结
第五章 应用程序开发
5.1 简介
5.2 实例:TCP SERVER及CLIENT
第六章 SNMP的实现 第七章 WEB的支持
引言:
本手册结合MPC860T硬件平台,详细叙述了PPCBOOT/UBOOT以及嵌入Linux的移植过程,介绍了SNMP和WEB组件在嵌入平台上的移植过程,同时这也可以作为在其它硬件平台上移植嵌入Linux的参考手册。 鉴于篇幅有限,本文将不会列出所涉及的源代码,主要目的是是讨论进行PPCBOOT/UBOOT和嵌入Linux移植的步骤和通常做法,不会对源代码做过多解释叙述。
第一章 嵌入linux简介
1.1 嵌入linux的发展
伴随着linux的快速成长,嵌入linux在近两年也发展迅速,与传统商业性操作系统象vxworks、psos等相比,嵌入linux没有昂贵的版权费,而且完全开放源代码,在internet上有着丰富的开发资源,支持众多CPU架构象PPC、COLDFIRE、ARM、X86、MIPS,这些有点吸引了众多的商家投入linux的怀抱。
与vxworks等典型嵌入操作系统相比,实时性是Linux的弱项,因此一些公司对linux进行了二次包装,以提高嵌入linux的实时性,比较优秀的嵌入linux有Montavista公司的Hardhat Linux,还有RTLinux、Bluecat Linux等。
优秀的网络性能是linux的招牌,嵌入linux同样对网络有着良好的支持,支持TCP/IP、PPP、IGMP、IPV6,而且提供了对ATM协议的支持。
1.2 嵌入linux的开发步骤
嵌入linux的移植开发是一项很有趣的工作,在开发的过程中会感受到linux强大
的吸引力。
首先我们以我们常见的PC来描述一下整个系统的工作流程。从打开电源的一刹那,你的CPU就开始了第一次心跳(上电复位),然后CPU会迈出自己的第一步―跳向指令的入口地址,通常是在EEPROM,FLASH ROM等永久记忆体当中,然后CPU就会按部就班的进行对自身进行最初的初始化工作,通常这些工作都是由汇编代码完成的,因为有一些寄存器只有用汇编语言才可以进行读写。
一旦跳到C语言的领域,一切变的明朗起来,无非就是对外围设备的初始化,对DRAM/SDRAM的初始化,对串口、网口等初始化,对总线设备的初始化等,不过虽然说起来容易,但事实上非常复杂,因为你要对你的所有硬件设备都很了解,这些工作完成之后就要将接力棒传给Linux的内核了,上面的工作就是我们常说的计算机BIOS所要做的工作,在嵌入Linux系统中我们给它取了新的名字,BSP(board support package)板级支持包,Bootloader引导者。
BIOS的工作完成之后就会将CPU完整的交给Linux kernel,此时BIOS的使命就结束了,剩下的就是linux内核启动,加载设备驱动程序,初始化网络协议,启动系统服务象FTP,WEB,SNMP等,详细的过程在随后的章节中在叙述。
怎么样,我想现在大概有个简单的概念了吧!嵌入linux系统从在这里我们暂且把它分为三个大部分:硬件系统、bootloader和linux kernel,他们的关系如下图:
图1 嵌入linux系统概念图
按照这个概念图来说,我们的开发步骤很简单:
设计自己的硬件系统
编写bootloader
裁减自己的linux内核
是不是太简单了,别着急,后面几章会一一把他们分解开来详细叙述。
1.3 嵌入linux开发模型
通常嵌入linux的开发分为主机系统和目标系统,他们之间通过网络接口和串口互连,网口一般用以下载程序和内核映象文件,串口一般作为console控制台来使用,在主机通过超级终端与目标系统进行命令交互,就像PC的键盘和显示器。
如果你第一次接触嵌入系统,可能会问什么是主机系统和目标系统?很简单,主机系统就是我们一般用的计算机或者工作站,用来编写代码和编译;目标系统就是你的嵌入开发系统中的硬件板。在主机开发好的目标执行代码通过网络接口或者烧写到目标系统中的永久记忆体(通常是flash或者DOC -Disk On Chip),目标系统执行这些代码。
模型如下图所示:
图2 嵌入linux系统开发模型
很简单吧,不过要注意,虽然需求很少,但有两个必要:主机至少要有一个232的通用串口(有些笔记本上却没有),还要有一个10M或100M的以太网口(关键看你的目标系统是那种网络接口),然后还有一根串口线和两根网线,如果不用HUB的话,一根单机对联线就解决问题了。硬件系统这样就搞定了!
第二章 嵌入linux开发前期准备工作
硬件系统搞定之后,还有一些软件的准备工作,俗话说“磨刀不误砍柴功!”,在未 进行正式的开发工作之前,对系统有个全面的认识,做好充足的准备,会避免好多后期将可能会出现的问题。
2.1 主机系统
前面我们讲过,主机系统通常就是我们使用的计算机或工作站,当然操作系统要是Linux,这里我的主机系统为硬件配置为: CPU: PIII550 SDRAM:256MB HARDDISK:20G
100M快速以太网卡一块,通用串行232接口 操作系统: Redhat Linux8.0 完全安装
2.1.1 安装开发编译环境 主机准备好之后还要安装交叉编译环境,用于编译目标系统可执行的代码。为什么要这个交叉编译环境呢?大家知道一般我们用的PC CPU的架构为X86,我们的目标系统为8XX架构的,所以要有一个编译器,链接器用于将C语言的代码编译为8XX系统可识别的目标代码。 你完全可以自己建立嵌入linux的交叉编译环境,可是有点烦琐,所以如果你有Montavista的CDK,那么是最好的选择了,如果没有,也可以到德国的DENX软件中心的FTP站点上 …… 此处隐藏:3261字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




