• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      英飛凌XC2000 系列單片機(jī)的反匯編步驟

      2015-11-28 03:07:18胡瑞忠
      山西電子技術(shù) 2015年6期
      關(guān)鍵詞:英飛凌代碼調(diào)試

      胡瑞忠

      (山西省電子工業(yè)科學(xué)研究所,山西 太原 030006)

      為了適應(yīng)汽車級應(yīng)用環(huán)境,英飛凌單片機(jī)經(jīng)過了嚴(yán)格的、高于一般工業(yè)應(yīng)用的測試,確保了其在汽車電子設(shè)備中的可靠耐久的操作。特別是英飛凌功能強(qiáng)大和高度集成的XC2000 家族是英飛凌新一代16/32 位微控制器,特別為汽車嵌入式系統(tǒng)應(yīng)用精心設(shè)計[2]?;谏鲜鲈蛴w凌XC2000 系列單片機(jī)在汽車行業(yè)的應(yīng)用越來越廣泛。如何更好的學(xué)習(xí)和掌握英飛凌XC2000 單片機(jī)的編程技巧和方法,成為了許多項(xiàng)目工程師的首要任務(wù)。

      從一個現(xiàn)有的英飛凌單片機(jī)應(yīng)用系統(tǒng)中讀出目標(biāo)代碼進(jìn)行反匯編,可以分析原程序的設(shè)計思想。同時,反匯編后,我們可以更快的學(xué)習(xí)和了解英飛凌單片機(jī)的編程原則和一些常規(guī)用法,也可更快捷的進(jìn)行逆向工程的設(shè)計和開發(fā)。本文將重點(diǎn)介紹一種針對XC2000 單片機(jī)的簡便快捷的反匯編方法。

      1 怎樣獲取程序的目標(biāo)代碼

      XC2000 單片機(jī)的內(nèi)存空間是馮·諾以曼結(jié)構(gòu)[1],即數(shù)據(jù)和程序在同一個線性地址空間。該單片機(jī)的地址空間為16 MB。最大的外掛存儲空間為12 MB。該系列單片機(jī)多為Flash 結(jié)構(gòu)的內(nèi)部程序代碼存儲形式,F(xiàn)lash 存儲范圍從64 K~832 K。在一般的汽車電子產(chǎn)品的應(yīng)用中,片內(nèi)的Flash 已經(jīng)能夠滿足需求,不需要再外掛片外存儲器。

      因此本文僅介紹片內(nèi)目標(biāo)代碼的獲取方式。XC2000 單片機(jī)的片上Flash 的起始地址為C00000H。

      利用英飛凌XC2000 家族微控制器的免費(fèi)程序燒錄工具M(jìn)emtool 就可以完成目標(biāo)代碼的讀取。首先要把目標(biāo)單片機(jī)從產(chǎn)品的PCB 板焊下來,再將它重新焊接到英飛凌提供的XC2000 仿真調(diào)試板上(型號為Easy Kit XC2XXX)。隨后將調(diào)試板與計算機(jī)進(jìn)行正確連接。打開Memtool,按照XC2000 單片機(jī)的具體型號,按照正常燒錄程序的步驟設(shè)定該軟件。當(dāng)計算機(jī)與單片機(jī)建立通訊后,會出現(xiàn)界面如圖1所示。

      圖1 Memtool 的界面

      如果在“index”列有藍(lán)色的小鎖頭出現(xiàn),那該單片機(jī)已加密,無法讀取目標(biāo)代碼。如果沒有小鎖頭出現(xiàn),就點(diǎn)擊“Read”按鈕。然后根據(jù)單片機(jī)Flash 的容量和起始地址,設(shè)定讀取的地址范圍,開始讀取目標(biāo)代碼。讀取完后,點(diǎn)擊“Edit”,然后保存.H86 文件,目標(biāo)代碼讀取完成。

      2 怎樣進(jìn)行反匯編

      在獲得正確的目標(biāo)代碼后,進(jìn)行反匯編有2 種方式可供選擇。

      1)如果代碼容量比較小,可以采用人工反匯編。XC2000 系列單片機(jī)的匯編指令在<<Instruction Set Manual—for the C166 Family of Infineon 16-Bit Single-Chip Microcontrollers >>一書中有詳細(xì)介紹。但在一般情況下,該方式僅用來訂正某一條有爭議的匯編指令,作為自動反匯編的一個補(bǔ)充。

      2)一般的反匯編的步驟如下:

      a)將英飛凌提供的XC2000 仿真調(diào)試板(型號為Easy Kit XC2XXX)與計算機(jī)進(jìn)行正確連接。仿真板上的單片機(jī)必須是與讀取目標(biāo)代碼時相同型號的單片機(jī),用Memtool 燒錄工具,將目標(biāo)代碼寫入。當(dāng)然如果不怕?lián)p壞,也可以直接用剛剛讀取代碼的單片機(jī)。

      b)按照英飛凌XC2000 系列單片機(jī)的C 程序開發(fā)流程。先由數(shù)字應(yīng)用虛擬工程師DAvE 建立一個這種型號單片機(jī)的工程文件* .Dav[2]。再將DAvE 目標(biāo)工程文件* .dav 裝載到Keil 中,自動生成一個包含main{}函數(shù)和頭文件的C 工程文件* .prj。該工程可以是一個最簡工程,不必設(shè)置太多模塊。

      c)如圖2 所示,設(shè)置好Keil 的Debug 調(diào)試器。并在“Flash Download Options”中正確添加該型號單片機(jī)的Flash地址范圍。將該工程正確編譯,但千萬不要“Load”編譯后的代碼。然后點(diǎn)擊“d”進(jìn)入Debug 調(diào)試界面。

      圖2 debug 調(diào)試器的設(shè)置

      d)在該debug 調(diào)試界面的“反匯編(Disassembly)”欄中,就顯示出了目標(biāo)代碼的匯編語言及Flash 單元地址和對應(yīng)的機(jī)器碼。匯編程序的起始地址為00C00000H,該存儲器為線性地址空間,結(jié)束地址可根據(jù)該單片機(jī)的Flash 容量計算得到。由于沒有給單片機(jī)“Load”本工程的文件,所以下方C 語言文件那一欄和反匯編欄的數(shù)據(jù)沒有關(guān)系。

      圖3 debug 界面

      e)將所有反匯編指令拷貝到EXCEL 文件中,仔細(xì)研讀。再將這些指令歸納為C 語言指令,重新寫回目標(biāo)工程中。這就實(shí)現(xiàn)了平常所說的逆向工程,同時還可以根據(jù)自己的控制思路,改善原有的程序,增加和改良一些系統(tǒng)功能。

      綜上所訴,本文簡單介紹了汽車電子產(chǎn)品中一款主流單片機(jī)的反匯編過程。希望對研究和使用該款單片機(jī)的初級使用者,有一些幫助和提高。

      [1]程軍.億恒(西門子)C166 系列——16 位單片機(jī)原理與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2001.

      [2]汽車嵌入式微控制器的工作原理與應(yīng)用——英飛凌XC2000 家族MCU[OL].www.infineon.com,2013-09.

      猜你喜歡
      英飛凌代碼調(diào)試
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      基于航拍無人機(jī)的設(shè)計與調(diào)試
      電子制作(2018年12期)2018-08-01 00:47:44
      FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
      無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
      電子制作(2017年19期)2017-02-02 07:08:38
      調(diào)壓柜的調(diào)試與試運(yùn)行探討
      英飛凌推出新款大功率光觸發(fā)晶閘管 首次集成保護(hù)功能
      英飛凌新一代CoolMOSTM可減少50%的開關(guān)損耗;專用EiceDRIVERTM IC可進(jìn)一步節(jié)省空間和設(shè)計成本
      外汇| 岳阳县| 沅陵县| 盐源县| 富顺县| 陕西省| 沂南县| 广安市| 辽宁省| 唐海县| 同心县| 麻江县| 南雄市| 湘潭县| 拉萨市| 汝阳县| 红河县| 开远市| 光泽县| 信阳市| 稻城县| 淅川县| 铜山县| 高雄市| 南安市| 玉树县| 磐石市| 平远县| 金沙县| 吉水县| 闸北区| 酒泉市| 齐齐哈尔市| 平武县| 营山县| 观塘区| 隆回县| 和龙市| 彭水| 托克托县| 盐城市|