嵌入式交叉开发环境组成是怎样的?嵌入式系统开发为什么需要这样的交叉开发环境而通用计算机的开发不需要

嵌入式交叉开发环境的组成是怎样的?嵌入式系统开发为什么需要这样的交叉开发环境而通用计算机的开发不需要?
主要是后一问

所谓交叉编译,就是在一种机器结构下编译的软件将在另一种完全不同的机器上运行。典型的交叉编译的例子就是嵌入式系统工程师在自己的个人电脑上编译后的程序将在ARM,MIPS等等嵌入式工作平台上运行。所以,嵌入式交叉开发环境一般将由个人电脑,PC端嵌入式开发软件(如支持ARM的mdk,ads,rvds等等),支持硬件调试的硬件调试器及其配套的驱动软件(如j-link),当然,最重要的还要有嵌入式硬件系统即通俗所谓的开发板。
嵌入式系统之所以要在通用计算机上开发,我想主要还是资源配置的问题,按嵌入式系统的定义,嵌入式系统的软硬件将是可剪裁的以适用于各种不同的要求。这样的话,由于硬件平台千差万别,开发其编译器将变得不可能,即便开发出来,可能也需要及其繁琐的配置,大大降低了软件的可用性。另外就是使用也不方便,大多数嵌入式系统不会配备像PC机一样适于输入的键盘和较大的屏幕,所以,如果在嵌入式系统上敲代码,将是一件非常恼火的事情。追问

嵌入式系统开发为什么需要这样的交叉开发环境而通用计算机的开发不需要
这个问题呢?主要是两者在开发中的区别。。。。。。

追答

其实你如果认真阅读了我的回答那么答案应该有了,其实,编译器说白了就是一个软件而已,嵌入式系统从理论上讲也可以开发一个专门的编译器比如为基于ARM的嵌入式系统开发一个基于ARM-Linux的编译器,这样,你就可以在你的ARM-Linux系统上编译你的代码了。可是,由于前述原因,所以至今也没有这样的编译器。因为没有,所以需要通用计算机,之所以没有,由于前以述及的原因,这样的编译器将没有市场。那么假如没人来开发我们平时用的PC机上的编译器,那么我们可能仍然需要到其他机器上开发我们PC机上的软件,但是,为什么PC机上有这样的编译器呢?因为有市场,因为其可行性非常高,所以PC机上的软件不需要交叉开发环境。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-30
百度搜索“ 嵌入式交叉开发环境的组成”,有文字的有视频的!哎呀!一看你这基础也没学嘛,多的道理也就不说了,举个简单的例子,二进制是机器语言,这个你该知道吧?那同样弄个程序两种要求,一种要求是用二进制来写这个程序,第二种是用窗口化的VC来写,你用哪种?

嵌入式交叉开发环境组成是怎样的?嵌入式系统开发为什么需要这样的交 ...
所以,嵌入式交叉开发环境一般将由个人电脑,PC端嵌入式开发软件(如支持ARM的mdk,ads,rvds等等),支持硬件调试的硬件调试器及其配套的驱动软件(如j-link),当然,最重要的还要有嵌入式硬件系统即通俗所谓的开发板。嵌入式系统之所以要在通用计算机上开发,我想主要还是资源配置的问题,按嵌入式系统的定义...

嵌入式系统开发为什么要采用交叉编译的方式
由于宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机ARM平台上无法运行,因此嵌入式软件开发采用交叉编译方式在一个平台上生成可以在另一个平台上执行的代码。编译的最主要的工作就是将程序转化成运行该程序的CPU所能识别的机器代码。进行交叉编译的主机称为宿主机,也就是普通的...

试解释嵌入式linux系统建立交叉开发平台的必要性……
所谓交叉编译环境,指的是开发程序的宿主机和目标机为不同平台的开发环境。一般在开发嵌入式linux系统程序过程中,宿主机和目标机为不同的架构,所以需要建立交叉开发环境。建立交叉开发环境的必要性:1、一般的嵌入式系统资源有限,所以,在嵌入式系统上建立开发环境来开发应用程序比较困难,甚至是不可能的...

什么是交叉开发环境
交叉开发环境的核心是交叉编译器,这是一种能将源代码编译成目标机可执行代码的特殊编译器。例如,开发者可能在一个Linux工作站上使用交叉编译器,将C++代码编译成ARM架构的嵌入式系统可以运行的二进制文件。此外,交叉开发环境还可能包括其他工具,如交叉调试器(用于在宿主机上调试目标机上的代码)、模拟...

嵌入式ARM linux操作系统中如何构建交叉开发环境?
1) 安装32位的兼容库和libncurses5-dev库 在安装交叉编译工具之前需要先安装32位的兼容库和libncurses5-dev库,安装32兼容库需要从ubuntu的源库中下载,所以需要在Linux主机系统联网的条件下,通过终端使用如下命令安装:vmuser@Linux-host ~$sudo apt-get install ia32-libs 若Linux主机系统没有安装32...

如何为嵌入式开发建立交叉编译环境
下面我们将以建立针对arm的交叉编译开发环境为例来解说整个过程,其他的体系结构与这个相类似,只要作一些对应的改动。我的开发环境是,宿主机 i386-redhat-7.2,目标机 arm。 这个过程如下 1. 下载源文件、补丁和建立编译的目录 2. 建立内核头文件 3. 建立二进制工具(binutils) 4. 建立初始编译器(bootstrap gcc) ...

建立交叉编译环境需要配置哪些服务?
比如,我们在 Windows 平台上,可使用 Visual C++ 开发环境,编写程序并编译成可执行程序。这种方式下,我们使用 PC 平台上的 Windows 工具开发针对 Windows 本身的可执行程序,这种编译过程称为 native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发时,则不能直接编译。运行程序的目标...

如何搭建嵌入式系统的交叉开发环境
如果要做嵌入式OS,针对不同的嵌入式OS有不同的交叉开发环境,有的是商业的,有的是免费的。你先要确定你是做哪一个方向。而且即使是单个的方向,也有很多种交叉开发环境的搭建方式。比如嵌入式Linux,有如下几种方式:1、Windows+Cygwin+GCC+GDB+调试接口;2、Windows+Eclipse+GCC+调试接口;3、...

Linux嵌入式交叉编译工具链问题 浅谈
简介交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils、gcc和glibc 3个部分组成。有时出于减小 libc 库大小的考虑,也可以用别的 c 库来代替 glibc,例如 uClibc、dietlibc 和 newlib。交叉编译工具链主要包括针对目标系统的编译器 gcc、目标系统的二进制...

嵌入式产品开发流程有哪些
嵌入式产品开发流程:1、建立交叉开发环境:开发主机的操作系统一般选用某一个发行版本号的linux系统,如RedHatlinux等。linux内核版本号能够依据项目的详细需求而定,如2.4内核或者2.6内核。选择定制安装或所有安装,通过网络下载对应的gcc交叉编译器进行安装(比方arm、linux、gcc,arm、uclibc、gcc等),...

相似回答