- 3
- 0
- 约3.34万字
- 约 114页
- 2018-06-27 发布于河南
- 举报
嵌入式课件第七章
第七章 嵌入式Linux接口与应用开发 7.1 嵌入式应用程序开发调试 当编写完嵌入式程序代码并经过交叉编译后生成可执行代码,接着,需要运行这些可执行代码以测试它们是否存在错误,指定的功能是否能够实现。如果存在语法或逻辑上的错误,则需要修改、调试;如果没有错误且指定的功能已实现,则可以放入根文件系统并重新制作根文件系统映像。 显然,在嵌入式应用程序开发过程中需要有一个方便、可靠的运行、调试环境。由于嵌入式程序是运行在开发板上,所以它的运行与调试具有特殊性。 7.1.1 将应用程序加入嵌入式Linux系统 将交叉编译生成的可执行代码加入根文件系统,并重新制作根文件系统映像,然后下载到开发板运行。 显然,这种方法只适用于最后定型的应用程序。如果在测试过程中发现错误(无论是语法、逻辑还是功能上),就需要返回修改源程序、重新交叉编译、再次制作根文件系统映像并再次下载到开发板运行。 在嵌入式开发过程中有可能反复多次的修改运行,采用这种方法去调试运行程序会浪费大量的时间和精力。 7.1.2 应用程序的移植 所谓应用程序移植,就是将应用程序从一种运行平台(如PC)下转移到另一种运行平台(如ARM)下运行。 一、为何需要移植 1、在Linux系统有许多应用程序,如果将这些有需要的、现成的应用程序移植到嵌入式系统中则可以大大加快开发的进度,提高开发的效率。 2、为了开发方便,先在宿主机上开发应用程序,当调试运行成功后,再将其移植到目标开发板上。 二、移植的可行性 在PC机上开发Linux应用程序采用的是本地编译器,可以通过which命令查看,C程序用的是/usr/bin/gcc编译器,C++程序用的是/usr/bin/g++编译器。而进行嵌入式Linux应用程序开发,则是使用交叉编译器,一般交叉编译器由开发系统厂商随设备提供或从网络上下载,它们安装在/opt目录或/usr/loacl目录下。 只要源代码中不涉及汇编指令或某些系统调用,就可以不加修改地进行交叉编译并下载到目标平台上运行。唯一需要注意的就是,在编译时设置合适的参数以调用交叉编译工具,如arm-linux-gcc、arm-linux-g++等。 三、移植的方法 从移植的可行性可以看到,只要满足移植的可行性条件,再经过交叉编译即可下载运行了。 在一些Makefile文件中,有CROSS变量,该变量就是指定交叉编译工具的前缀,只要在make命令行中为CROSS变量赋值,即可调用相应的工具。例如,在存放Makefile文件的目录下执行: #make CROSS=arm-linux- 如果Makefile文件中没有使用CROSS变量,则只能手动修改编译工具,为它们加上相应的前缀,例如,在Makefile文件中将CC=gcc,修改为CC=arm-linux-gcc。例如:实验三 示例:用make命令行参数编译两种版本的zy2 如果应用程序较复杂,存在许多目录,每个目录下都有Makefile文件,则逐个修改很麻烦,可以在make命令行上设置这些变量的值,它们将覆盖Makefile文件中同名变量的值。 7.1.3 通过NFS调试嵌入式应用程序 NFS是通过文件系统实现资源共享的一种重要方式,它扩充了传统文件系统的功能,允许多个用户共享本地主机中的文件。NFS向用户隐藏了了网络访问的细节,用户可以像访问本地文件系统一样来存取远程主机中的共享文件。NFS是基于C/S模式的,客户端是要访问文件的计算机,而服务端是提供文件共享的计算机。 在嵌入式应用开发中,使用NFS调试程序可以大大提高工作效率,因为它不需要每次重新制作根文件系统的映像并下载,只要将交叉编译好的、需要调试的程序放到PC机提供的NFS服务的共享目录即可运行和调试。 如果存在问题,则在PC机上修改源代码,然后再交叉编译,最后复制到NFS共享的目录运行、调试。所以通过它使需要调试的程序运行更简单、调试更方便;另外,使用NFS还可以大大节省目标系统上的存储空间。 要使用NFS调试应用程序,需要先配置PC机,然后在目标机上执行mount命令。一般的配置步骤包括: 1、主机(host)的设置: 在主机/mnt 目录下创建nfs 目录,并利用文本编辑器编辑修改/etc/exports 文件(初始为空),增加如下内容: /mnt/nfs (rw,no_root_squash) 该行目的是将主机的/mnt/nfs 目录设置为能够通过网络文件系统访问、可读、写的目标。 2、重新启动nfs 在命令行提示符下执行: [ro
您可能关注的文档
- 《心愿》教学设计 张莉.doc
- 《我们怎样学地理》冯连波 20160922.doc
- 《有效技能》读后感.doc
- 八年级英语家庭作业UNIT8.doc
- 关务-工作记事本(Kevin).xls
- 精神文明建设知识测试题答案.doc
- GM助手2.doc
- 第2章计数机.ppt
- 我们的四体会相册.ppt
- 增员早会专题.ppt
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- DB54∕T 0446-2025 民用建筑太阳能应用技术规程.pdf
- 快意电梯CTRL20-V101(小机房)电气原理图.pdf VIP
- 2023注册消防工程师(消防安全技术实务)题库含答案【基础题】.docx
- 2025年南京市中考物理试卷(含答案及解析).pdf VIP
- 中级注册安全工程师考试题库精编.docx
- 2019_昆仑通态_用户手册_G系列_7072Gi_V1.5.pdf VIP
- 慢性阻塞性肺疾病查房【优质公开课】精品PPT课件模板.pptx
- 2023注册消防工程师(消防安全技术实务)题库带答案(黄金题型).docx
- 2023年06月国家国防科技工业局核技术支持中心社会招考聘用笔试历年难、易错考点试题含答案解析.docx
- 机械制图习题集(第3版)非机类_杨慧英课后习题答案.docx
原创力文档

文档评论(0)