嵌入式系统开发之环境的建立

交叉编译调试环境建立在宿主机(也就是你的电脑)上。对于的开发板叫目标板。要全然手工的建立针对某特定的目标板的交叉编译环境是一个很麻烦的过程。有些人会问,为什么须要建立特定的环境,从网上下载一个通用的不即可了?既然很麻烦,有没有简单的方法,假设有简单的方法,是不是手工的就不要学习了?以下给大家具体介绍。

linux内核被设计成必须使用GNU的gcc来编译,而不是不论什么一种c编译器都能够。gcc对c进行了不要的扩展,这使得他更适合开发操作系统内核。linux内核和编译器的关系很密切,甚至不同版本号的内核须要使用不同版本号的gcc编译器。比方。假设目标板採用的某一个是ARM核的处理器。则须要使用某个版本号的arm-linux-gcc。

不仅是linux内核,linux应用程序编译时,也须要使用交叉gcc编译器。它依赖于宿主机的操作系统。因此。针对嵌入式平台建立交叉编译系统,一般是在pc上建立目标代码来为目标板平台的编译工具链(toolchains)。它能够编译和处理linux内核及应用程序。一般来说,须要下面几个工具的源代码:binutils。gcc。glibc-linuxthreads和linux内核源代码等。

鉴于手工配置这些工具链非常麻烦。非常多嵌入式开发板的生产商都提供了建立交叉编译环境的脚本或者提供了已经配置好交叉编译环境的linux虚拟机文件,仅仅须要执行这样一个脚本或者是使用现有的虚拟机文件就完毕了整个环境的搭建。此外,通过crosstool(一个专门建立编译工具链的脚本的工具),能够在非常大程序上简化工作量。

以下对这些工具链的内容及相关软件进行具体介绍:

(1)binutils

一组编译开发工具。包含连接器,汇编器以及其它用于目标文件和档案的工具。

(2)gcc

gcc(GNU Compiler Collection)是linux下的高级语言编译器,它不但可以支持c/c++语言的编译,并且可以支持FORTRAN。JAVA,ADA等编程语言。

(3)glibc

提供系统调用和基本函数的c库。如open。malloc。printf等。

全部linux上的c程序编译时都须要与glibc库连接。假设是动态连接的程序。在执行时也须要用到它。

(4)glibc-linuxthreads

POSIX(portable operating system interface,可移植操作系统接口)线程库。

(5)linux内核源代码及针对某一个特定P平台的补丁包

须要依据项目的须要。选择合适的linux内核版本号。另外,针对不同的cpu类型,一般存在特定的补丁程序,在进行内核编译曾经。须要首先对linux内核进行打补丁的操作。

至于手动配置工具链,过程较为麻烦,须要了解的能够看我之前推荐的那本书。在132页。

时间: 2024-10-17 05:32:52

嵌入式系统开发之环境的建立的相关文章

嵌入式系统开发流程

嵌入式系统开发与通用系统的开发有很大的区别.嵌入式系统的开发主要分为系统总体开发.嵌入式硬件开发和嵌入式软件开发3大部分. 在总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器的选型,以更好地满足产品的需求.另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择.往往通过硬件实现会增加产品的成本,但是大大提高产品的性能和可靠性. 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响.开发环境包括嵌入式操作系统的选择以及开发工

嵌入式系统开发——开篇

嵌入式系统开发中,C语言的地位是无法取代的,所以我用C语言为自己建立一个常用功能函数库.在基于单片机的开发中,经常会遇到“以时间换空间”或者“以空间换时间”的抉择.因为单片机不是运算能力有限,就是存储空间有限! 尽管现如今基于ARM核的微处理器已经普及,其运算能力和存储能力相对于以前8位时代,可谓是翻天覆地!但作为软件开发者,希望自己所写代码能具备移植性的同时还要尽量高效,是一种境界.这对于提升自己的编程水平.对C语言的应用能力,不失为一个好方法. 我在这里记录下我常用的程序库,方便自己和他人查

Python在实时嵌入式系统开发中扮演的五个主要角色-悦德财富

Python已经成为相当热门的程序语言.它以著名的Monty Python喜剧组命名,属于面向对象和解释型语言(非编译型).该属性使得Python具有良好的跨平台性,比如Linux和Windows,或是诸如Raspberry Pi等单板计算机.随着Python的日益普及,人们可能会问,在实时嵌入式系统中是否也有Python的一席之地. 答案是肯定的.下面是开发人员发现Python在实时嵌入式系统开发中有可能扮演的五个主要角色. 作用# 1设备调试和控制 在嵌入式软件开发过程中,开发人员常常需要分

嵌入式系统开发学习(1)

嵌入式系统开发流程 嵌入式系统的一般开发流程如下: 嵌入式操作系统 管理资源 提高系统可靠性 硬件虚拟化 实时性能 多任务 现有的嵌入式操作系统 VxWorks pSOS PalmOS QNX OS-9 LynxOS WindowsCE uC/OS 嵌入式Linux FreeRTOS ARM体系架构 ARM:Advanced RISC Machines ARM处理器共有37个寄存器,分为若干个组(BANK). 大多数数据操作都在寄存器中完成. ARM分类 ARM7: 32bit 冯-诺依曼体系结

嵌入式系统开发步骤

建立交叉开发环境 配置开发主机 移植bootloader linux内核移植 建立并烧写根文件系统到目标板 开发嵌入式应用程序 部署与配置系统 (1)建立交叉开发环境 开发主机的操作系统一般选用某一个发行版本的linux系统,如RedHatlinux等.linux内核版本可以根据项目的具体需求而定,如2.4内核或者2.6内核.选择定制安装或全部安装,通过网络下载相应的gcc交叉编译器进行安装(比如arm-linux-gcc,arm-uclibc-gcc等),或者安装产品厂家提供的交叉编译器. (

转载:嵌入式系统开发步骤

转自:http://www.cnblogs.com/yxwkf/p/5173087.html 建立交叉开发环境配置开发主机移植bootloaderlinux内核移植建立并烧写根文件系统到目标板开发嵌入式应用程序部署与配置系统(1)建立交叉开发环境开发主机的操作系统一般选用某一个发行版本号的linux系统,如RedHatlinux等.linux内核版本号能够依据项目的详细需求而定,如2.4内核或者2.6内核.选择定制安装或所有安装,通过网络下载对应的gcc交叉编译器进行安装(比方arm-linux

linux嵌入式系统开发,嵌入式编程入门教程

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗等严格要求的专用计算机系统.举些例子,手机.电子时钟.智能报警装置.自动监控器.出租车计费器等等都属于嵌入式系统. 嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux能够支持x86.ARM.MIPS.ALPHA.PowerPC等多种体系结构,目前

信盈达分享,如何学好嵌入式系统开发

一.嵌入式系统的概念着重理解"嵌入"的概念主要从三个方面上来理解.1.从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但某种意义上就相当于显卡.比较高端的ARM类Intel Xscale架构下的IXP网络处理器CP

嵌入式系统开发(一)——常用字符处理函数

字符处理在C语言中是很普遍的.我们常常需要把信息从字符串形式转换为内部数据,或者反向转换.那怎么样高效的实现这些常用操作呢? 下面介绍我经常使用的方法.在头文件中添加如下内容: 1 #include "ftypes.h" 2 3 extern u8_t const __ascInfoTbl[256]; 4 5 static inline bool_t IsHexChar(u8_t c) { 6 c = __ascInfoTbl[c]; 7 return ((c & 0x01)