书签 分享 收藏 举报 版权申诉 / 27
上传文档赚钱

类型ARM系统原理课件第6章嵌入式软件开发基础.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4984698
  • 上传时间:2023-01-30
  • 格式:PPT
  • 页数:27
  • 大小:730KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《ARM系统原理课件第6章嵌入式软件开发基础.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ARM 系统 原理 课件 嵌入式 软件 开发 基础
    资源描述:

    1、第6章 嵌入式软件开发基础 2第6章 嵌入式软件开发基础 l6.1 嵌入式软件开发语言l6.2 嵌入式软件开发流程l6.3 调试工具和方法l6.4 C语言程序的结构l6.3 仿真环境36.1 嵌入式软件开发语言p汇编(与体系结构相关)pC语言(最常用语言)语言(最常用语言)pC+语言(面向对象,C语言的扩展)pJAVA(面向对象,可移植性强)p脚本语言(不需要编译)46.2 嵌入式软件开发流程p嵌入式应用的生成特点p编译p汇编p链接p加载程序5嵌入式应用的生成特点 C语言程序的生成分成编译、汇编、编译、汇编、链接链接等几个步骤。最终的目标的文件的主要部分是处理器可执行的机器代码组合。根据系统的

    2、不同,目标文件可能除了可执行的二进制代码部分外,还包括一定的头。6嵌入式应用的生成特点ADS(Arm Developer Suite),主要需要使用以下工具:l编译器:armcc.exe(编译成ARM指令汇编)和tcc.exe(编译成Thumb指令汇编)l汇编器:armasm.exel链接器:armlink.exeARM-Linux GCC交叉编译系统,则主要使用以下工具:l编译器:arm-lixux-gcc(可以统一编译-汇编过程)l汇编器:arm-linux-asl链接器:arm-linux-ld7嵌入式应用的生成特点8编译(Compile)编译(Compile)是指从高级语言转换成汇编语

    3、言的过程。从本质上编译是一个文本转换的过程(从文本文件到文本文件)。编译包含了C语言的语法解析和生成汇编语言两个步骤。9汇编(Assemble)汇编(Assemble)是指从汇编语言程序生成目标系统的二进制代码(机器代码)的过程。相对于编译过程的语法解析,汇编的过程相对简单。这是因为对于一款特定的处理器,其汇编语言和二进制的机器代码是一一对应的。10链接(Link)链接(Link)过程将汇编成的多个机器代码组合成一个可执行程序。一般来说,通过编译和汇编过程,每一个源文件将生成一个目标文件。链接器的作用就是将这些目标文件组合,组合的过程包括了代码段、数据段等部分的合并,以及添加相应的文件头。11

    4、6.3 调试工具和方法p嵌入式调试的特点p打印调试信息pJTAG调试p远程gdb调试12嵌入式调试的特点 在嵌入式系统中,调试的概念相对复杂。对于其调试过程,程序主体运行在目标机上,主机所起的作用是获得程序运行中的信息,并通过人工或者程序的方式分析这些信息。因此嵌入式调试的基础是需要一条从主机到目标机的通讯通道。13打印调试信息 打印调试信息是基本的调试方式,printf()标准输出,在嵌入式系统中,这种输出的通讯通道可能是串口或者网络协议。在某些系统中,没有实现标准输出,这就需要开发者自己开发调试手段。14JTAG调试 JTAG是Joint Test Action Group的简称。JTAG

    5、使用边界扫描(Boundary-Scan)的方式调试:在正常的运行状态下,这些边界扫描寄存器对于芯片是透明的;在调试的运行状态下,通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。15远程GDB调试 在远程GDB调试中,调试器是运行在主机(host,桌面电脑)的应用程序,被调试的程序是运行在目标(target)上。它通过插桩(stub)的方式实现,即在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。调试器与被调程序的通信:Gdb和调试stub通过GDB串行协议进行通信。166.4 C语言程序的结构pC语言目标文件中的段p执行程序内部细节p目标文件各段的链接

    6、pC语言程序的执行17C语言目标文件中的段 C语言的目标文件一般包含三个主体段:l代码段(Code,又称Text)l只读数据段(RO Data)l读写数据段(RW Data)18执行程序内部细节1#include 2#include 34const char ro_data1024=This is readonly data;5char rw_data_11024=This is global readwrite data;6static char rw_data_21024=This is internal readwrite data;7static char zero_data_1102

    7、4;819执行程序内部细节9int main(int argc,char*argv)10 11 static char zero_data_2 1024;12 int i;13 char stack_data_1100;14 char stack_data_2=Init stack Data;15 char*memptr;16 memptr=(char*)malloc(1024);17 if(NULL=memptr)18 19 printf(malloc errorn);20 return-1;21 22 else23 24 printf(malloc successfullyn);25 26

    8、 for(i=0;i1024;i+)27 28 zero_data_1i=a;29 20执行程序内部细节30 strcpy(stack_data_1,stack data 1);31 strcpy(memptr,data in heap);32 33 printf(ro_data:%sn,ro_data);34 printf(rw_data_1:%sn,rw_data_1);35 printf(rw_data_2:%sn,rw_data_2);36 printf(stack_data_1:%sn,stack_data_1);37 printf(stack_data_2:%sn,stack_data_2);38 printf(memptr:%sn,memptr);39 40 free(memptr);41 return 0;42 21目标文件各段的链接 可执行文件其主体部分依然是代码段(Code)、只读数据段(RO Data)、读写数据段(RW Data)三个段,这三个段由各个目标文件(.o)经过“组合”而成。22C语言程序的执行23C语言程序的执行246.4 仿真环境p源代码编译成主机程序 p主机运行目标机代码 25源代码编译成主机程序26主机运行目标机代码课程结束作业:章后习题作业:章后习题

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:ARM系统原理课件第6章嵌入式软件开发基础.ppt
    链接地址:https://www.163wenku.com/p-4984698.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库