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