首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

8051、ARM和DSP指令周期的测试与分析

8051、ARM和DSP指令周期的测试与分析

摘要 在实时嵌入式控制系统中,指令周期对系统的性能有至关重要的影响。介绍几种最常用的微控制器的工作机制,采用一段循环语句对这几种微控制器的指令周期进行测试,并进行分析比较。分析结论对系统控制器的选择有一定的指导作用。关键词 指令周期测试 AT89S51 LPC2114 TMS320F2812    在实时控制系统中,选择微控制器的指标时最重要的是计算速度的问题。指令周期是反映计算速度的一个重要指标,为此本文对三种最具代表性的微控制器(AT89S51单片机、ARM7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和测试。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。  1  AT89S51工作机制及指令周期的测试    AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行2分频。由于时钟周期为振荡周期的两倍(时钟周期=振荡周期P1+振荡周期P2),而1个机器周期含有6个时钟,因此1个机器周期包括12个晶振的振荡周期。取石英晶振的振荡频率为11.059 2 MHz,则单片机的机器周期为12/11.059 2=1.085 1 μs。51系列单片机的指令周期一般含1~4个机器周期,多数指令为单周期指令,有2周期和4周期指令。    为了观察指令周期,对单片机的P1口的最低位进行循环置位操作和清除操作。源程序如下:  #includemain() {  while(1) {    P1=0x01;    P1=0x00;  }}    采用KEIL uVISION2进行编译、链接,生成可执行文件。当调用该集成环境中的Debug时,可以得到上述源程序混合模式的反汇编代码:      2:main()    3: {    4:while(1)    5:{    61=0x01;  0x000F759001MOVP1(0x90),#0x01    71=0x00;  0x0012 E4CLRA  0x0013 F590MOVP1(0x90),A    8:}  0x001580EDSJMPmain (C:0003)    其中斜体的代码为C源程序,正体的代码为斜体C源程序对应的汇编语言代码。每行汇编代码的第1列为该代码在存储器中的位置,第2列为机器码,后面是编译、链接后的汇编语言代码。所有指令共占用6个机器周期(其中“MOV  P1(0x90),#0x01”占用2个机器周期,“CLR  A”和“MOV  P1(0x90),A”各占用1个机器周期,最后一个跳转指令占用2个机器周期),则总的循环周期为6%26;#215;机器周期=6%26;#215;1.085 1 μs=6.51 μs。  
继承事业,薪火相传
返回列表