嵌入式Linux开发环境的搭建之:嵌入式开发环境的搭建
2.串口下载
使用串口下载需要配合特定的下载软件,如优龙公司提供的DNW软件等,一般在Windows下进行操作。虽然串口下载的速度没有网络下载快,但由于它很方便,不需要额外的连线和设置IP等操作,因此也广受用户的青睐。下面就以DNW软件为例,介绍串口下载的方式。
与其他串口通信的软件一样,在DNW中也要设置"波特率"、"端口号"等。打开"Configuration"下的"Options"界面,如图5.17所示。
图5.17 DNW配置界面
在配置完之后,单击"Serial Port"下的"Connect",再将开发板上电,选择"串口下载",接着再在"Serial Port"下选择"Transmit",这时,就可以进行文件传输了,如图5.18和图5.19所示。这里DNW默认串口下载的地址为0x30200000。
图5.18 DNW串口下载图
图5.19 DNW串口下载情形图
5.1.4 编译嵌入式Linux内核
在做完了前期的准备工作之后,在这一步,读者就可以编译嵌入式Linux的内核了。在这里,本书主要介绍嵌入式Linux内核的编译过程,在下一节会进一步介绍嵌入式Linux中体系结构相关的内核代码,读者在此之后就可以尝试嵌入式Linux操作系统的移植。
编译嵌入式Linux内核都是通过make的不同命令来实现的,它的执行配置文件就是在第3章中讲述的makefile。Linux内核中不同的目录结构里都有相应的makefile,而不同的makefile又通过彼此之间的依赖关系构成统一的整体,共同完成建立依赖关系、建立内核等功能。
内核的编译根据不同的情况会有不同的步骤,但其中最主要分别为3个步骤:内核配置、建立依赖关系、创建内核映像,除此之外还有一些辅助功能,如清除文件和依赖关系等。读者在实际编译时若出现错误等情况,可以考虑采用其他辅助功能。下面分别讲述这3步主要的步骤。
(1)内核配置。
第一步内核配置中的选项主要是用户用来为目标板选择处理器架构的选项,不同的处理器架构会有不同的处理器选项,比如ARM就有其专用的选项如"Multimedia capabilities port drivers"等。因此,在此之前,必须确保在根目录中makefile里"ARCH"的值已设定了目标板的类型,如:
ARCH := arm
接下来就可以进行内核配置了,内核支持4种不同的配置方法,这几种方法只是与用户交互的界面不同,其实现的功能是一样的。每种方法都会通过读入一个默认的配置文件-根目录下".config"隐藏文件(用户也可以手动修改该文件,但不推荐使用)。当然,用户也可以自己加载其他配置文件,也可以将当前的配置保存为其他名字的配置文件。这4种方式如下。
n make config:基于文本的最为传统的配置界面,不推荐使用。
n make menuconfig:基于文本选单的配置界面,字符终端下推荐使用。
n make xconfig:基于图形窗口模式的配置界面,Xwindow下推荐使用。
n make oldconfig:自动读入".config"配置文件,并且只要求用户设定前次没有设定过的选项。
在这4种模式中,make menuconfig使用最为广泛,下面就以make menuconfig为例进行讲解,如图5.20所示。
图5.20 make menuconfig配置界面
从该图中可以看出,Linux内核允许用户对其各类功能逐项配置,一共有18类配置选项,这里就不对这18类配置选项进行一一讲解了,需要的时候读者可以参见相关选项的help。在menuconfig的配置界面中是纯键盘的操作,用户可使用上下键和"Tab"键移动光标以进入相关子项,图5.21所示为进入了"System Type"子项的界面,该子项是一个重要的选项,主要用来选择处理器的类型。
图5.21 System Type子项
可以看到,每个选项前都有个括号,可以通过按空格键或"Y"键表示包含该选项,按"N"表示不包含该选项。
另外,读者可以注意到,这里的括号有3种,即中括号、尖括号或圆括号。读者可以用空格键选择相应的选项时可以发现中括号里要么是空,要么是"*";尖括号里可以是空,"*"和"M",分别表示包含选项、不包含选项和编译成模块;圆括号的内容是要求用户在所提供的几个选项中选择一项。
此外,要注意2.4和2.6内核在串口命名上的一个重要区别,在2.4内核中"COM1"对应的是"ttyS0",而在2.6内核中"COM1"对应"ttySAC0",因此在启动参数的子项要格外注意,如图5.22所示,否则串口打印不出信息。
图5.22 启动参数配置子项
一般情况下,使用厂商提供的默认配置文件都能正常运行,
嵌入式Linux 交叉编译 超级终端 minicom 相关文章:
- 嵌入式Linux技术在工业控制网络中的应用(10-30)
- 基于嵌入式Linux的组态软件实时数据库的设计(02-01)
- 基于ARM+DSP的嵌入式Linux数控系统设计(11-18)
- 基于嵌入式Linux的细胞特征提取算法设计(11-19)
- 基于S3C2410的嵌入式Linux系统构建(03-02)
- 嵌入式Linux网络编程之:网络基础编程(08-13)