原因2: 嵌入式系统MCU体系结构和指令集不同 , 因此需要安装交叉编译工具进行编译 , 这样编译的目标程序才能够在相应的平台上比如:ARM、MIPS、 POWEPC上正常运行 。
交叉开发环境的硬件组成主要由以下几大部分 :
1.开发主机
2.目标机(开发板)
3.二者的链接介质 , 常用的主要有3种方式:(1)串口线 (2)USB线 (3)网线
对应的硬件介质 , 还必须要有相应的软件“介质”支持:
1.对于串口 , 通常用的有串口调试助手 , putty工具等 , 工具很多 , 功能都差不多 , 会用一两款就可以;
2.对于USB线 , 当然必须要有USB的驱动才可以 , 一般芯片公司会提供 , 比如对于三星的芯片 , USB下载主要由DNW软件来完成;
3.对于网线 , 则必须要有网络协议支持才可以 , 常用的服务主要两个
第一:tftp服务:
主要用于实现文件的下载 , 比如开发调试的过程中 , 主要用tftp把要测试的bootloader、kernel和文件系统直接下载到内存中运行 , 而不需要预先烧录到Flash芯片中 , 一方面 , 在测试的过程中 , 往往需要频繁的下载 , 如果每次把这些要测试的文件都烧录到Flash中然后再运行也可以 , 但是缺点是:过程比较麻烦 , 而且Flash的擦写次数是有限的;另外一方面:测试的目的就是把这些目标文件加载到内存中直接运行就可以了 , 而tftp就刚好能够实现这样的功能 , 因此 , 更没有必要把这些文件都烧录到Flash中去 。
第二:nfs服务:
主要用于实现网络文件的挂载 , 实际上是实现网络文件的共享 , 在开发的过程中 , 通常在系统移植的最后一步会制作文件系统 , 那么这是可以把制作好的文件系统放置在我们开发主机PC的相应位置 , 开发板通过nfs服务进行挂载 , 从而测试我们制作的文件系统是否正确 , 在整个过程中并不需要把文件系统烧录到Flash中去 , 而且挂载是自动进行挂载的 , bootload启动后 , kernel运行起来后会根据我们设置的启动参数进行自动挂载 , 因此 , 对于开发测试来讲 , 这种方式非常的方便 , 能够提高开发效率 。
另外 , 还有一个名字叫 samba 的服务也比较重要 , 主要用于文件的共享 , 这里说的共享和nfs的文件共享不是同一个概念 , nfs的共享是实现网络文件的共享 , 而samba实现的是开发主机上 Windows主机和Linux虚拟机之间的文件共享 , 是一种跨平台的文件共享 , 方便的实现文件的传输 。
以上这几种开发的工具在嵌入式开发中是必备的工具 , 对于嵌入式开发的效率提高做出了伟大的贡献 , 因此 , 要对这几个工具熟练使用 , 这样你的开发效率会提高很多 。等测试完成以后 , 就会把相应的目标文件烧录到Flash中去 , 也就是等发布产品的时候才做的事情 , 因此对于开发人员来说 , 所有的工作永远是测试 。
通过前面的工作 , 我们已经准备好了交叉开发环境的硬件部分和一部分软件 , 最后还缺少交叉编译器 , 读者可能会有疑问 , 为什么要用交叉编译器?前面已经讲过 , 交叉开发环境必然会用到交叉编译工具 , 通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序 , 开发主机PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序 , 编译得到的程序在X86 CPU平台上是不能运行的 , 必须放到ARM CPU平台上才能运行 , 虽然两个平台用的都是Linux系统 。相对于交叉编译 , 平常做的编译叫本地编译 , 也就是在当前平台编译 , 编译得到的程序也是在本地执行 。用来编译这种跨平台程序的编译器就叫交叉编译器 , 相对来说 , 用来做本地编译的工具就叫本地编译器 。所以要生成在目标机上运行的程序 , 必须要用交叉编译工具链来完成 。
这里又有一个问题 , 不就是一个交叉编译工具吗?为什么又叫交叉工具链呢?原因很简单 , 程序不能光编译一下就可以运行 , 还得进行汇编和链接等过程 , 同时还需要进行调试 , 对于一个很大工程 , 还需要进行工程管理等等 , 所以 , 这里 说的交叉编译工具是一个由 编译器、连接器和解释器 组成的综合开发环境 , 交叉编译工具链主要由binutils(主要包括汇编程序as和链接程序ld)、gcc(为GNU系统提供C编译器)和glibc(一些基本的C函数和其他函数的定义) 3个部分组成 。有时为了减小libc库的大小 , 也可以用别的 c 库来代替 glibc , 例如 uClibc、dietlibc 和 newlib 。
秒懂生活扩展阅读
- 图书馆学和档案学很热门吗
- 莫比斯环和莫比乌斯环 莫比
- 帕斯卡定律是什么和什么的基础 帕斯卡定律
- 炫杂是什么意思
- 吃香蕉和牛奶一起吃有什么反应
- 老料是什么意思 和田玉
- 川剧变脸的由来和历史
- 什么是物质和能量
- 牛百叶怎么处理才能嫩和脆
- 河内|好消息!关乎中国和越南!|中国自驾地理