專用IC解密技術(shù):AVR應(yīng)用經(jīng)驗

來源:IC解密時,有許多人完全依賴于IC芯片解密,一旦離開了仿真器時就感覺無從下手。其實,由于AVR的Flash存貯器可方便的使用ISP技術(shù)在線的多次擦寫,因此建議盡量不使用(依賴)仿真器來開發(fā)和調(diào)試程序。
  在實際開發(fā)過程中,程序的調(diào)試可以從下幾方面入手:
  現(xiàn)在的高級語言編譯器(如C編譯器)可以產(chǎn)生效率很高的機(jī)器代碼,因此建議大家盡量使用高級語言編寫系統(tǒng)程序。
  使用Atmel公司提供AVR Studio軟件模擬仿真環(huán)境,以及其他的軟件模擬仿真環(huán)境(BASCOM-AVR)。盡可能使用高級語言編寫系統(tǒng)程序。
  利用目標(biāo)板上的LED、LCD或異步串口。見附件“沒有仿真器的情況下如何開發(fā)AVR”的介紹。
  提高硬件設(shè)計的合理性:
  盡量合理和充分使用AVR片內(nèi)的資源,如EEPROM、A/D、內(nèi)部的RC振蕩源。
  盡量采用串口通信連接的外圍器件,大容量的存儲器、LCD控制器、打印機(jī)、不用8279(LED數(shù)碼管+鍵盤)而使用7279等。除了必須外擴(kuò)RAM(如語音和圖象),一般不提倡使用并行擴(kuò)展(573+譯碼電路),減小硬件和連線以及PCB板上錯誤的出現(xiàn)概率,同時也提高了系統(tǒng)的可靠性。并行擴(kuò)展向串行擴(kuò)展是發(fā)展趨勢?,F(xiàn)在有大量的新的外圍器件采用高速的串行接口,如A/D、D/A、RTC、存儲器等。
  盡量使用以及在目標(biāo)板上預(yù)留ISP程序下載接口,或使用IAP技術(shù)。
  優(yōu)點(diǎn):ISP接口與I/O的兼容性比JETAG好。
  缺點(diǎn):不能在線調(diào)試注意和掌握AVR配置熔絲位的使用:
  盡量合理采用高級語言設(shè)計編寫系統(tǒng)程序。有許多人認(rèn)為使用匯編寫程序比較精簡,而用高級語言開發(fā)會浪費(fèi)很多程序空間,其實這是一種誤解。對一個有經(jīng)驗的,而且非常熟悉某種單片機(jī)的匯編高手而言,他是能寫出比高級語言更精簡的代碼。而對匯編不是很熟的開發(fā)者、或突然更換了一種新的單片機(jī),您能保證一定可以寫出比高級語言更簡練的代碼嗎?
  現(xiàn)在的高級語言編譯器(如C編譯器)已可以產(chǎn)生代碼效率很高的機(jī)器代碼,因此建議大家能用高級語言實現(xiàn)的程序盡可能使用高級語言寫,在對速度和時序要求特嚴(yán)的場合可以采用混合編程的方法來解決。更深入和全面的掌握各種串行通信協(xié)議的規(guī)程:
  嵌入式系統(tǒng)目前以大量的使用串行接口外圍芯片和各種通信接口,如RS232、兩線(I2C)、三線(SPI)、單總線、USB、CAN、 TCP/IP等。開發(fā)人員和程序員應(yīng)了解低層協(xié)議,熟悉硬件怎樣和如何實現(xiàn)低層協(xié)議,如何定義可靠的上層應(yīng)用協(xié)議,以及低層協(xié)議驅(qū)動同上層應(yīng)用協(xié)議之間的接口設(shè)計(中間層軟件的實現(xiàn))等。
  硬件工程師的軟件編寫能力要提高,采用標(biāo)準(zhǔn)程序編寫方式、完善的軟件整體框架的設(shè)計、良好的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)系統(tǒng)。(計算機(jī)軟件專業(yè)的程序設(shè)計員對硬件不熟悉、大部分是在操作系統(tǒng)支持下編寫軟件,對低層接口和協(xié)議的驅(qū)動層以及接口也不了解,往往也編寫不出好的單片機(jī)系統(tǒng)程序。)通信接口的編寫應(yīng)盡量 .采用中斷+緩沖區(qū), .分層+結(jié)構(gòu)化設(shè)計, .盡量不使用輪循方式(降低AVR的效率)。參見URAT(RS232)驅(qū)動+中間層軟件示例。采用好的系統(tǒng)設(shè)計模式:  盡量不使用傳統(tǒng)的前后臺(中斷)系統(tǒng)設(shè)計模式,任務(wù)之間相互影響和干擾,無法定時操作。如設(shè)計一個采用動態(tài)掃描方式驅(qū)動的8位LED數(shù)碼管顯示+動態(tài)掃描的4*4矩陣鍵盤。移植小型嵌入式操作系統(tǒng),如UCOS-II。在網(wǎng)上有些免費(fèi)的基于AVR的簡潔的操作系統(tǒng)。提高C語言的編程能力和軟件應(yīng)用水平:
  AVR有多個開發(fā)平臺,每個都有其特點(diǎn)和不足。能夠綜合使用這些平臺,相互互補(bǔ),能夠提高開發(fā)效率。如通過ICC、CVAVR的程序生成器 CodeWizard學(xué)習(xí)和了解AVR的硬件設(shè)置,簡化計算,快速的生成程序基本模塊,如“一個URAT(RS232)低層驅(qū)動+中間層軟件示例”。
  關(guān)鍵字:芯片解密 IC解密