第3章嵌入式Linux的开发环境及工具软件3.1嵌入式Linux的开发环境3.2Linux开发工具的使用3.3GNUmake命令和makefile文件3.4使用Automake和Autoconf生成makefile文件3.5嵌入式Linux编辑器vi的使用3.6Emacs综合编辑器建立交叉编译环境启动代码Bootloader的实现/移植kernel的配置/移植/编译根文件系统Cramfs的实现嵌入式开发流程3.1嵌入式Linux的开发环境3.1.1嵌入式Linux开发环境建立有几个嵌入式Linux开发环境方案:(1)基于PC机WINDOWS操作系统下的CYGWIN;(2)在WINDOWS下安装虚拟机VMware软件,使用redhat9虚拟机,即在虚拟机中安装LINUX操作系统;(3)直接安装LINUX操作系统,也可安装ubuntu。交叉编译交叉编译就是在一个平台上生成另一个平台上的可执行代码。这里说的平台分别指的是主机平台Host和目标平台Target。就我们在ARM平台上移植Linux来说,Host是一台一般的PC机,它通过串口或网络接口与Target通信;Target是arm-linux平台(这里说的arm指的是平台所使用的CPU是ARM9处理器,linux指的是运行的操作系统是Linux)。我们在Host上开发程序,并在这个平台上运行交叉编译器CrossComplier,编译我们的程序,而由CrossComplier生成的程序将在Target上运行。“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”需要交叉编译的原因:首先,在项目的起始阶段,目标平台尚未建立,因此需要做交叉编译,以生成我们所需要的Bootloader以及kernel(因为Bootloader和kernel的源码需要经过交叉编译后才可以在目标平台上运行);其次,当目标平台能启动之后,由于目标平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。交叉编译我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序;而由交叉编译器生成的程序在目的平台上运行。要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilationtoolchain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。armv4l-unknown-linux-gcc:交叉编译linux内核arm-linux-gcc:交叉编译linux内核arm-elf-gcc:主要交叉编译uclinux内核arm-uclinux-gcc:交叉编译uclinux内核主要下载网址:www.gnu.org为了在命令行中能够寻找到交叉编译器,我们需要把它所在的路径加入到PATH环境变量中(例:/usr/local/arm/bin:$PATH)。常用在ARM平台的GNUToolchain3.1.2嵌入式Linux开发的一般过程1.了解硬件;2.准备需要使用的Linu...