嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章 嵌入式软件开发基础

上传人:E**** 文档编号:89446872 上传时间:2019-05-25 格式:PPT 页数:27 大小:731.50KB
返回 下载 相关 举报
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章  嵌入式软件开发基础_第1页
第1页 / 共27页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章  嵌入式软件开发基础_第2页
第2页 / 共27页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章  嵌入式软件开发基础_第3页
第3页 / 共27页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章  嵌入式软件开发基础_第4页
第4页 / 共27页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章  嵌入式软件开发基础_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章 嵌入式软件开发基础》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第6章 嵌入式软件开发基础(27页珍藏版)》请在金锄头文库上搜索。

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

2、码部分外,还包括一定的头。,嵌入式应用的生成特点,ADS(Arm Developer Suite),主要需要使用以下工具: 编译器:armcc.exe(编译成ARM指令汇编)和tcc.exe(编译成Thumb指令汇编) 汇编器:armasm.exe 链接器:armlink.exe ARM-Linux GCC交叉编译系统,则主要使用以下工具: 编译器:arm-lixux-gcc(可以统一编译-汇编过程) 汇编器:arm-linux-as 链接器:arm-linux-ld,嵌入式应用的生成特点,编译(Compile),编译(Compile)是指从高级语言转换成汇编语言的过程。从本质上编译是一个文本

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

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

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

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

7、4; 8,执行程序内部细节,9 int 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 else 23 24 printf

8、(“malloc successfullyn“); 25 26 for(i=0;i1024;i+) 27 28 zero_data_1i = a; 29 ,执行程序内部细节,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 ,目标文件各段的链接,可执行文件其主体部分依然是代码段(Code)、只读数据段(RO Data)、读写数据段(RW Data)三个段,这三个段由各个目标文件(.o)经过“组合”而成。,C语言程序的执行,C语言程序的执行,6.4 仿真环境,源代码编译成主机程序 主机运行目标机代码,源代码编译成主机程序,主机运行目标机代码,课程结束,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号