完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
AVR与传统类型的单片机比拟,在IC芯片解密技术中除了必需能实现原来的一些基本的功能,其在结构体系、功能部件、机能和可靠性等多方面有很大的进步和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,假如还采用和沿袭以前传统的硬件和软件设计思惟和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和优点。 功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。IC芯片解密就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的施展出车的机能。 AVR具有上手入门快,开发利便简朴的特点,但要充分体会和施展AVR的长处,还需要应用工程师本身的硬软件设计开发能力IC芯片解密的不断学习、实践进步。 “外行看热闹,内行看门道”,对于有一定基础的嵌入式和单片机系统设计开发的工程师,不妨先简朴尝试一下AVR。 开发环境与工具:PC+下载线+实际的系统板 PC上的开发软件: AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真 ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。 AVR ISP下载线: STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。 尽量不使用仿真器的建议: 在开发和调试系统程序、IC芯片解密时,有很多人完全依靠于IC芯片解密,一旦离开了仿真器时就感觉无从下手。实在,因为AVR的Flash存贮器可利便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依靠)仿真器来开发和调试程序。 在实际开发过程中,程序的调试可以从下几方面入手: 现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。 使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。 尽可能使用高级语言编写系统程序。 利用目标板上的LED、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的先容。 进步硬件设计的公道性: 尽量公道和充分使用AVR片内的资源,如EEPROM、A/D、内部的RC振荡源。 尽量采用串口通讯连接的外围器件,大容量的存储器、LCD控制器、打印机、不用8279(LED数码管+键盘)而使用7279等。除了必需外扩RAM(如语音和图象),一般不提倡使用并行扩展(573+译码电路),减小硬件和连线以及PCB板上错误的泛起概率,同时也进步了系统的可靠性。并行扩展向串行扩展是发展趋势。现在有大量的新的外围器件采用高速的串行接口,如A/D、D/A、RTC、存储器等。 尽量使用以及在目标板上预留ISP程序下载接口,或使用IAP技术。 长处:ISP接口与I/O的兼容性比JETAG好。 缺点:不能在线调试 留意和把握AVR配置熔丝位的使用: 尽量公道采用高级语言设计编写系统程序。有很多人以为使用汇编写程序比较精简,而用高级语言开发会铺张良多程序空间,实在这是一种曲解。对一个有经验的,而且非常认识某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或溘然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗? 现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。 更深入和全面的把握各种串行通讯协议的规程: 嵌入式系统目前以大量的使用串行接口外围芯片和各种通讯接口,如RS232、两线(I2C)、三线(SPI)、单总线、USB、CAN、TCP/IP等。开发职员和程序员应了解低层协议,认识硬件怎样和如何实现低层协议,如何定义可靠的上层应用协议,以及低层协议驱动同上层应用协议之间的接口设计(中间层软件的实现)等。 硬件工程师的软件编写能力要进步,采用尺度程序编写方式、完善的软件整体框架的设计、良好的数据结构和程序结构系统。(计算机软件专业的程序设计员对硬件不认识、大部门是在操纵系统支持下编写软件,对低层接口和协议的驱动层以及接口也不了解,往往也编写不出好的单片机系统程序。) 通讯接口的编写应尽量 .采用间断+缓冲区, .分层+结构化设计, .尽量不使用轮循方式(降低AVR的效率)。参见URAT(RS232)驱动+中间层软件示例。 采用好的系统设计模式: 尽量不使用传统的前后台(间断)系统设计模式,任务之间相互影响和干扰,无法定时操纵。如设计一个采用动态扫描方式驱动的8位LED数码管显示+动态扫描的4*4矩阵键盘。 采用timeTip+状态机设计+CASE结构,实现多任务并行运行系统设计方法。或时间触发式的系统设计。(见:《时间触发嵌入式系统设计模式》中国电力出版社 2004.6) 移植小型嵌入式操纵系统,如UCOS-II。在网上有些免费的基于AVR的简洁的操纵系统。 进步C语言的编程能力和软件应用水平: 认识和用好C中的数据结构体、指针应用、内存治理等较高级的应用。 认识和了解你所使用的高级语言开发平台的特点。这些平台是针对某一类处理器的,包含很多特殊的不兼容的语句和扩展的结构、语句、函数等。尽管使用利便,但因为其不透明性和时间的不确定性,因此要公道使用。如C中的getchar()、putchar()等。 AVR有多个开发平台,每个都有其特点和不足。能够综合使用这些平台,相互互补,能够进步开发效率。如通过ICC、CVAVR的程序天生器CodeWizard学习和了解AVR的硬件设置,简化计算,快速的天生程序基本模块,如“一个URAT(RS232)低层驱动+中间层软件示例”。 评分
|
|||
相关推荐 |
|||
644 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1819 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1262 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1136 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1357 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12023 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:32 , Processed in 0.663596 second(s), Total 50, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号