欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式基础与开发环境.ppt

    • 资源ID:6569759       资源大小:685.50KB        全文页数:35页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式基础与开发环境.ppt

    学习目标,学员需要掌握如下内容:嵌入式开发环境的搭建嵌入式程序开发的流程,嵌入式linux开发基础,嵌入式系统的构成,嵌入式linux系统,应用程序,硬件平台,嵌入式软件,内核子程序(进程调度、内存管理、文件系统、网络、进程间通信),动态库,BSP包(驱动程序),系统调用,内核软件,嵌入式应用开发过程一个嵌入式应用项目的开发过程是一个硬件和软件设计的综合过程,是一个系统设计过程,主要经历以下步骤:硬件设计与实现引导加载程序的设计操作系统的移植(主要是驱动程序移植)应用程序的设计系统调试,样机交付其中,引导加载程序,操作系统移植,应用程序设计是软件设计,具有自己的特点。,嵌入式软件开发,需要交叉编译硬件平台处理器较慢,内存和外存容量小等等;把软件开发放在高性能的PC机上进行;PC机上CPU指令集与嵌入式CPU的指令集是不同的,因此,在PC机上开发嵌入式软件需要交叉编译。需要移植由于嵌入式系统是一个软硬件定制的系统,硬件平台各不相同,软件设计需要根据不同的硬件设备来添加或修改相应的代码,这就是移植。,嵌入式软件开发,在一个硬件平台上设计一个基于linux的软件系统,需要的工作可以分为以下三部分:Bootloader设计Linux内核的定制移植,驱动程序的开发应用程序的设计,嵌入式linux软件开发,嵌入式Linux开发环境,嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。解决办法:首先在通用计算机上编写程序;然后通过交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。,嵌入式Linux开发环境,关于交叉编译 在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。在PC平台(X86 CPU)上编译出能运行在arm平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到arm平台上才能运行。用来编译这种程序的编译器就叫交叉编译器。为了不跟本地编译器混淆,交叉编译器的名字一般都有前缀。例如:arm-linux-gcc,嵌入式Linux开发环境,嵌入式Linux开发环境,嵌入式Linux开发环境,需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点。交叉编译器只是交叉开发环境的一部分。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模式。,嵌入式Linux开发环境,宿主机目标板模式宿主机(Host)是一台通用计算机,它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,能够大大提高嵌入式应用软件的开发速度和效率。目标板(Target),应用程序实际运行的平台,或者是能够替代实际运行环境的仿真系统。软硬件资源通常都比较有限。,嵌入式Linux开发环境,宿主机目标机模式首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件;然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试;最后目标机在特定环境下脱离宿主机单独运行。,嵌入式Linux开发环境,开放的交叉开发环境的典型代表是GNU工具链目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境则主要有Mentor Graphics SourceryTools、ARM Software Development Toolkit等等。,嵌入式Linux开发环境,GNU交叉工具链交叉编译器,例如arm-linux-gcc交叉汇编器,例如arm-linux-as交叉链接器,例如arm-linux-ld用于处理可执行程序和库的一些基本工具。例如arm-linux-strip,嵌入式Linux开发环境,arm-gcc 的安装sudo tar xvfj arm-gcc.tar.bz2-C/arm-gcc.tar.bz2 在共享的tools/x210 目录arm-gcc.tar.bz2 包含了4个不同版本的arm-gcc:4.3.2 arm-2009q3 arm-none-eabi-2010-09-51 arm-none-linux-gnueabi-2010-09-50如果要用哪个编辑器就执行export PATH=/usr/local/arm/xxxx/bin:$PATH这里xxxx指的是上面其中的一个,嵌入式Linux开发环境,GNU交叉工具链的常用工具介绍,嵌入式Linux开发环境,主要工具的使用arm-linux-gcc 的使用arm-linux-gcc o hello hello.carm-linux-ar 和 arm-linux-ranlib 的使用建立一个静态库arm-linux-ar r libhello.a h1.o h2.o为静态库建立索引arm-linux-ar s libhello.aarm-linux-ranlib libhello.a由静态库产生可执行文件arm-linux-gcc-o hello hello.c lhello L./arm-linux-gcc-o hello hello.c libhello.a,嵌入式Linux开发环境,主要工具的使用arm-linux-strip 的使用移除所有的符号信息-strip-allcp hello hello1arm-linux-strip-strip-all hello-rwxr-xr-x 1 arm root 2856 7 月 3 15:14 hello-rwxr-xr-x 1 arm root 13682 7 月 3 15:13 hello1被strip后的hello程序比原来的hello1程序要小很多。移除调试符号信息-g arm-linux-strip-g hello-rwxr-xr-x 1 arm root 4501 7 月 3 15:17 hello-rwxr-xr-x 1 arm root 13682 7 月 3 15:13 hello1,如何观察应用程序在目标板的运行情况,即查看程序的输出信息?通过串口线连接宿主机和目标板。配置串口做为目标板的输出设备。例如在交叉编译目标板的linux内核时,配置指定终端为串口在宿主机上通过串口通信软件查看目标板系统的运行情况。,远程访问目标板,minicom的使用 minicom 的设置:sudo minicom-s,远程访问目标板,minicom的使用 选择串口选择菜单中的“Serial port setup”,按回车,进入如下图所示界面。按“A”以设置“Serial Device”(串口 1-/dev/ttyS0,串口2-/dev/ttyS1,usb转串口/dev/ttyUSB0),远程访问目标板,minicom的使用 设置波特率按“E”键进入设置“bps/par/Bits”(波特率)界面。再按“I”以设置波特率为 115200。,远程访问目标板,minicom的使用 设置无流控制按回车退回到上一级菜单,按“F”键设置“Hardware Flow Control”为“NO”,其他选项使用缺省值。,远程访问目标板,minicom的使用 保存设置Save setup as dfl再选择“Exit”退出设置模式。刚才的设置被保存到“/etc/minicom/minirc.dfl”。设置完毕打开目标板电源的电源开关,minicom输出目标板的启动信息,当 Linux 启动以后,minicom 就相当于虚拟终端,可通过它来操作目标板。,远程访问目标板,minicom的使用 退出 minicom 同时按下“Ctrl+A”键,紧接着再按下“Q”键,在跳出的窗口中,选择“Yes”。,远程访问目标板,通过usb下载同样使用三星公司的DNW软件。设置波特率115200、端口号上电启动开发板,进入 uboot命令行输入dnw c0008000有时 PC 端出现发现无法识别的 USB 设时,可reset开发板,重新输入命令。出现“Now USB is connected”说明 USB 正确枚举。点击“USB Port”Transmit”选项。,下载程序映象到目标板,通过TFTP方式下载TFTP协议是简单的文件传输协议,适合目标板Bootloader的使用。(u-boot)TFTP文件传输基于UDP。通过TFTP来传输目标板启动需要的内核映象文件zImage 传输速度快,使用方便。,下载程序映象到目标板,通过TFTP方式下载tftp分服务器和客户端。在宿主机开启tftp服务,设置好tftp的根目录内容在目标板开启tftp客户端程序。在目标板的bootloader命令行中通过tftp命令下载内核。tftp 0 xc008000 uImage,下载程序映象到目标板,通过TFTP方式下载自行安装好tftp并开启在目标板启动tftp客户端程序tftp 0 xc008000 uImage下载信息:TFTP from server 192.168.0.102;our IP address is Filename uImage.Load address:0 xc0008000Loading:#doneBytes transferred=3319840(32A820 hex),下载程序映象到目标板,通过挂载NFS方式下载NFS服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上,并且作为其他计算机的一个目录。在嵌入式开发中,通过NFS可以很方便的将修改的文件通过NFS传输到目标板上。不用反复烧写镜像文件。,下载程序映象到目标板,通过挂载NFS方式下载在超级终端或者minicom下通过NFS挂载宿主机目录 mount-t nfs-o nolock 192.168.0.102:/home/tan/share/share/tmp/test卸载NFS文件系统umount/tmp/test,下载程序映象到目标板,交叉调试器,嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。本地软件开发调试器与被调试的程序往往运行在同一台计算机上。调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。嵌入式软件开发调试时采用的是在宿主机和目标机之间进行的交叉调试。调试器运行在宿主机,但被调试的进程却是运行在目标板。调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。,交叉调试器,交叉调试器的结构,交叉调试器,制作交叉调试器编译生成针对arm处理器的 gdbserver进入gdb源代码包中的gdb server目录 cd gdb-7.5cd gdb/gdbserver配置生成gdbserverCC=arm-linux-gcc./configure-host=arm-linuxMake,生成gdbserver、gdbreplay,交叉调试器,制作交叉调试器通过nfs,将gdbserver/gdbreplay到目标板中。启动目标板上的gdbserver gdbserver 192.168.0.99:2345 cross-test 是目标板的IP地址。2345是任意指定的端口,可以是其他端口。启动宿主机端arm-linux-gdb调试器在宿主机的工作目录中有对应的程序和源文件#arm-linux-gdb cross-test(gdb)target remote 192.168.0.99:2345 连接远程gdbserver(gdb)b main 设置断点(gdb)c 运行,

    注意事项

    本文(嵌入式基础与开发环境.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开