深圳市維動(dòng)智芯科技有限公司,提供各系列單片機(jī)破解,程序二次開(kāi)發(fā),逆向C語(yǔ)言等技術(shù)服務(wù),歡迎來(lái)電咨詢(xún)。
AVR單片機(jī)具有上手入門(mén)快,開(kāi)拓便利簡(jiǎn)略的特點(diǎn),但要充沛領(lǐng)會(huì)和發(fā)揚(yáng)AVR的長(zhǎng)處,還需求使用工程師自身的硬軟件設(shè)計(jì)開(kāi)拓才能IC解密的不時(shí)進(jìn)修、理論進(jìn)步。
  “外行看繁華,熟行看門(mén)道”,關(guān)于有必然根底的嵌入式和單片機(jī)系統(tǒng)設(shè)計(jì)開(kāi)拓的工程師,無(wú)妨先簡(jiǎn)略測(cè)驗(yàn)一下AVR。
  開(kāi)拓情況與東西:PC+下載線+實(shí)踐的系統(tǒng)板PC上的開(kāi)拓軟件:
  AVR Studio(Free)匯編+匯編調(diào)試+高級(jí)言語(yǔ)調(diào)試+軟件仿真ICC、CVAVR、BASCOM-AVR 高級(jí)言語(yǔ)順序開(kāi)拓+順序下載。個(gè)中一個(gè)購(gòu)置正版全功用,作為首要的開(kāi)拓情況,其它運(yùn)用DEMO版,作為輔佐及參考。
  AVR ISP下載線:
  ler_541.do\" target=\"_blank\">STK200 and STK200+ and STK300 ISP programmer。經(jīng)過(guò)PC的打印機(jī)口,采用ISP技能將系統(tǒng)運(yùn)轉(zhuǎn)代碼(HEX、BIN)和數(shù)據(jù)寫(xiě)入AVR芯片的Flash和EEProm中,編程AVR的裝備熔絲位和加密位。支撐決大大都的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都內(nèi)含對(duì)該下載線的支撐順序。免費(fèi)專(zhuān)用的下載順序:SLISP、PonyProg2000等。
  盡量不運(yùn)用仿真器的建議:
  在開(kāi)拓和調(diào)試系統(tǒng)順序、IC芯片解密時(shí),有很多人完全依靠于IC芯片解密,一旦分開(kāi)了仿真器時(shí)就覺(jué)得無(wú)從下手。其實(shí),因?yàn)锳VR的Flash存貯器可便利的運(yùn)用ISP技能在線的屢次擦寫(xiě),因而建議盡量不運(yùn)用(依靠)仿真器來(lái)開(kāi)拓和調(diào)試順序。
  在實(shí)踐開(kāi)拓進(jìn)程中,順序的調(diào)試可以從下幾方面動(dòng)手:
  目前的高級(jí)言語(yǔ)編譯器(如C編譯器)可以發(fā)生效率很高的機(jī)械代碼,因而建議人人盡量運(yùn)用高級(jí)言語(yǔ)編寫(xiě)系統(tǒng)順序。
  運(yùn)用Atmel公司供應(yīng)AVR Studio軟件模仿仿真情況,以及其他的軟件模仿仿真情況(BASCOM-AVR)。
  盡能夠運(yùn)用高級(jí)言語(yǔ)編寫(xiě)系統(tǒng)順序。
  應(yīng)用目的板上的LED、LCD或異步串口。見(jiàn)附件“沒(méi)有仿真器的狀況下若何開(kāi)拓AVR”的引見(jiàn)。
  進(jìn)步硬件設(shè)計(jì)的合理性:
  盡量合理和充沛運(yùn)用AVR片內(nèi)的資本,如EEPROM、A/D、內(nèi)部的RC振蕩源。
  盡量采用串口通訊銜接的外圍器件,大容量的存儲(chǔ)器、LCD節(jié)制器、打印機(jī)、不必8279(LED數(shù)碼管+鍵盤(pán))而運(yùn)用7279等。除了必需外擴(kuò)RAM(如語(yǔ)音和圖象),普通不倡導(dǎo)運(yùn)用并行擴(kuò)展(573+譯碼電路),減小硬件和連線以及PCB板上錯(cuò)誤的呈現(xiàn)概率,還也進(jìn)步了系統(tǒng)的牢靠性。并行擴(kuò)展向串行擴(kuò)展是開(kāi)展趨向。目前有很多的新的外圍器件采用高速的串行接口,如A/D、D/A、RTC、存儲(chǔ)器等。
  盡量運(yùn)用以及在目的板上預(yù)留ISP順序下載接口,或運(yùn)用IAP技能。
  長(zhǎng)處:ISP接口與I/O的兼容性比JETAG好。
  缺陷:不克不及在線調(diào)試留意和把握AVR裝備熔絲位的運(yùn)用:
  盡量合理采用高級(jí)言語(yǔ)設(shè)計(jì)編寫(xiě)系統(tǒng)順序。有很多人以為運(yùn)用匯編寫(xiě)順序比擬精簡(jiǎn),而用高級(jí)言語(yǔ)開(kāi)拓會(huì)糜費(fèi)良多順序空間,其實(shí)這是一種曲解。對(duì)一個(gè)有經(jīng)歷的,并且十分熟習(xí)某種單片機(jī)的匯編高手而言,他是能寫(xiě)出比高級(jí)言語(yǔ)更精簡(jiǎn)的代碼。而對(duì)匯編不是很熟的開(kāi)拓者、或忽然改換了一種新的單片機(jī),您能包管必然可以寫(xiě)出比高級(jí)言語(yǔ)更精練的代碼嗎?
  目前的高級(jí)言語(yǔ)編譯器(如C編譯器)已可以發(fā)生代碼效率很高的機(jī)械代碼,因而建議人人能用高級(jí)言語(yǔ)完成的順序盡能夠運(yùn)用高級(jí)言語(yǔ)寫(xiě),在對(duì)速度和時(shí)序要求特嚴(yán)的場(chǎng)所可以采用夾雜編程的辦法來(lái)處理。
  更深化和具體的把握各類(lèi)串行通訊和談的規(guī)程嵌入式系統(tǒng)當(dāng)前以很多的運(yùn)用串行接口外圍芯片和各類(lèi)通訊接口,如RS232、兩線(I2C)、三線(SPI)、單總線、USB、CAN、TCP/IP等。開(kāi)拓人員和順序員應(yīng)調(diào)查低層和談,熟習(xí)硬件如何和若何完成低層和談,若何界說(shuō)牢靠的上層使用和談,以及低層和談驅(qū)動(dòng)同上層使用和談之間的接口設(shè)計(jì)(中心層軟件的完成)等。
  硬件工程師的軟件編寫(xiě)才能要進(jìn)步,采用規(guī)范順序編寫(xiě)方法、完美的軟件全體框架的設(shè)計(jì)、優(yōu)越的數(shù)據(jù)構(gòu)造和順序構(gòu)造系統(tǒng)。(核算機(jī)軟件專(zhuān)業(yè)的順序設(shè)計(jì)員對(duì)硬件不熟習(xí)、大局部是在操作系統(tǒng)支撐下編寫(xiě)軟件,對(duì)低層接口和和談的驅(qū)動(dòng)層以及接口也不調(diào)查,往往也編寫(xiě)不出好的單片機(jī)系統(tǒng)順序。)通訊接口的編寫(xiě)應(yīng)盡量.采用中綴+緩沖區(qū),.分層+構(gòu)造化設(shè)計(jì),.盡量不運(yùn)用輪循方法(降低AVR的效率)。拜見(jiàn)URAT(RS232)驅(qū)動(dòng)+中心層軟件示例。
  采用好的系統(tǒng)設(shè)計(jì)形式:
  盡量不運(yùn)用傳統(tǒng)的前后臺(tái)(中綴)系統(tǒng)設(shè)計(jì)形式,義務(wù)之間互相影響和攪擾,無(wú)法準(zhǔn)時(shí)操作。如設(shè)計(jì)一個(gè)采用動(dòng)態(tài)掃描方法驅(qū)動(dòng)的8位LED數(shù)碼管顯示+動(dòng)態(tài)掃描的4*4矩陣鍵盤(pán)。
  采用TimeTip+形態(tài)機(jī)設(shè)計(jì)+CASE構(gòu)造,完成多義務(wù)并交運(yùn)行系統(tǒng)設(shè)計(jì)辦法?;蚬し蛴|發(fā)式的系統(tǒng)設(shè)計(jì)。(見(jiàn):《工夫觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)形式》中國(guó)電力出書(shū)社 2004.6)移植小型嵌入式操作系統(tǒng),如UCOS-II。在網(wǎng)上有些免費(fèi)的基于AVR的簡(jiǎn)練的操作系統(tǒng)。
  進(jìn)步C言語(yǔ)的編程才能和軟件使用程度:
  熟習(xí)和用好C中的數(shù)據(jù)構(gòu)造體、指針使用、內(nèi)存治理等較高級(jí)的使用。
  熟習(xí)和調(diào)查你所運(yùn)用的高級(jí)言語(yǔ)開(kāi)拓平臺(tái)的特點(diǎn)。這些平臺(tái)是針對(duì)某一類(lèi)處置器的,包括很多非凡的不兼容的語(yǔ)句和擴(kuò)展的構(gòu)造、語(yǔ)句、函數(shù)等。雖然運(yùn)用便利,但因?yàn)槠洳煌餍院凸し虻牟淮_定性,因而要合理運(yùn)用。如C中的getchar()、putchar()等。
  AVR有多個(gè)開(kāi)拓平臺(tái),每個(gè)都有其特點(diǎn)和缺乏??梢跃C合運(yùn)用這些平臺(tái),互相互補(bǔ),可以進(jìn)步開(kāi)拓效率。如經(jīng)過(guò)ICC、CVAVR的順序生成器CodeWizard進(jìn)修和調(diào)查AVR的硬件設(shè)置,簡(jiǎn)化核算,疾速的生成順序根本模塊,如“一個(gè)URAT(RS232)低層驅(qū)動(dòng)+中心層軟件示例”