大三下嵌入式课件十章linux开发.pptx

第十章嵌入式Linux的开发;10.1嵌入式Linux开发步骤;(1)构建合适的开发环境;(2)开发或者移植BootLoader;(3)构建适合的Linux系统;(4)开发必须的驱动程序;(5)开发应用程序;(6)开发具有图形界面的应用程序;10.2开发环境的构建;10.2.1安装Linux操作系统;TFTP服务的配置;NFS服务的配置;Windows下利用VMWare安装Linux;10.2.2配置开发工具;安装交叉编译器;使用串口调试工具;10.3BootLoader的开发;;10.3.1BootLoader的基本知识;(1)BootLoader的安装位置;(2)BootLoader的控制与通信;(3)BootLoader的操作模式;启动加载(Bootloading)模式;下载(Downloading)模式;(4)BootLoader与主机之间文件传输协议;10.3.2BootLoader的开发过程;BootLoader的第一阶段;Stage1:硬件初始化;关键字Volatile;Stage1:为stage2准备RAM空间;Stage1:拷贝stage2到RAM;;在上述一切就绪后,就可以跳到BootLoader的stage2去执行了,在ARM系统中,可以通过修改pc寄存器为合适的地址来实现。;BootLoader的第二阶段;Stage2:初始化要用的硬件设备;Stage2:检测系统的内存映射;内存映射的描述;Stage2:加载映像;Stage2:加载映像;Stage2:设置内核的启动参数;Stage2:调用内核;10.3.3BootLoader的移植;10.4Linux系统的构建;10.4.1Linux内核的构建;Linux内核的配置;Linux内核的编译;(4)makebzImage(注意I是大写)

该命令用于生成压缩的linux内核。

(5)makemodules

(6)makemodules_install

这两个命令分别生成相应的模块和把模块拷贝到需要的目录中(/lib/modules)。

(7)makeinstall

该命令是把编译好的内核和需要的文件复制到需要的目录中(例如/boot),;新内核的测试;10.4.2Linux根文件系统的构建;l???/etc该目录存放了系统管理时要用到的各种配置文件和子目录。

l???/sbin该目录用来存放系统管理员的系统管理程序。

l???/home如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。

l???/lib该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库;/lost+found当突然停电、或者非正常关机后,有些文件就???时存放在这里。

/mnt你可以临时将别的文件系统挂在该目录下。

/proc可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的。

/root如果你是以超级用户的身份登录的,这个就是超级用户的主目录

/tmp用来存放不同程序执行时产生的临时文件

/usr用户的很多应用程序和文件都存放在该目录下,完全安装时,其下面将会有Linux内核的源程序。;一个根文件系统必须包括支持完整Linux系统的全部东西,因此,它至少应包括以下几项:

l????????最基本文件系统结构,至少含有以下8个目录:/dev,/proc,/bin,/etc,/lib,/usr,/tmp,/mnt。

l???最基本的应用程序,如sh,ls,cp,mv等。

l???最低限度的配置文件,如rc,inittab,fstab等。

l????设备:/dev/hd*,/dev/tty*,/dev/fd0。

l????基本程序运行所需的库函数。;10.4.3针对嵌入式应用的Linux系统开发;内核配置;内核编译;根文件系统的构建;10.5Linux下设备驱动程序的开发;10.5.1Linux设备驱动程序的概念;10.5.2设备的类型;块设备驱动程序和字符设备驱动程序的主要区别是:

(1)????????????在对字符设备发出读写请求时,实际的硬件I/O一般紧接着就发生了,块设备则不然,它利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作。

(2)????????????由于块设备具有缓冲区,因此它可以选择以什么顺序进行响应。对于存储设备而言这一点是很重要的,因为

文档评论(0)

1亿VIP精品文档

相关文档