版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章嵌入式软件设计嵌入式信息系统讲义软件开发环境主要介绍:¾编译工具:、(交叉编译)第章嵌入式软件设计¾¾和软件开发环境引导加载程序内核移植文件系统开发环境的组成<简介编译工具的基本结构源程序词法分析是在以及类平台上广泛使用的编译器集合,它能够支持多种语言前端,包括和等。语法分析符号表及其管理设计中有两个重要的代码能够最大程度的被复做到一定程度的硬件无关性;另一个是高质量的可执行代码,这就需要对代码进行集中的优化。为了实现这内部使用了一种硬件平台无关的语言,它能对实际的体系结构做一种抽象,这个中间语目标,其中一个是在构建支持错误处理语义分析不同硬件平台的编译器时,它的生成中间代码用,所以必须要要生成优化代码两个目标,生成目标代码言就是。目标程序<<常用选项用编译程序流程源码解析转移令优化公用子表达式据流分析寄存器类优先级选择令时序语法树的优化RTL代码生成函数调用优化只支持ANSI标准的C语法。这一选项将禁止GNUC的某些特色,例如asm或typeof关键词指寄存器扫描()优化只编译C预编译试信息。GNU调试器可利用该信息指定的输出文件并生成目标文件只运行器削减循环语句优化令合并寄存器移寄存器分配动基本块重新安排多分支指令合并二次公用子表达式优化生成调数指动指令时序调整生成。用在生成可执行文件时不进行优化处理优化生成代码进一步优化局部重载或二次指调整二次转移指令优化比-O2更进任何警告信息生成所有警告信息一步优化,包括inline函数可延迟性分支时序安排寄存器使用优化不生成输出与程序对应的汇编语言程序调试信息输出<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义交叉编译常用交叉编译工具名称归属作用交叉编译就是在一个处理器硬件平台上(通常为)编编译汇编程序译可运行于另一个不同处理器硬件平台上的应用程序。也就是有应用程序的源代码生成另一种机器码。把多个合并成一个或静态库为库文件建立索引,相当于连接器把多个或库文件连接成一交叉编译工具用于在平台的应用程序。机环境下开发基于其它硬件个可执行文件查看目标文件和库的信息基于的交叉编译工具在原来工具上加前缀转换可执行文件的格式,交叉编译工具本身也是应用程序,只是其生成的去掉读可执行文件的信息使可执行文件变小可执行文件的信息应用程序只可在硬件平台上运行,即生成指令。编译或开头的程序或汇编程序编译程序<<开发工具的获取和安装交叉编译环境建立步骤、下载源代码:的所有开发工具都可以从上内核下载,的编译器功能非常强大,共有上百个操作选项,这也是这类工具让初学者头痛的原因,不过实际开发中只需要用到有限的几个,大部分可以采用缺省选项、编译:。用指定安装路径基于和的工具源代码可以从。要得到二进制用指定目标机类型获得的编译工具,还需要用编译源代码生成。、配置内核头文件:实验中建立开发环境只需在环境下运行博创公,根据实际需要配置内核,司提供的交叉编译工具安装脚本即可完成开发工配完后将头文件目录和拷具的安装和配置。贝到安装目录下<<交叉编译环境建立步骤嵌入式开发流程、第次编译:由于还没有适用于的库,先关掉、搭建硬件开发环境、搭建软件开发环境一些选项,再编译得到最简单的、交叉编译:用编译得到适用于的、第次编译:再次编译得到完整的工具链更多细节可参考编译工具链是一个较麻烦的工作,除非确有必要,一般直接使用编译好的,实验中使用现成的工具链安装即可。<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义开发板()、搭建硬件开发环境:开发板(安卓)电源输入串口个口网口<<搭建硬件开发环境串口线嵌入式系统的人机交互方法网线(交叉线)转串口可以将嵌入式开发板看作一个没有键盘的主机,有几种方法与该主机交互:、外接键盘,启动图形环境后可用鼠标或触摸屏;串口、在主机上启动一个任务,将该任务窗口作并口线为开发板的终端,通过该终端与嵌入式交互,要求配置串口波特率、帧格式等;具体方法见实验指导书第个口网口页。音频接口调试器、如果在环境下则通过超级终端,启动一个窗口与嵌入式系统交互,同样要求配置串口波特率、帧格式等。开发板<<接口接口不但可以用来测试内部功能模块状态,还可以实现)功能。系列处理器正是通过使用内部集成的功能,并采用这种方式实现在线调试的。标准即标准,联合测试行动组在线调试(起草了边界扫描测试规范边界扫描技术的基本思想是在靠近输出管脚上增加一个移位寄存器单元。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。另外,芯片输入输出管脚上的边界扫描(移位)寄存器单元可以相互连接起来,在芯片的周围形成一个边界扫实验中中没有任何程序时,用(类似主要用来烧写,即当开发板上芯片的输入的方式写入最基本的引导下有开放源代,需要有并口模块配合可程序码的自制。的)。在烧写程序一旦工作正常,以后就可以由内核、文件系统、应用程序等烧写到描链()。负责将中。<<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义、搭建软件开发环境嵌入式开发流程)建立开发环境,操作系统一般使用,选)移植引导装载程序()、内核、根文择定制安装或全部安装,通过网络下载相应的交叉编件系统,建立应用程序的磁盘分区。(开发板已经译器进行安装比如、,或预先做)好)烧写者安装产品厂家提供的交叉编译器。、内核、根文件系统、应用程)配置开发主机,配置,数据位位,停止位,无奇偶校验,软件流控设为无。在,一般的参数为波特率序。(开发板已经预先做)好硬件)开发应用程序,通过网络、命令、下的超级终端的配置也是这样。等方式将得到的格式的可执行文件存入文件系统软件的作用是作为调试嵌入式开发板的信息输出中。也可重复、直至符合最终要求。的监视器和键盘输入的工具。<<典型软硬件环境配置示例串口线开发应用程序流程网线(交叉线)客户¾用编写、件),在语言或汇编源程序(文件文环境下用或者写字板编辑源文件,不能用记事本;¾用或生成目串口标文件,甚至语言直接嵌入汇编,也能处理;¾编写连接脚本文件,用连接器生成最终目标文件(格式);¾用服务器网口个口调试,最后用二进制转换工具生成可下载的二进制代码;(也可以直接运行程序,根据输出反复修改)¾在下一般把编译、连接、安装工作用命令来完成。脚本来描述,使用<><和基本结构基本上就是『目标』『关连』中一般包含如下内容:和『动作』三者所组成的一连串规则。会根据的规则来决定如何编译程序。实际上,可做的不只是编译和连还可以做到自动下载源代码,解压缩¾需要由工具创建的项目,通常是目标文件和可执行文件。通常使用目标()一词来表示要创建的项目;和连结结程序,¾要创建的项目依赖于哪些文件;,修补,设定,然後编译,安装至系统¾创建每个项目时需要运行的命令。中。在系统中,习惯使用作为文件。如果要使用其他文件作为命令选项指定,则可利用类似下面的文件:<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义例变量的工具除提供有建立目标的基本功能之外,还有许多便于表达依赖性关系以及建立目标的命令的特色。其中之一就是变量或宏的定义能力。如果你要以相同的编译选项同时编译十几个源文件,而为每个目标的编译指定冗长的编译选项的话,将是非常乏味的。但利用简单的变量定义,可避免这种乏味的工作。<<<<变量例写法引用到该变量时,使用变量名,或者是变量名在上面的例子中,和就是的变量。通常称之为变量,而其他的工具称之为宏,实际是同一个东西。在中引用变量的值时,只需变量名之前添加。符号,如上面的和<的主要预定义变量的主要预定义变量不包含扩展名的目标文件名称归档维护程序的名称,默认值为归档维护程序的选项所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件汇编程序的名称,默认值为第一个依赖文件的名称汇编程序的选项所有的依赖创建日期晚文件,以空格分开,这些依赖文件的修改日期比目编译器的名称,默认值为标的编译器的选项目标的完整名称预编译器的名称,默认值为所有的依赖文件,以空格分开,不包含重复的依赖是归档成员,则该变量表示目标的归档成员名称。例如果目标名称为文件预编译的选项如果目标编译器的名称,默认值为如,,则为,而为编译器的选项<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义例写法隐含规则利用这些变量,可以把上面的写成:包含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。支持两种类型的隐含规则:后缀规则()。后缀规则是定义隐含规则的老风格方法。后缀规则定义了将一个具有某个后缀的文件(例如,文件)转换为具有另外一种后缀的文件(例如,文件)的方法。每个后缀规则以两个成对出现的后缀名定义,例如,将文件转换为文件的后缀规则可定义为:<<隐含规则伪目标模式规则()。这种规则更加通用,因为可如果需要最终产生两个和更多的可执行文件,但这些文件以利用模式规则定义更加复杂的依赖性规则。例如下面的是相互独立的,也就是说任何一个目标文件的重建,不会影所谓的伪目标来达到个真正的目标文件的唯一区别在个目标文件本身并不存在。因此,总是会假设它需要被生成,把该伪目标文件的所有依赖文件更新后,就会执行它的规则里的命令行。模式规则定义了如何将任意一个文件转换为文响其他目标文件。此时,可以通过使用件:这一目的。一个伪目标和一于,这当都<<函数:函数:里的函数跟它的宏很相似,在使用的一个符号开始后跟圆括号,在圆括号内包含函数名,格后跟一系列由逗号分隔的参数。时候,用匹配替换的个是一个需要匹配的模式,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。缩写函数。它空需要3个参数:第一的函数,它只有一列所有符合由其参数描述的文件间以空格间隔。可以像下面所示使用这个命令:个参数,功能是展开成一名,文件例如,处理那个经过上面定义后的变量,这个语句将处理所有在宏中的文件名后缀是的这样会产生一个有所以'.c'结尾的文件的列表,然后存入变文件,用把取代。量SOURCES里<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义命令的常用命令行选项的一个具体例子在读取之前改变到指定的目录以指定的显示所有的文件作为选项忽略所有的命令执行错误当包含其他文件时,可利用该选项指定搜索目录只打印要执行的命令,但不执行这些命令显示变量和隐含规则在执行命令时不显示命令在处理之前和之后,显示工作目录禁止使用隐含规则模式,输出有关文件和检测时间的详细信息假定文件已经被修改<<的一个具体例子在系统中,最常用到的调试工具就是。是自带的调试工具。要想使用,必须在对源码进行编译的时候,使用编译选项开关,来通知编译器,开发者希望进行程序调试。用了选项后,程序在编译的时候就会包含调试信息,这些调试信息存在目标文件中,它描述了每个函数或变量的数据类型以及源码行号和可执行代码地址间对应关系,正是通过这些信息使源码和机器码相关联的,它实现了源码级的调试。注:更复杂的例子可以参看的源代码<<引导加载程序基本命令命令功能描述是在操作系统之前运行的一段程序本的初始化工作,包括处理器、内存、外围芯片和设备初始化等,此后引导操作系统工作;,完成最基装入想要调试的可执行文件终止正在调试的程序列出产生执行文件的源代码的一部分执行一行源代码但不进入函数内部执行一行源代码而且进入函数内部执行当前被调试的程序介于具体硬件平台和操作系统之间,一方面对终止硬件的依赖性较高,特别是对于嵌入式系统而言,由于嵌入使你能监视不管它何时被改变在代码里设置断点使你能不退就可以重新产生使你能不离一个变量的值而式处理多种多样;另一方面需要适应不同嵌入式操作系统;这将使程序执行到这里时被挂起出可执行文件可以看作是硬件平台和操作系统之间的桥梁。开就执行命令反汇编<<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义作用的操作模式应用程序根文件系统内核启动参数大多数模式都有两种不同的操作模式:启动加载和下载模式、启动加载模式:也称为自主(式,)模内核根文件系统自动从某个固态存储设备上将操作系统加载中,引导其运行后将系统控制权交给操作系到引导加载程序硬件平台统,整个过程并不需要用户的介入。这种模式是BootLoder操作的正常模式,发布嵌入式产品时需使用典型空间分配结构此模式。软件层次结构示意图<<的操作模式的、下载模式:整体结构流程图在此模式下,将通过串口或网口将映像下载到中,再根据命令要求写入中。第次安装内核和根文件系统时常用此模式。在此模式下,通过人交机互方式工作,由终端提供一个命令行接口。从这个意义上说,也可以把看作是一个简单的操作系统。<<嵌入式常用简介,全称,是遵循条款的开、、放源代码项目。其源代码目录和编译方式与很相似。作为一种通用的既能适应不同的处理器硬,又能满足不同操作系统引导的要求,非常适合嵌入韩国公司为板开发的引导程序件平台是在开发为基础的嵌入式开发板上式系统应用。采用的引导程序项目由德国公司维护,目前,全球众多有志于移植工作的嵌入式开发人员正在共同努、开放源码通用力,不断完善其功能,以支持在更多处理器平台上对更多操、其它:、等作系统的装载与引导。<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义工作流程图说明开始初始到的设化本阶段要使用备第阶段:高度依赖于硬件体系结构的代码,如内存CPU、内存、中断等硬件设备初始化配置、中断、和外围设备初始化代码等,通常都放一检测系统内存映射般用汇编语言来实现,以达到灵活、高效的目的;拷贝BootLoader的第2阶段代码到RAM空间把要引导的操作系统内核和根文件系统从Flash复第阶段:与具体平台相关性相对较小,通常用语言来编制到RAM中写,这样可以实现更复杂的功能,而且代码更也容易理解设置堆栈和维护。这种设计思想保证了具有良好的通用性和为内核设置启动参数跳转到第2阶段的C语可移植性。言代码入口点调用操作系统内核<<平台编译的方法内核移植)进入源代码压缩文件目录主要步骤:)解压源代码修改:如添加自己的应用程序、排除可能错误等裁减:定制用户配置)进入源代码根目录)清除临时文件)编译编译:生成内核的二进制映像文件烧写:写入将编译得到的和文件拷贝到制作卡文件系统的目录备用。<<系统结构简介操作系统最突出的是网络部分,基本上所有的网络协议都可以在上找到。标准的系统在网络服务器领域已经得到了广泛的使用,世界上已有近%的主机采用,它们全都在长时间、大负荷地工作着。这一事实证明了的稳定性、安全性和可靠性。开放性和网络功能使其非常适合多数设备。%以上的代码是用可移植性好的语言作为操作系统操作系统内核的完成的,少部分的底层相关的代码由汇编语言完成,并根据处理器类型分门别类地放在系统内核源码的目录中。<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义内核的组成内核主要代码分布框图<<平台编译内核的方法配置内核)进入源代码压缩文件目录¾:基于文本的最为传统的配置界面,不推荐使用;¾终端下:基于文本菜单的配置界面,字符推荐使用;)解压内核源代码)进入源代码根目录¾:基于图形窗口模式的配置界面,下推荐使用。上述配置命令的目的是一样的,那就是生成一个)按缺省参数配置内核:)若需要定制再进一步执行)清除临时文件:文件。在选择相应的配置时,有三种选择,它们分别代配置内核表的含义下如:-将该功能编译进内核-不将该功能编译进内核-将该功能编译成可以在需要时动态插入到内)编译内核(需要分钟左右):将编译得到的文件拷贝到制作卡文件系统的核中的模块目录备用,该文件在目录下。<<配置菜单文件系统文件系统为操作系统不可或缺的重要组成部分,用户通常通过文件系统与操作系统进行交互,硬件设备和网络接口等均需要映射成特殊文件,按文件读写方式来访问。<<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义文件系统层次图常用文件系统用户程序:传统用户层文件系统:虚拟文件系统:只存在于内存中文件系统各种文件系统特殊文件磁盘文件设备文件设备驱动其它设备驱动磁盘驱动磁盘介质嵌入式小型文件系统其它存储介质物理介质或传输介质<<<<的作用设备文件与在中,硬件也被作为文件系统的一部分,这就是设备文件,设备文件不会占用普通文件系统的任何空间,它只是对设备驱动程序的一个访问点。存在两类设备文件:字符设备文件和块设备文件,前者允许以字符方式进行操作,后者需要通过缓冲器以数据块方式进行操作。字符设备如串口终端设备,块设备如是一个中间层,用于处理涉及文件的系统调用,并调用物理文件系统代码中的必要功能来进行操作。<文件系统目录布局文件类型<WrittenbyZhou,BISTU5-第5章嵌入式软件设计嵌入式信息系统讲义芯片上的嵌入式文件系统结构与年,发布了第版的文件系统,是开源的,完全为嵌入式(系统设计。),可以看作是芯片的翻译层,即硬件抽象层,正是由于的存在,使得在中能快速发展。几乎可以被在任何可随机访问的设备上(如:只要支持这些设备)。如果遇到新设备且驱动程序不存在,则找一个现成的同类驱动程序,修改其中有关的函数,之后就可以将到新设备上了,可以不用关心是如何工作的。<<的设计目标是支持大容量闪存的文件系统。(),是一种类似与在设计上根本的区别在于,将索引于的专门为设计的嵌入式文件系统。与信息存放在闪存上,而将索引信息保存在内存中。索相比,它减少了一些功能,因此快、占用内存都提供了写均衡,垃圾收集等底层大多采用的模式。速度更引信息如:由给的定文件内偏移定位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 2982-2024工业车辆充气轮胎规格、尺寸、气压与负荷
- 2024年低田闲置转让合同范本
- 2024年代理要账居间协议合同范本
- 2024年冲桩机出售转让合同范本
- 小学毕业数学总复习专题九解决问题第21课时比和比例实际问题课件
- 专家幼小衔接培训
- 2024安全生产法律法规知识培训
- 2024至2030年中国锁花片数据监测研究报告
- 【数学】指数函数图象与性质测试卷-2024-2025学年高一上学期数学人教A版(2019)必修第一册
- 2024家庭装修施工合同新
- 兽医流行病学病因推断
- 历史幽愤的现代回响——《记念刘和珍君》课堂实录
- 英语单词分类大全-20170913
- 信息技术课课堂教学评价表
- 施工进度计划书
- 35KV集电线路铁塔组立专项方案
- 不锈钢管规格表大全以及理论重量表大全
- 公司保密制度-附保密分类表
- 滑雪场管理手册
- 人类养生长寿的新方法---“中枢平衡”健体强身模式
- 胸外科技术操作规范
评论
0/150
提交评论