第二章基本概念-嵌入式汇编语言程序设计.ppt
文本预览下载声明
嵌入式系统概论
—基于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语句更佳。;函数;操作系统;主函数的执行过程;控制流与数据流;当一个函数被调用时:
在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和局部变量;
显示全部