1、嵌入式应用程序设计 第1章 搭建嵌入式linux开发环境,2,第1章 搭建嵌入式Linux开发环境 第2章 嵌入式文件I/O编程 第3章 嵌入式Linux多任务编程 第4章 嵌入式Linux进程间通行 第5章 嵌入式Linux多线程编程 第6章 嵌入式Linux网络编程 第7章 Qt图形编程 第8章 嵌入式Linux设备驱动编程 第9章 Qt聊天项目设计,课程安排:,3,1.1 搭建嵌入式Linux交叉开发环境 1.2 Bootloader 1.3 Linux内核与移植 1.4 嵌入式文件系统的构建 1.5 小结 1.6 思考与练习,本章课程:,4,1.1.1 嵌入式交叉编译环境搭建 交叉编译
2、环境的意义 如何搭建嵌入式交叉编译环境 嵌入式交叉编译环境包括哪些内容,1.1 搭建嵌入式Linux开发环境,5,1.1.2 主机交叉开发环境的配置 配置控制台程序Windows操作系统中有超级终端(HyperTerminal)工具;Linux/Unix操作系统有minicom(使用“minicom”命令启动该软件)等工具,1.1 嵌入式系统概述,超级终端配置,minicom配置,6,1.1.2 主机交叉开发环境的配置 配置TFTP服务tftp是一个传输文件的简单协议,它基于UDP协议而实现。此协议设计的时候是进行小文件传输的,1.1 嵌入式系统概述,7,1.1.2 主机交叉开发环境的配置 L
3、inux下TFTP服务配置tftp是一个传输文件的简单协议,它基于UDP协议而实现。此协议设计的时候是进行小文件传输的 vim /etc/xinetd.d/tftpservice tftpsocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpbootdisable = noper_source = 11cps = 100 2flags = IPv4,1.1 嵌入式系统概述,8,1.1.2 主机交叉开发环境的配置 启动TFTP服务$ /etc/i
4、nit.d/xinetd start关闭TFTP服务$ /etc/init.d/xinetd stop 重启TFTP服务$ /etc/init.d/xinetd restart 查看TFTP状态$ netstat au | grep tftpProto Recv-Q Send-Q Local Address Foreign Address Stateudp 0 0 *:tftp *:*,1.1 嵌入式系统概述,9,1.1.2 主机交叉开发环境的配置 Windows下TFTP服务配置在Windows下配置tftp服务需要安装使用tftp服务器软件,常见的可使用tftpd32,网上有很多下载该软件
5、的地方,读者可以自行下载。要注意的是,该软件是tftp的服务器端,而目标板上则是tftp的客户端,1.1 嵌入式系统概述,10,1.1.2 主机交叉开发环境的配置 NFS文件系统NFS为Network FileSystem的简称,最早是由Sun公司提出发展起来的,其目的就是让不同的机器、不同的操作系统之间可以彼此共享文件。,1.1 嵌入式系统概述,11,1.1.2 主机交叉开发环境的配置 NFS配置配置文件:/etc/exports配置文件每一行格式:共享的目录 客户端主机名称或IP(参数1,参数2)NFS配置文件常用参数:NFS配置文件举例:cat /etc/exports/home/dav
6、id/project *(rw,sync,no_root_squash),1.1 嵌入式系统概述,12,1.1.2 主机交叉开发环境的配置 NFS服务启动设置NFS服务在每次系统引导时自动开启:# /sbin/chkconfig nfs on(在Ubuntu中应该输入 /sbin/chkconfig nfs-kernel-server on),1.1 嵌入式系统概述,13,Bootloader是什么?Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。,1.2 Bo
7、otloader,14,1.2.1 Bootloader的种类,1.2 Bootloader,15,1.2.2 U-Boot的编译和使用 什么是U-Boot最早,DENX软件工程中心的Wolfgang Denk基于8xxrom的源码创建了PPCBOOT工程,并且不断添加处理器的支持。后来,Sysgo Gmbh把PPCBOOT移植到ARM平台上,创建了ARMBOOT工程。然后以PPCBOOT工程和ARMBOOT工程为基础,创建了U-Boot工程。,1.2 Bootloader,16,1.2.2 U-Boot的编译和使用 U-Boot目录结构U-Boot目录可以分为三类:与处理器体系结构或者开发板
8、硬件直接相关。 一些通用的函数或驱动。 U-Boot的应用程序、工具或者文件。,1.2 Bootloader,17,U-Boot目录结构,1.2 Bootloader,18,1.2.2 U-Boot的编译和使用U-Boot的源码是通过gcc和Makefile组织编译的。顶层目录下的Makefile首先可以设置开发板的定义,然后递归地调用各级子目录下的Makefile,最后把编译过的程序链接成U-Boot映像。顶层目录下的 Makefile 它负责u-boot整体配置编译。每一种开发板在Makefile都需要有板子配置的定义。 配置u-boot: make smdk2410_config 编译: make,1.2 Bootloader,19,1.2.2 U-Boot的编译和使用 U-Boot生成镜像文件,1.2 Bootloader,20,1.2.2 U-Boot的编译和使用 U-Boot工具,1.2 Bootloader,