已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C代码测试,C代码测试,9个应用基于客户的代码没有针对AVR进行优化!不同的应用领域不同的代码级别各个应用使用的字节数结果分析归一化的累加结果平均归一化结果,注释,加入更多的8-bitMCU提高benchmark我们的测试代码与ANSI相兼容,需要进行修改以便适合其他MCUEDNBenchmark标准只考虑大的MCU当其考虑到8-bitMCU市场时,我们将加入为客户而测试帮助客户减少代码量,Pagerprotocol,三层协议包括简单的Driver,模拟电话I,SIM接口,自动产生的代码一部分显示driver,模拟电话II,自动产生的代码基于状态机,Reed-Solomon,Reed-SolomonEncoder/Decoder,汽车无线电应用,基本应用流控和位控,CBitfields,客户提供的代码8-,16-bit变量,模拟电话III,有代表性的几个例程,DES算法,加密/解密算法,导航应用,完全的应用通讯,测量,计算,所有测试结果的累加,按累加字节数进行排序应用越大,占的比重也越大,归一化的测试结果,在各个应用中次序的平均值所有的应用都是平等的,总结,9个从不同应用领域抽取的C代码Benchmark没有一个MCU对所有的应用都是最优的在所有应用当中AVR名列前矛,一个小C函数,/*Returnthemaximumvalueofatableof16integers*/intmax(int*array)chara;intmaximum=-32768;for(a=0;amaximum)maximum=arraya;return(maximum);,性能比较(1),AT90S85158MHz80C5124MHz68HC11A812MHzPIC16C7420MHz,Normalizedfiguresgiveninparentheses,性能比较(2),8MHzAVR224MHzC51HC11:代码效率高,但是处理能力只有AVR的1/10,功耗却高2.5倍PIC速度快,但是在相同功耗下AVR性能比其高3.5倍,WhatmadetheAVRdobetter?,极好地支持16位数学运算(Zero-Flag的传输)32个寄存器的存在消除了数据在SRAM中的移动单周期执行,使用的编译器,AVR:IARICCA901.4080C51:IARICC80515.20Thumb:ARMtcc1.02bARM:ARMarmcc4.66b80196:IARicc1965.20aZ80:IARiccz804.03aH8/300(H):IARicch833.22H8/500:IARicch85002.92g68HC11:IARicc68114.20B,AVR支持C和高级语言编程的结构,高级语言,提高了MCU的重要性上市的时间简化维护工作Portability学习时间可重用性库潜在的缺点代码大小执行速度,为什么AVR适宜用高级语言编程?,BecauseitwasdesignedforHigh-LevelLanguages!,IAR对AVR结构和指令集的影响,在结构/指令集确定之前,编译器的开发就开始了潜在的瓶颈得到确认并消除IAR的反馈在硬件设计上得到了反映几次循环反复修改后的结果从代码当中可看出来,Memorysystem,32通用寄存器文件数量多直接与ALU连接可保存变量,指针和之间结果线性程序存储空间1KBytes-8MBytes无需页寻址常数区(SPM可修改)线性数据存储空间16MBytes无需页寻址,寄存器文件,RAM,程序,类似与C的寻址模式,C源代码unsignedchar*var1,*var2;*var1+=*-var2;产生的代码LDR16,-XSTZ+,R16,带偏移量的间接寻址,有效访问数组和结构Auto(localvariables)放置于软件堆栈之中为适应重入的要求,高级语言都基于堆栈结构,四种指针,从内存拷贝到内存最小化指针的反复加载高功能(HIGHFUNCTIONALITY),16和32位支持,加法指令加和减寄存器之间寄存器和立即数之间Zero标志的传播SUBR16,R24SUBIR16,1SBCR17,R25SBCIR17,0所有的跳转都基于最后结果,两个16位数相减,没有Zero标志的传播,R1:R0-R3:R2($E104-$E101),R1,R0,03,Z,0,00,E1,04,X,1,错误!,两个16位数相减,有Zero标志的传播,R1,R0,03,Z,0,00,0,E1,04,X,正确!,R1:R0-R3:R2($E104-$E101),16位指令,小数值的加减适合于索引变量和指针操作软件堆栈,Non-destructivecomparison,带进位比较Zero传播无需保存结果可使用所有形式的跳转,CPR16,R24CPCR17,R25CPCR18,R26CPCR19,R27,Switch支持,Switches在CASE语句中经常遇到Straightforwardapproach效率低间接跳转适合于紧凑的switch结构switch由通用库管理,摘要,AVR结构从一开始就是针对高级语言设计的Atmel与IAR在结构和指令调整上的合作从而编译器可以产生高效的代码,减少代码的提示和诀窍,EfficientC-codingforAVR,Assembly与C,可以完全控制资源在小应用当中可以产生紧凑的、高速的代码在大的应用当中代码效率低可读性差(Crypticcode)不好维护不易移植(Non-portable),对资源的控制有限在小应中产生的代码量大,执行速度慢在大的应用当中代码效率高结构化的代码容易维护容易移植,访问I/O,读I/O:temp=PIND;INR16,LOW(16)写I/O:TCCR0=0 x4F;LDIR16,79OUTLOW(51),R16,AVRI/O内存映像,0 x00,0 x1F,0 x3F,SBI,CBISBIC,SBIS,IN,OUT,I/O的位设置与清除,地址小于0 x1F的I/O:PORTB|=(1Project:,设置编译器选项,Project-Options,设置编译器选项,设置链接器文件,设置编译器选项,选择“Release”选择处理器配置及内存模式,设置C编译器,设定“intel-extended”为输出格式(releaseonly),设置C编译器,将文件加入到工程-Project-Files.,设置C编译器,设定“Debug”为当前配置“Make”theprogram:Project-MakePressF9Toolbutton带调试信息的可执行文件在DEBUGEXE目录,使用AVRStudio,启动AVRStudio加载调试文件(TestProg.d90)-File-Open选择AT90S8515(只需在开始时选择一次)加入视图(VIEW)I/O(PinB,PortD)ProcessorWatchcPORTBPIND单步执行,TogglePINDbits,对器件编程,设定“Release”为当前配置“Make”theprogram:Project-MakePressF9Toolbutton可执行程序位于RELEASEEXE目录,设置AVRISP,启动AtmelAVRISP软件MakeanewprojectProject-NewProject:选择AT90S/LS8535加入Title,Project-ID和Comments,设置AVRISP,选择编程窗口加载Intel-Hex文件(TestProg.hex)-File-Load对器件编程Program-AutoprogramF5Pushbutton测试应用程序,Main函数,“main”是所有C程序的入口点不要加入参数,也不要返回值语法:voidmain(void)/*代码*/,访问外围,所有I/O寄存器在头文件里都被定义为特殊功能寄存器象普通变量一样访问#include/*定义8515*/voidmain(void)DDRD=0 xFF;/*PortD输出*/,例1:读/写口,#include/*定义AT90S8515*/voidmain(void)charc;DDRB=0 xFF;/*PortB输出*/for(;)/*死循环*/c=PIND;/*读PortD*/PORTB=c;/*回写到PortB*/,例2:延时函数,#include/*定义8515*/voiddelay(unsignedintdelayValue)unsignedinti;for(i=0;idelayValue;i+)/*循环*/;/*Donothing*/,Example2Continued,voidmain(void)unsignedcharrunner=0 x01;DDRB=0 xff;/*PortB输出*/for(;)/*死循环*/if(runner)runner=1;elserunner=0 x01;PORTB=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资印尼油气:上游监管规则与实务应对(上篇)
- 2025年上半年教师资格证考试幼儿园科目二保教知识与能力真题及答案
- 2025下半年小学教师资格证教育教学知识与能力真题带答案
- 2025年初级会计考试试题题库解析及答案
- 2026事业单位工勤技能-新疆-新疆水生产处理工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-广西-广西环境监测工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-广东-广东水利机械运行维护工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-山西-山西堤灌维护工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-山东-山东有线广播电视机务员三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-宁夏-宁夏电工二级(技师)历年参考题库含答案详解
- GB/T 48023-2026数据中心冷板式液冷系统技术规范
- 妇产科医疗质量管理制度
- 《管理心理学》题库及答案
- 基层防汛工作知识培训
- 2026年浙江杭州市中考英语试题(附答案)
- 2025-2026学年第二学期期末考试高一语文试卷及答案
- 2026年浙江省安全员《B证》考试题库及答案
- 2026年高考语文全国卷二真题解读课件
- 2026美容仪器市场消费需求分析与竞争格局评估报告
- 精神科护理中的人文关怀与护理管理
- 护理在全球健康中的地位
评论
0/150
提交评论