搭建嵌入式Linux开发环境.ppt_第1页
搭建嵌入式Linux开发环境.ppt_第2页
搭建嵌入式Linux开发环境.ppt_第3页
搭建嵌入式Linux开发环境.ppt_第4页
搭建嵌入式Linux开发环境.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式应用程序设计第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 2Bootloader1 3Linux内核与移植1 4嵌入式文件系统的构建1 5小结1 6思考与练习 本章课程 4 1 1 1嵌入式交叉编译环境搭建交叉编译环境的意义如何搭建嵌入式交叉编译环境嵌入式交叉编译环境包括哪些内容 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主机交叉开发环境的配置Linux下TFTP服务配置tftp是一个传输文件的简单协议 它基于UDP协议而实现 此协议设计的时候是进行小文件传输的vim etc xinetd d tftpservicetftp socket type dgramprotocol udpwait yesuser rootserver usr sbin in tftpdserver args s tftpbootdisable noper source 11cps 1002flags IPv4 1 1嵌入式系统概述 8 1 1 2主机交叉开发环境的配置启动TFTP服务 etc init d xinetdstart关闭TFTP服务 etc init d xinetdstop重启TFTP服务 etc init d xinetdrestart查看TFTP状态 netstat au greptftpProtoRecv QSend QLocalAddressForeignAddressStateudp00 tftp 1 1嵌入式系统概述 9 1 1 2主机交叉开发环境的配置Windows下TFTP服务配置在Windows下配置tftp服务需要安装使用tftp服务器软件 常见的可使用tftpd32 网上有很多下载该软件的地方 读者可以自行下载 要注意的是 该软件是tftp的服务器端 而目标板上则是tftp的客户端 1 1嵌入式系统概述 10 1 1 2主机交叉开发环境的配置NFS文件系统NFS为NetworkFileSystem的简称 最早是由Sun公司提出发展起来的 其目的就是让不同的机器 不同的操作系统之间可以彼此共享文件 1 1嵌入式系统概述 11 1 1 2主机交叉开发环境的配置NFS配置配置文件 etc exports配置文件每一行格式 共享的目录 客户端主机名称或IP 参数1 参数2 NFS配置文件常用参数 NFS配置文件举例 cat etc exports home david project rw sync no root squash 1 1嵌入式系统概述 12 1 1 2主机交叉开发环境的配置NFS服务启动设置NFS服务在每次系统引导时自动开启 sbin chkconfignfson 在Ubuntu中应该输入 sbin chkconfignfs kernel serveron 1 1嵌入式系统概述 13 Bootloader是什么 Bootloader是在操作系统运行之前执行的一段小程序 通过这段小程序 我们可以初始化硬件设备 建立内存空间的映像表 从而建立适当的系统软硬件环境 为最终调用操作系统内核做好准备 1 2Bootloader 14 1 2 1Bootloader的种类 1 2Bootloader 15 1 2 2U Boot的编译和使用什么是U Boot最早 DENX软件工程中心的WolfgangDenk基于8xxrom的源码创建了PPCBOOT工程 并且不断添加处理器的支持 后来 SysgoGmbh把PPCBOOT移植到ARM平台上 创建了ARMBOOT工程 然后以PPCBOOT工程和ARMBOOT工程为基础 创建了U Boot工程 1 2Bootloader 16 1 2 2U Boot的编译和使用U Boot目录结构U Boot目录可以分为三类 与处理器体系结构或者开发板硬件直接相关 一些通用的函数或驱动 U Boot的应用程序 工具或者文件 1 2Bootloader 17 U Boot目录结构 1 2Bootloader 18 1 2 2U Boot的编译和使用U Boot的源码是通过gcc和Makefile组织编译的 顶层目录下的Makefile首先可以设置开发板的定义 然后递归地调用各级子目录下的Makefile 最后把编译过的程序链接成U Boot映像 顶层目录下的Makefile它负责u boot整体配置编译 每一种开发板在Makefile都需要有板子配置的定义 配置u boot makesmdk2410 config编译 make 1 2Bootloader 19 1 2 2U Boot的编译和使用U Boot生成镜像文件 1 2Bootloader 20 1 2 2U Boot的编译和使用U Boot工具 1 2Bootloader 1 2Bootloader U Boot命令介绍指令分类传输类 设置类 存储类 内存监控类 加载运行类Printenv打印环境变量 Uboot printenvbaudrate 115200ipaddr 192 168 1 1ethaddr 12 34 56 78 9A BCserverip 192 168 1 5 21 1 2Bootloader setenv设置新的变量Uboot setenvmyboardAT91RM9200DKUboot printenvbaudrate 115200ipaddr 192 168 1 1ethaddr 12 34 56 78 9A BCserverip 192 168 1 5myboard AT91RM9200DKEnvironmentsize 102 8188bytessaveenv将当前定义的所有的变量及其值存入flash中 22 1 2Bootloader tftp通过网络下载程序Uboot setenvethaddr12 34 56 78 9A BCUboot setenvipaddr192 168 1 1Uboot setenvserverip192 168 1 254Uboot tftp20000000application binUboot tftp30200000zImageLoadb通过串口Kermit协议下载二进制数据 23 1 2Bootloader md显示内存区的内容 mm修改内存 地址自动递增 nm修改内存 地址不自动递增 mw填充内存 mtest测试内存 cp拷贝一块内存到另一块 cmp比较两块内存区 mw0 x32000000ff0 x10000 www embedu org 24 1 2Bootloader Protect写保护操作protecton1 0 3 就是对第一块FLASH的0 3扇区进行保护 protectoff1 0 3取消写保护erase擦除扇区erase 删除FLASH的扇区erase1 0 2 就是对每一块FLASH的0 2扇区进行删除 25 1 2Bootloader run执行设置好的脚本Uboot setenvflashittftp20000000mycode bin erase100200001002FFFF cp b20000000100200008000Uboot saveenvUboot runflashitbootcmd保留的环境变量如果定义了该变量 在autoboot模式下 将会执行该脚本的内容 26 1 2Bootloader go执行内存中的二进制代码 一个简单的跳转到指定地址bootm执行内存中的二进制代码要求二进制代码为制定格式的 通常为mkimage处理过的二进制文件 启动Uboot工具制作的压缩Linux内核bootp通过网络启动 需要提前设置好硬件地址 27 1 2Bootloader usbreset 复位 rescan USB控制器usbstop f 停止USBusbtree 显示USB设备树usbinfo dev 显示可用的USB设备usbstorage 显示USB存储设备详细信息usbdev dev showorsetcurrentUSBstoragedeviceusbpart dev printpartitiontableofoneorallUSBstoragedevicesusbreadaddrblk cnt read cnt blocksstartingatblock blk tomemoryaddress addr 28 1 2Bootloader nandinfo 显示NAND设备nanddevice dev 显示或设置当前设备nandbad 显示坏块nandread jffs2 s addroffsizenandwrite jffs2 addroffsizenanderase clean offsize nandread oobaddroffsizenandwrite oobaddroffsize 29 1 2Bootloader nfsnfs32000000192 168 0 2 aa txt把192 168 0 2中的NFS文件系统中的aa txt读入内存0 x32000000处 30 1 2Bootloader 1 2 3U Boot移植在顶层Makefile中为开发板添加新的配置选项创建一个新目录存放开发板相关的代码 并且添加新文件为开发板添加新的配置文件配置开发板编译U Boot添加驱动或者功能选项调试U Boot源代码 直到U Boot在开发板上能够正常启动 31 1 3Linux内核 Linux内核主要功能进程管理内存管理文件管理设备管理网络管理 32 1 3Linux内核 1 3 1Linux内核结构 33 1 3Linux内核 1 3 2Linux配置与编译编译内核之前要先配置 为了正确 合理地设置内核编译配置选项 从而只编译系统需要的功能的代码 一般主要有下面4个考虑 尺寸小节省内存减少漏洞动态加载模块 34 1 3Linux内核 1 3 2Linux配置与编译编译内核的步骤 下载内核源码修改内核目录树根下的的Makefile 指明交叉编译器设置环境变量配置内核产生 config文件输入内核配置命令 makemenuconfig 进行内核选项的选择编译内核下载Linux内核 35 1 4嵌入式文件系统的构建 在嵌入式Linux中 busybox是构造文件系统最常用的软件工具包 它被非常形象地称为嵌入式Linux系统中的 瑞士军刀 因为它将许多常用的Linux命令和工具结合到了一个单独的可执行程序 busybox 中 虽然与相应的GNU工具比较起来 busybox所提供的功能和参数略少 但在比较小的系统 例如启动盘 或者嵌入式系统中已经足够了 36 1 4嵌入式文件系统的构建 使用busybox构建文件根文件系统的步骤下载busybox源码并进行配置编译并安装busybox创建系统必须目录 完善文件系统创建系统必须文件创建cramfs文件系统镜像文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论