请教linux嵌入式开发的概念及其相关

本人对嵌入式开发概念模糊,在linux下做嵌入式开发,是否需要安装一些仿真软件环境.象VxWorks等系统和linux是什么关系,有何联系。或者linux做嵌入式开发,工具就是linux系统自带的编程环境如Emacs,gcc,g++,gdb这一套呢?
---------------------------------------------------------------

PC开发,可以用cygwin,编译器是gcc,用JTAG口把程序烧到目标板上,串口用来看打印信息调试。
---------------------------------------------------------------

我认为(不权威,有错的话,请高手批评):
嵌入式开发最基本的概念是主机、目标机及交叉编译。
主机是你做开发时使用的计算机,通常是PC机,较目标机而言,资源和性能都要好很多;
目标机是你要开发的产品,即所谓的嵌入式系统。
主机和目标机通常采用不同的CPU体系结构,如主机通常是x86,而目标机可能是ppc860,arm等,很多。由于CPU的体系结构不同,也就是说CPU指令集不同,两者的编译环境就必须不同。而由于目标机软硬件资源都有限,不可能在目标机上编译目标机的程序,编译的工作就需要由主机来完成。因为是在主机平台上编译目标机平台的可执行程序,这就产生了“交叉编译”的概念。同时,为了能够完成交叉编译工作,主机上必须安装用于目标平台的编译、连接工具,这就是所谓的“工具链”。
主机和目标机可以采用不同的操作系统,也可以使用相同的操作系统。目标机操作系统通常占用资源少,且实时性好,其中GUI是可选组件。VxWorks实际上是目标机的操作系统。在Linux嵌入式开发中,目标机操作系统通常也是Linux变种,如ucLinux等。

用Linux做嵌入式开发,所使用的工具仍然是VIM,GCC,GDB等。因为GCC本身就是一个优秀的交叉编译器。
---------------------------------------------------------------

在pc上用特定的gcc, 比如用m68k-elf-gcc, 编译好后下栽到板子上执行就可以了。

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus