嵌入式软件开发技术:第1章 搭建嵌入式Linux开发环境

举报
资源描述
1 第1章 搭建嵌入式Linux开发环境第第2章章嵌入式文件嵌入式文件I/O编程编程第第3章章嵌入式嵌入式Linux多任务编程多任务编程第第4章章嵌入式嵌入式Linux进程间通行进程间通行第第5章章嵌入式嵌入式Linux多线程编程多线程编程第第6章章嵌入式嵌入式Linux网络编程网络编程第第7章章Qt图形编程图形编程第第8章章嵌入式嵌入式Linux设备驱动编程设备驱动编程第第9章章Qt聊天项目设计聊天项目设计课程安排:嵌入式软件开发技术嵌入式软件开发技术第1章 搭建嵌入式linux开发环境3 1.1搭建嵌入式搭建嵌入式Linux交叉开发环境交叉开发环境1.2Bootloader1.3Linux内核与移植内核与移植1.4嵌入式文件系统的构建嵌入式文件系统的构建1.5小结小结1.6思考与练习思考与练习本章课程:4 1.1.1嵌入式交叉编译环境搭建嵌入式交叉编译环境搭建交叉编译环境的意义交叉编译环境的意义如何搭建嵌入式交叉编译环境嵌入式交叉编译环境包括哪些内容1.1搭建嵌入式搭建嵌入式Linux开发环境开发环境5 1.1.1嵌入式交叉编译环境搭建嵌入式交叉编译环境搭建使用制作好的交叉编译工具链以cross-3.3.2为例:$mkdir-p/usr/local/arm$cp cross-3.3.2.tar.bz2/usr/local/arm$cd/usr/local/arm$tar-jxvf cross-3.3.2.tar.gz$export PATH=$PATH:/usr/local/arm/3.3.2/bin1.1搭建嵌入式搭建嵌入式Linux开发环境开发环境6 1.1.2主机交叉开发环境的配置主机交叉开发环境的配置配置控制台程序Windows操作系统中有超级终端(HyperTerminal)工具;Linux/Unix操作系统有minicom(使用“minicom”命令启动该软件)等工具1.1嵌入式系统概述嵌入式系统概述超级终端配置minicom配置7 1.1.2 主机交叉开发环境的配置配置TFTP服务 tftp是一个传输文件的简单协议,它基于UDP协议而实现。此协议设计的时候是进行小文件传输的,因此它不具备通常的FTP的许多功能,只能从文件服务器上获得或写入文件,不能列出目录,不进行认证。tftp分为客户端和服务器两种。通常,首先在宿主机上开启服务器端服务,设置好根目录内容,接着在目标板上开启客户端程序,这样就可以通过tftp协议传输可执行文件了。1.1嵌入式系统概述嵌入式系统概述8 1.1.2 主机交叉开发环境的配置Linux下TFTP服务配置由xinetd设定vim/etc/xinetd.d/tftpservice tftp socket_type =dgram protocol =udp wait =yes user =root server =/usr/sbin/in.tftpd server_args =-s/tftpboot disable =no per_source =11 cps =100 2 flags =IPv41.1嵌入式系统概述嵌入式系统概述9 1.1.2 主机交叉开发环境的配置启动TFTP服务$/etc/init.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嵌入式系统概述嵌入式系统概述10 1.1.2主机交叉开发环境的配置主机交叉开发环境的配置Windows下下TFTP服务配置服务配置在在Windows下配置下配置tftp服务需要安装使用服务需要安装使用tftp服务器软件,常见的服务器软件,常见的可使用可使用tftpd32,网上有很多下载该软件的地方,读者可以自行下载。,网上有很多下载该软件的地方,读者可以自行下载。要注意的是,该软件是要注意的是,该软件是tftp的服务器端,而目标板上则是的服务器端,而目标板上则是tftp的客户的客户端端1.1嵌入式系统概述嵌入式系统概述11 1.1.2主机交叉开发环境的配置主机交叉开发环境的配置tftp客户端程序客户端程序vivi下的下的tftp命令:命令:tftp flash kernel zImageU-Boot下的下的tftp命令命令tftp 0 x30008000 zImage1.1嵌入式系统概述嵌入式系统概述12 1.1.2主机交叉开发环境的配置主机交叉开发环境的配置NFS文件系统文件系统NFS为为NetworkFileSystem的简称,最早是由的简称,最早是由Sun公司公司提出发展起来的,其目的就是让不同的机器、不同的操提出发展起来的,其目的就是让不同的机器、不同的操作系统之间可以彼此共享文件。作系统之间可以彼此共享文件。lNFS服务器端提供要共享的文件,而客户端则通过挂载服务器端提供要共享的文件,而客户端则通过挂载来实现对共享文件的访问操作。来实现对共享文件的访问操作。1.1嵌入式系统概述嵌入式系统概述13 1.1.2 1.1.2 主机交叉开发环境的配置主机交叉开发环境的配置NFSNFS配置配置配置文件:配置文件:/etc/exports/etc/exports配置文件每一行格式:配置文件每一行格式:共享的目录共享的目录 客户端主机名称或客户端主机名称或IP(IP(参数参数1 1,参数,参数2 2)NFSNFS配置文件常用参数:配置文件常用参数:NFSNFS配置文件举例:配置文件举例:cat/etc/exportscat/etc/exports/home/david/project *(rw,sync,no_root_squash)/home/david/project *(rw,sync,no_root_squash)1.1嵌入式系统概述嵌入式系统概述14 1.1.2主机交叉开发环境的配置主机交叉开发环境的配置使新的配置生效使新的配置生效#exportfs-a可用的选项可用的选项-a/-r/-u/-vNFS服务启动服务启动设置设置NFS服务在每次系统引导时自动开启服务在每次系统引导时自动开启:#/sbin/chkconfignfson挂载挂载NFS共享的文件夹:共享的文件夹:mount#mount-t nfs-o nolock 192.168.0.56:/arm2410s/host1.1嵌入式系统概述嵌入式系统概述15 Bootloader是什么?是什么?Bootloader是在操作系统运行之前执行的一段小程序。是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空通过这段小程序,我们可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软硬件环境,为最终调间的映像表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。用操作系统内核做好准备。通常,通常,Bootloader是严重地依赖于硬件是严重地依赖于硬件而实现的,特而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的的BootLoader几乎是不可能的。尽管如此,我们仍然可几乎是不可能的。尽管如此,我们仍然可以对以对BootLoader归纳出一些通用的概念来,以指导用户归纳出一些通用的概念来,以指导用户特定的特定的BootLoader设计与实现。设计与实现。1.2Bootloader16 Bootloader的工作模式的工作模式对开发人员而言,对开发人员而言,Bootloader通常包含启动加载和下通常包含启动加载和下载两种不同的工作模式。载两种不同的工作模式。启动加载模式:启动加载模式:正常启动模式。正常启动模式。Bootloader从目标机上的从目标机上的某个固态存储设备上将操作系统加载到某个固态存储设备上将操作系统加载到RAM中运行,整个中运行,整个过程并没有用户的介入。过程并没有用户的介入。下载模式:下载模式:Bootloader通过串口或网络连接等通信手段从通过串口或网络连接等通信手段从宿主机下载文件,如内核映像和根文件系统等。下载的文宿主机下载文件,如内核映像和根文件系统等。下载的文件通常先保存到目标机的件通常先保存到目标机的RAM中,然后再被中,然后再被Bootloader写写到目标机上的到目标机上的Flash类固态存储设备中。类固态存储设备中。1.2Bootloader17 1.2.1Bootloader的种类的种类1.2Bootloader补充:补充:vivi的常用命令的常用命令vivi是韩国是韩国Mizi公司专门为公司专门为ARM处理器系列设计的处理器系列设计的一个一个Bootloader,由于其结构简单、易于扩展,因而,由于其结构简单、易于扩展,因而被很多底层程序员所采用。被很多底层程序员所采用。在在下载模式下载模式下,下,vivi为用户提供一个命令行人机接为用户提供一个命令行人机接口,通过这个人机接口,可以使用口,通过这个人机接口,可以使用vivi提供的一些命令。提供的一些命令。如果嵌入式系统没有键盘和显示,可以利用如果嵌入式系统没有键盘和显示,可以利用vivi中的串中的串口,将其和宿主机连接起来,利用宿主机中的串口软口,将其和宿主机连接起来,利用宿主机中的串口软件来控制。件来控制。补充:补充:vivi的常用命令的常用命令(1)load命令命令将二进制文件载入到将二进制文件载入到Flash或者或者RAM,命令格式:,命令格式:load|:flash/ram|:描述装载的地址,如果提前定:描述装载的地址,如果提前定义了义了MTD分区,可以只输入分区名称,否则需要指定地址和大分区,可以只输入分区名称,否则需要指定地址和大小。小。:确定文件的传输协议。:确定文件的传输协议。例:例:viviload flash kernel xviviload flash 0 x80000 0 xc0000 x补充:补充:vivi的常用命令的常用命令(2)part命令命令操作操作MTD分区信息,如显示、增加、删除、复位、保存分区信息,如显示、增加、删除、复位、保存MTD分区等:分区等:part show显示分区信息显示分区信息 part add 增加新分区,增加新分区,4个参数分别为分区名称、偏移量、大小和分区类个参数分别为分区名称、偏移量、大小和分区类型(型(JFF32、LOCKED、BONFS)part del 删除分区删除分区 part reset 恢复分区为默认值恢复分区为默认值 part save 保存分区信息和参数值保存分区信息和参数值补充:补充:vivi的常用命令的常用命令(3)param命令命令设置和查看参数:设置和查看参数:param set (4)boot命令命令引导存储在引导存储在Flash或或RAM中的程序中的程序boot|(5)flash命令命令存储管理命令存储管理命令flash erase|22 1.2.2U-Boot的编译和使用的编译和使用什么是什么是U-Boot最早,最早,DENX软件工程中心的软件工程中心的WolfgangDenk基于基于8xxrom的源码创建了的源码创建了PPCBOOT工程,并且不断添加处工程,并且不断添加处理器的支持。后来,理器的支持。后来,SysgoGmbh把把PPCBOOT移植到移植到ARM平台上,创建了平台上,创建了ARMBOOT工程。然后以工程。然后以PPCBOOT工程和工程和ARMBOOT工程为基础,创建了工程为基础,创建了U-Boot工程。工程。1.2Bootloader23 1.2.2U-Boot的编译和使用的编译和使用U-Boot的特点的特点支持多种硬件构架:包括支持多种硬件构架:包括ARMARM、x86x86、PPCPPC、MIPSMIPS、m68km68k、NIOSN
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 中学教育 > 初中教育


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号