- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高端IT就业培训专家方案
高端IT就业培训专家
交叉开发环境
目标
本章内容包括嵌入式交叉开发环境的概念和配置,以及应用程序交叉开发和调试的方法。交叉开发环境是嵌入式Linux开发的基础,后续的开发过程几乎都是基于交叉开发环境的。因此,理解和掌握本章内容会大大方便嵌入式Linux开发
交叉开发环境介绍
TARGET就是目标板,HOST是开发主机。在开发主机上,可以安装开发工具,编辑、编译目标板的Linux引导程序、内核和文件系统,然后在目标板上运行
目标板与主机之间的连接
串行通讯接口
以太网接口
USB接口
JTAG等接口
文件传输
串口传输方式
网络传输方式
USB接口传输方式
JTAG接口传输方式
移动存储设备
网络文件系统
网络文件系统(NFS,Network File System)最早是SUN开发的一种文件系统。NFS允许一个系统在网络上共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,这极大地简化了信息共享
网络文件系统的优点正好适合嵌入式Linux系统开发。目标板没有足够的存储空间,Linux内核挂接网络根文件系统可以避免使用本地存储介质,快速建立Linux系统。这样可以方便地运行和调试应用程序。
获取交叉开发工具链
.uk
.uk/pub/armlinux/toolchain/
.uk/pub/linux/arm/toolchain/
主机安装工具链
$ tar –jxvf cross-3.3.2.tar.bz2
$ ./3.3.2/bin/arm-linux-gcc –v
在环境变量PATH中添加路径,就可以直接使用arm-linux-gcc命令了。
$ export PATH=$PATH:/usr/local/arm/3.3.2/bin
主机环境配置
串口控制台工具
串行通讯接口很适合作为控制台,在各种操作系统上一般都有现成的控制台程序可以使用。Windows操作系统有超级终端(Hyperterminal)工具;Linux/UNIX操作系统有minicom等工
DHCP服务
TFTP服务
TFTP协议是简单的文件传输协议,所以实现简单,使用方便,正好适合目标板Bootloader使用。但是文件传输是基于UDP的,文件传输(特别是大文件)是不可靠的。
配置文件/etc/xintd.d/tftp
修改配置以后,还需要执行下列命令使xinetd重新启动TFTP服务。
$ /etc/init.d/xinetd restart
NFS服务
NFS服务的主要任务是把本地的一个目录通过网络输出,其他计算机可以远程地挂接这个目录并且访问文件。
配置文件是/etc/exports
$ service nfs start通过service命令来启动
系统引导过程
系统引导过程
第一阶段是目标板硬件初始化,解压内核映像,再跳转到内核映像入口。这部分的工作一般由目标板的引导程序和内核映像的自引导程序完成。不同体系结构的目标板引导的方式和程序都有差异。
第二阶段是内核的初始化,初始化设备驱动,挂接根文件系统。这里是Linux内核通用的启动函数入口。所有体系结构的目标板都顺序调用统一的函数,尽管有些函数的代码实现是跟体系结构相关的。
第三阶段是执行用户空间的init程序,完成系统初始化、启动相关服务和管理用户登录等工作。这个阶段可以提供给用户交互界面,例如:Shell命令行或者图形化的窗口界面。也可以自动执行应用程序。
在Linux系统启动过程中,有两个关键点。一个是内核映像的解压启动;另一个是根文件系统的挂接。
实例:FS4412嵌入式开发环境搭建
嵌入式交叉开发环境如下图,由三部分组成,开发主机,目标机,连接介质。 因目标机(即开发板)资源有限,我们是开发主机(电脑)上编译源码,然后通过连接介质(如网线)下载编译后的文件(如u-boot.bin)到板子上运行。因我们是在开发主机上(电脑x86平台)编译,而在目标机(开发板ARM平台)上运行,故叫做交叉编译开发环境
开发主机安装
Linux系统安装
交叉编译工具安装
TFTP服务安装
NFS服务安装
目标机安装
SD启动盘制作
U-BOOT的烧写
联调测试
板子能ping通虚拟机
前面开发主机安装好后,可用交叉编译工具编译程序生成的二进制文件,然后通过网线传输到目标机(板子)上运行。这时需要测试开发主机和目标机间网线是联通好的。这里我们通过ping命令进行测试。
ping命令测试网络是否联通
# ping 20 注: u-boot阶段,板子能ping 电脑 ,但电脑不能ping板子
host 20 is alive 显示is alive 表示通讯OK ,失败会显示not alive
板子自动通过 TFTP 加载内核运行
网络ping通后,接
文档评论(0)