教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

嵌入式linux系统开发手册

来源:网络收集 时间:2026-08-28
导读: 嵌入式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 配置

嵌入式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字,全部文档内容请下载后查看。喜欢就下载吧 ……

嵌入式linux系统开发手册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/279279.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)