学习板硬件及开发环境的建立.ppt_第1页
学习板硬件及开发环境的建立.ppt_第2页
学习板硬件及开发环境的建立.ppt_第3页
学习板硬件及开发环境的建立.ppt_第4页
学习板硬件及开发环境的建立.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

2020年3月26日1 教学内容 第一章嵌入式系统概述第二章学习板硬件及开发环境的建立第三章嵌入式Linux系统的移植第四章嵌入式Linux设备驱动第五章嵌入式Linux串口和网络编程第六章嵌入式Linux图形编程 2020年3月26日2 第二章硬件分析及开发环境建立 学习板硬件电路分析开发环境的建立远程访问目标板下载程序至目标板交叉调试器 2020年3月26日3 2 1学习板硬件电路分析 2020年3月26日4 2 1学习板硬件电路分析 详细资料请参考CDROM中的PDF文档 2020年3月26日5 2 1学习板硬件电路分析 详细资料请参考CDROM中的PDF文档 2020年3月26日6 2 1学习板硬件电路分析 AT91RM9200ARMCPU 180Mhz SDRAM32MB 2 32b宽 NorFlash16MB 16b宽 NandFlash64MB 8b宽 扩展接口 GPIO 10 100M以太网 RMII PHY Power 5 3 3 1 8 USBhost 2 SDSocket MMC 4b宽 RS232 2 DBG User RTC Sensor SPI IIC 2020年3月26日7 2 1学习板硬件电路分析 AT91RM9200 32位RISC ARMV4T架构200MIPS 180Mhz ARM920T内核 MMU MemoryManangeUnit 16KBDcache 16KBIcache 16KBSRAM 128KBROM EBI接口 8个nCS0 nCS7 122个GPIO 4USART SPI TWI IIC SSC MCI 20DMAC PDC USBHost2 0 USBDevice2 0 2 3CHT C 10 100MEthernetMAC VDDCore VDDOsc VDDPll 1 8V VDDIoP VDDIoM 3 3V 封装 208 PinPQFP 256 BallBGA 2020年3月26日8 2 1学习板硬件电路分析 0 x00000000 0 xFFFFFFFF最大寻址空间 4GB可用空间 4GB 1518MB片内存储器 256MBEBI 8 256MB 8 片内寄存器 256MBEBI分成8个BANK 每个BANK对应一个片选信号nCS0 nCS7 Bank0 Bank7 2020年3月26日9 2 1学习板硬件电路分析 nCS0接16MBNorFlash其地址范围 0 x10000000 0 x10FFFFFFSize 0 x1000000 nCS1接64MBSDRAM其地址范围 0 x20000000 0 x23FFFFFFSize 0 x4000000 nCS3接NandFlash 2020年3月26日10 2 2嵌入式Linux开发环境 嵌入式系统通常是一个资源受限的系统 因此直接在嵌入式系统的硬件平台上编写软件比较困难 有时候甚至是不可能的 解决办法 首先在通用计算机上编写程序 然后通过交叉编译生成目标平台上可以运行的二进制代码格式 最后再下载到目标平台上的特定位置上运行 2020年3月26日11 2 2嵌入式Linux开发环境 关于交叉编译在一种平台上编译出能在另一种平台 体系结构不同 上运行的程序 在PC平台 X86CPU 上编译出能运行在arm平台上的程序 编译得到的程序在X86CPU平台上是不能运行的 必须放到arm平台上才能运行 用来编译这种程序的编译器就叫交叉编译器 为了不跟本地编译器混淆 交叉编译器的名字一般都有前缀 例如 arm linux gccarm softfloat linux gnu gccarm none linux gnueabi gcc 2020年3月26日12 2 2嵌入式Linux开发环境 ICE In CircuitEmulator在线仿真器 USB Ethernet 2020年3月26日13 2 2嵌入式Linux开发环境 2020年3月26日14 2 2嵌入式Linux开发环境 需要交叉开发环境 CrossDevelopmentEnvironment 的支持是嵌入式应用软件开发时的一个显著特点 交叉编译器只是交叉开发环境的一部分 交叉开发环境是指编译 链接和调试嵌入式应用软件的环境 它与运行嵌入式应用软件的环境有所不同 通常采用宿主机 目标机模式 2020年3月26日15 2 2嵌入式Linux开发环境 宿主机 目标板模式宿主机 Host 是一台通用计算机 它通过串口或者以太网接口与目标机通信 宿主机的软硬件资源比较丰富 能够大大提高嵌入式应用软件的开发速度和效率 目标板 Target 应用程序实际运行的平台 或者是能够替代实际运行环境的仿真系统 软硬件资源通常都比较有限 2020年3月26日16 2 2嵌入式Linux开发环境 宿主机 目标机模式首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件 然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标机上 并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试 最后目标机在特定环境下脱离宿主机单独运行 2020年3月26日17 2 2嵌入式Linux开发环境 开放的交叉开发环境的典型代表是GNU工具链目前已经能够支持x86 ARM MIPS PowerPC等多种处理器 商业的交叉开发环境则主要有MetrowerksCodeWarrior ARMSoftwareDevelopmentToolkit等等 2020年3月26日18 2 2嵌入式Linux开发环境 GNU交叉工具链交叉编译器 例如arm linux gcc交叉汇编器 例如arm linux as交叉链接器 例如arm linux ld用于处理可执行程序和库的一些基本工具 例如arm linux strip 2020年3月26日19 2 2嵌入式Linux开发环境 GNU交叉工具链的下载ARM官方网站下载www arm linux org uk可以从该站点下载2 95 3以及3 2工具链ftp ftp arm linux org uk pub armlinux toolchain cross 2 95 3 tar bz2ftp ftp arm linux org uk pub armlinux toolchain cross 3 2 tar bz2 我们使用的交叉工具链arm softfloat linux gnu gcc 3 4 1foru boot arm none linux gnueabi gcc 4 5 2forkernel busybox app 2020年3月26日20 2 2嵌入式Linux开发环境 cross 2 95 3 tar bz2包的安装 mkdir usr local armcpcross 2 95 3 tar bz2 usr local armtarzxvfcross 2 95 3 tar bz2添加环境变量在文件 etc bashrc或 etc profile文件最后添加 exportPATH usr local arm 2 95 3 bin PATHexportPATH usr local arm 2011 03 bin PATHexportPATH usr local arm softfloat linux gnu bin PATH工具链安装完成 2020年3月26日21 2 2嵌入式Linux开发环境 GNU交叉工具链的常用工具介绍 2020年3月26日22 2 2嵌入式Linux开发环境 主要工具的使用arm linux gcc的使用arm linux gcc ohellohello carm linux ar和arm linux ranlib的使用建立一个静态库arm linux ar rlibhello ah1 oh2 o为静态库建立索引arm linux ar slibhello aarm linux ranliblibhello a由静态库产生可执行文件arm linux gcc ohellohello c lhello L arm linux gcc ohellohello clibhello a 2020年3月26日23 2 2嵌入式Linux开发环境 主要工具的使用arm linux strip的使用移除所有的符号信息 strip allcphellohello1arm linux strip strip allhello rwxr xr x1armroot28567月315 14hello rwxr xr x1armroot136827月315 13hello1被strip后的hello程序比原来的hello1程序要小很多 移除调试符号信息 garm linux strip ghello 2020年3月26日24 2 3远程访问目标板 如何观察应用程序在目标板的运行情况 即查看程序的输出信息 通过串口线连接宿主机和目标板 配置串口做为目标板的输出设备 例如在交叉编译目标板的linux内核时 配置指定终端为串口 noinitrdroot dev mtdblock2init linuxrcconsole ttyS0 115200在宿主机上通过串口通信软件查看目标板系统的运行情况 2020年3月26日25 超级终端的使用打开超级终端超级终端程序通常位于附件中的通讯中 Hypertrm 图标所指即是超级终端程序 为新的连接取一个名字 2 3远程访问目标板 2020年3月26日26 超级终端的使用选择连接目标板的串口 2 3远程访问目标板 2020年3月26日27 超级终端的使用设置串口注意必须选择无流控制 否则只能看到输出而不能输入 串口波特率是115200 2 3远程访问目标板 2020年3月26日28 超级终端的使用当所有的连接参数都设置好以后 打开目标板电源开关 就会看到系统的启动信息 当Linux启动以后 超级终端就相当于虚拟终端 可通过它来操作目标板 选择超级终端 文件 菜单下的 另存为 保存该连接设置 以便于以后再连接时就不必重新执行以上设置了 2 3远程访问目标板 2020年3月26日29 超级终端的使用打开目标板电源开关 就会看到系统的启动信息 当Linux启动以后 超级终端就相当于虚拟终端 可通过它来操作目标板 2 3远程访问目标板 2020年3月26日30 minicom的使用minicom的设置 minicom s 2 3远程访问目标板 2020年3月26日31 minicom的使用1 选择串口 选择菜单中的 Serialportsetup 按回车 进入如下图所示界面 按 A 以设置 SerialDevice 串口1 dev ttyS0 串口2 dev ttyS1 2 3远程访问目标板 2020年3月26日32 minicom的使用2 设置波特率 按 E 键进入设置 bps par Bits 波特率 界面 再按 I 以设置波特率为115200 2 3远程访问目标板 2020年3月26日33 minicom的使用3 设置无流控制 按回车退回到上一级菜单 按 F 键设置 HardwareFlowControl 为 NO 其他选项使用缺省值 2 3远程访问目标板 2020年3月26日34 minicom的使用4 保存设置再选择 Exit 退出设置模式 刚才的设置被保存到 etc minirc dfl 5 设置完毕打开目标板电源的电源开关 minicom输出目标板的启动信息 当Linux启动以后 minicom就相当于虚拟终端 可通过它来操作目标板 2 3远程访问目标板 2020年3月26日35 minicom的使用6 退出minicom 同时按下 Ctrl A 键 紧接着再按下 Q 键 在跳出的窗口中 选择 Yes 2 3远程访问目标板 2020年3月26日36 通过串口下载使用超级终端软件 设置波特率115200 端口号 下载地址0 x20000000上电启动开发板 进入BIOS界面选择2串口下载点击 serialport 菜单 选择 Transmit 选项 2 4下载程序至目标板 2020年3月26日37 通过TFTP方式下载TFTP协议是简单的文件传输协议 适合目标板Bootloader的使用 u boot vivi TFTP文件传输基于UDP 通过TFTP来传输目标板启动需要的内核映象文件zImage传输速度快 使用方便 2 4下载程序至目标板 2020年3月26日38 通过TFTP方式下载tftp分服务器和客户端 在宿主机开启tftp服务 设置好tftp的根目录内容在目标板开启tftp客户端程序 在目标板的bootloader交互过程中通过tftpboot命令下载内核 tftpboot0 x20008000uImage2638tftp0 x20008000uImage2638tftp0 x21200000initrd img gz 2 4下载程序至目标板 2020年3月26日39 通过TFTP方式下载Linux的tftp服务器的配置编辑 etc xinetd d tftp 只有在安装了tftp服务后 才会出现tftp文件 修改其中disable和server args项 其余可保持不变 Servicetftp sockettype dgramprotocol udpwait yesuser rootserver usr sbin in tftpdserver args s tftpboot 设置tftp服务输出目录 disable no 默认为yes 应修改成noper source 11cps 1002flags IPv4 2 4下载程序至目标板 2020年3月26日40 通过TFTP方式下载重启xinetd服务 使得更改的配置有效Servicexinetdrestart确认tftp服务是否已经开启netstat au在目标板启动tftp客户端程序tftp0 x200080000uImage2638下载信息 TFTPfromserver10 0 0 1 ourIPaddressis10 0 0 110Filename uImage2638 Loadaddress 0 x200080000Loading doneBytestransferred 913880 df1d8hex 2 4下载程序至目标板 2020年3月26日41 通过挂载NFS方式下载NFS服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上 并且作为其他计算机的一个目录 在嵌入式开发中 通过NFS可以很方便的将修改的文件通过NFS传输到目标板上 不用反复烧写镜像文件 2 4下载程序至目标板 2020年3月26日42 通过挂载NFS方式下载NFS的使用分服务器端和客户端服务器端提供要共享的文件 客户端通过挂载 mount 实现对共享文件的访问操作 mount192 168 0 1 home nfs tmp testNFS服务器端通过读取配置文件 etc exports决定所共享的文件目录 配置文件的语法 每一行由输出路径 客户名列表以及每个客户名后紧跟的访问选项构成 共享的目录 主机名或IP 参数 参数 共享的目录 IP1 参数1 参数2 IP2 参数3 参数4 2 4下载程序至目标板 2020年3月26日43 通过挂载NFS方式下载重启NFS服务 servicenfsrestart通过showmount命令来查看开放的目录 showmount elocalhost进行网络设置 将eth0的网络地址指定为192 168 1 1 掩码255 255 255 0 网关不需要 设置完之后要重启网络 Serviecnetworkrestart关闭防火墙 选择系统设置 安全级别 将安全级别改为 无防火墙 去掉iptables服务 选择系统设置 服务器设置 服务 在弹出的界面上将optables前的 去掉 将主机上的目录挂载到另一个目录下 测试NFS是否设置成功 2 4下载程序至目标板 2020年3月26日44 通过挂载NFS方式下载在超级终端或者minicom下通过NFS挂载宿主机目录mount192 168 1 1 home nfs tmp test卸载NFS文件系统umount tmp test 2 4下载程序至目标板 2020年3月26日45 嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别 本地软件开发调试器与被调试的程序往往运行在同一台计算机上 调试器是一个单独运行着的进程 它通过操作系统提供的调试接口来控制被调试的进程 嵌入式软件开发调试时采用的是在宿主机和目标机之间进行的交叉调试 调试器运行在宿主机 但被调试的进程却是运行在目标板 调试器和被调试进程通过串口或者网络进行通信 调试器可以控制 访问被调试进程 读取被调试进程的当前状态 并能够改变被调试进程的运行状态

温馨提示

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

评论

0/150

提交评论