文档详情

第二章基本概念-嵌入式汇编语言程序设计.ppt

发布:2017-04-19约7.81千字共217页下载文档
文本预览下载声明
嵌入式系统概论 —基于32位微处理器与实时操作系统 第二讲 基本概念及设计方法 北京航空航天大学 机器人研究所 魏洪兴 ;本节提要;冯·诺依曼体系结构和哈佛体系结构 CISC与RISC IP 核 流水线 存储器系统 ;冯·诺依曼体系结构模型;哈佛体系结构;CISC的背景和特点 ;CISC的主要缺点;RISC基本设计思想;CISC和RISC;CISC与RISC的数据通道;CISC与RISC的对比;典型的高性能RISC处理器;for (i = 0; i 10000; ++i) /* 各种算术运算操作 */ 实验平台:桌面Intel Pentium4,带硬件浮点支持 Operator Time Operator Time + (int) 1 + (double) 5 * (int) 5 * (double) 5 / (int) 12 / (double) 10 (int) 2 sin 48 ;实验平台:400MHz Intel PXA250 Xscale(ARM)处理器 Operator Time Operator Time + (int) 1 + (double) 140 * (int) 1 * (double) 110 / (int) 7 / (double) 220 (int) 1 sin 3300;知识产权核(IP核, intellectual property);IP核的种类;IP核的商业模型;ARM的IP核;流水线技术;指令流水线—以ARM为例; 最佳流水线; LDR 流水线举例;分支流水线举例;超标量执行;高速缓存(CACHE);总线和总线桥;常见的嵌入式处理器结构;存储器系统的层次结构;存储器系统;NOR技术;NAND技术;输入输出接口;本节提要;嵌入式软件体系结构;无操作系统的情形;事件驱动系统:(Event-Driven system) 事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。;例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。;前后台系统(后台循环、前台中断);有操作系统的情形;为什么要有设备驱动程序? 嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等。 什么是设备驱动程序? 直接与硬件打交道、对硬件进行控制和管理的软件。 在一个嵌入式系统中,设备驱动程序是必不可少的。;设备驱动程序的主要功能;嵌入式操作系统;嵌入式中间件;嵌入式C程序设计;嵌入式软件的目标;数据类型与运算符;宏定义的基本思想是:一次定义,多次使用。其 优点是: 可以用简短的标识符来代替长的数据,减少需要输入的字符数; 用易于理解的标识符来代替那些不太好记的具体的数据,便于程序的理解和维护; 有利于程序的修改和升级,当这个数据需要修改时,只需改动宏定义之处即可。;if ( myMoney 80.0 ) { myShoes ++; myMoney = myMoney – 80.0; };(2)const常量;(3)算术运算;结论: 尽量使用整数(char、short、int和long)的加法和减法; 如果没有硬件支持,尽量避免使用乘法; 尽量避免使用除法; 如果没有硬件支持,尽量避免使用浮点数; 数学库函数使用得越少越好。;(4)位运算;a |= 0x4 b = ~0x4 c = ~(1 3) d ^= (1 5) e = 2 ;int x, num = 99, count = 0; x = num; while(x) { count ++; x = x (x ? 1); } printf(result: %d, count);;分支语句;if-then-else语句的汇编代码;switch语句的汇编代码-1;switch语句的汇编代码-2;结论: 假设a的取值个数为n,对于if-then-else语句,时间复杂度为O(n),而对于switch语句,时间复杂度为O(1); 如果n的值较小,两种语句均可; 如果n的值较大,则switch语句更佳。;函数;操作系统;主函数的执行过程;控制流与数据流;当一个函数被调用时: 在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和局部变量;
显示全部
相似文档