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