<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM技術(shù)的Cortex-M3微處理器測(cè)試方法研究與實(shí)現(xiàn)

          ARM技術(shù)的Cortex-M3微處理器測(cè)試方法研究與實(shí)現(xiàn)

          作者: 時(shí)間:2014-01-02 來源:網(wǎng)絡(luò) 收藏

          處理器3


          1.2 引導(dǎo)模式/FLASH 編程模式

          針對(duì)沒有配備仿真調(diào)試接口的微處理器,可以利用引導(dǎo)功能實(shí)現(xiàn)對(duì)微處理器的測(cè)試。因沒有配備仿真調(diào)試 功能,不能實(shí)現(xiàn)仿真測(cè)試。因此針對(duì)這一類的中,需要在芯片中加載測(cè)試代碼。大多數(shù)的微處理器芯片都具有上電引導(dǎo)功能,可以利用引導(dǎo)功能將測(cè)試 代碼加載到微處理器中,進(jìn)而實(shí)現(xiàn)功能和直流參數(shù)測(cè)試。而對(duì)于內(nèi)部配備FLASH的微處理器可以先將測(cè)試代碼下載到片內(nèi)FLASH中,以實(shí)現(xiàn)對(duì)微處理器的功能和參數(shù)測(cè)試。

          為了實(shí)現(xiàn)對(duì)微處理器的測(cè)試控制,通常,測(cè)試系統(tǒng)利用微處理器的片上通信接口與片上測(cè)試程序通信,互相配合完成功能和參數(shù)測(cè)試。

          2 ARM C 的測(cè)試

          2.1 ARM C 內(nèi)核簡介

          ARM Cortex-M系列微處理器主要用于低成本和低功耗領(lǐng)域,如智能測(cè)量。人機(jī)接口設(shè)備。汽車和工業(yè)控制系統(tǒng)。大型家用電器。消費(fèi)性產(chǎn)品和醫(yī)療器械等領(lǐng)域。圖4 為Cortex-M 系列微處理器的簡要框圖。

          處理器4

          ARM C 內(nèi)核搭載了若干種調(diào)試相關(guān)的特性。

          最主要的就是程序執(zhí)行控制,包括停機(jī)(halting)。單步執(zhí)行(stepping)。指令斷點(diǎn)。數(shù)據(jù)觀察點(diǎn)。寄存器和存儲(chǔ)器訪 問。性能速寫(profiling)以及各種跟蹤機(jī)制。Cortex-M3的調(diào)試系統(tǒng)基于ARM最新的CoreSight 架構(gòu),雖然內(nèi)核本身不再含有JTAG 接口,但是提供了調(diào)試訪問接口(DAP)的總線接口。通過DAP可以訪問芯片的寄存器,也可以訪問系統(tǒng)存儲(chǔ)器,并且可以在內(nèi)核運(yùn)行的時(shí)候訪問,這就對(duì)芯片的測(cè)試提供了接口支持。集成Cortex-M3內(nèi)核的微處理器一般提供一個(gè)調(diào)試端口(DP)與DAP相連,目前可用的調(diào)試端口包括SWJ‐DP,既支持傳統(tǒng)的JTAG調(diào)試,也支持新的串行線調(diào)試協(xié)議。Cortex-M3內(nèi)核還能掛載一個(gè)嵌入式跟蹤宏單元(ETM)。ETM可以不斷地發(fā)出跟蹤信息,這些信息通過跟蹤端口接口單元(TPIU)送到內(nèi)核的外部,對(duì)于外部集成再跟蹤信息分析儀的ARM 芯片,可把TIPU 輸出的已執(zhí)行指令信息捕捉到,并且送給芯片測(cè)試系統(tǒng)。


          2.2 測(cè)試向量生成

          用自動(dòng)測(cè)試設(shè)備(ATE)測(cè)試ARM芯片是一種傳統(tǒng)的測(cè)試技術(shù),其優(yōu)點(diǎn)是可以靈活編制測(cè)試向量,專注于應(yīng)用相關(guān)的功能模塊和參數(shù)。但是由于ARM芯片的功能與應(yīng)用有相當(dāng)?shù)膹?fù)雜性,因此對(duì)測(cè)試系統(tǒng)所具有的能力也要求較高。這就要求測(cè)試設(shè)備本身必須要具備測(cè)試各種不同功能模塊的能力,包含對(duì)邏輯。模 擬。內(nèi)存。高速或高頻電路的測(cè)試能力等等。同時(shí)測(cè)試系統(tǒng)最好是每個(gè)測(cè)試通道都有自己的獨(dú)立測(cè)試能力,避免采用資源共享的方式,以便能夠靈活運(yùn)用在各種不同 的測(cè)試功能上。所以常規(guī)的ARM芯片測(cè)試設(shè)備往往要求相當(dāng)高的配置才能應(yīng)對(duì)測(cè)試需求。

          測(cè)試的含義非常廣泛,就ARM芯片測(cè)試而言,可以定義多種類型的測(cè)試,不同類型的測(cè)試需要產(chǎn)生不同類型的測(cè)試向量。而測(cè)試向量生成的方法,雖然可以人工編制,但多數(shù)情況需要由測(cè)試向量生成工具(ATPG)生成,才能產(chǎn)生比較完備的測(cè)試集。本文介紹的ARM芯片測(cè)試方法,借助對(duì)應(yīng)的ARM 芯片開發(fā)工具產(chǎn)生測(cè)試代碼,再由專用的測(cè)試向量生成工具生成測(cè)試向量。這種方法的優(yōu)點(diǎn)是能針對(duì)ARM芯片應(yīng)用開發(fā)人員關(guān)心的測(cè)試集合產(chǎn)生測(cè)試向量,因而比較高效,測(cè)試成本也能控制在比較低的水平上。此外,可以借助大量的ARM芯片應(yīng)用軟件來轉(zhuǎn)碼,能大幅減少工作量。缺點(diǎn)是不容易用算法來實(shí)現(xiàn)自動(dòng)生成完備的測(cè)試代碼。

          處理器5

          圖5 為ARM芯片測(cè)試向量生成器。測(cè)試代碼一般可以從ARM芯片開發(fā)例程中獲得,測(cè)試向量通過編譯器編譯成ARM芯片可執(zhí)行代碼,然后與激勵(lì)向量和期望向量混合生成完整的AR 芯片測(cè)試向量。ARM芯片測(cè)試向量生成工具通過時(shí)間參數(shù)來確定測(cè)試代碼。激勵(lì)向量與期望向量之間的時(shí)序關(guān)系,ARM 芯片時(shí)間參數(shù)可從芯片手冊(cè)中獲得。測(cè)試向量生成后,通過BC3192 集成開發(fā)環(huán)境下載到測(cè)試系統(tǒng)圖形卡中,啟動(dòng)測(cè)試程序,激勵(lì)向量依序施加到被測(cè)ARM芯片的輸入端口,同時(shí)對(duì)輸出端進(jìn)行監(jiān)測(cè)比較獲得測(cè)試結(jié)果。綜上,測(cè)試向量的產(chǎn)生是ARM 芯片測(cè)試的核心,本文所述測(cè)試向量生成器通過輸入ARM 芯片可執(zhí)行代碼和芯片時(shí)間參數(shù)來產(chǎn)生測(cè)試邏輯,具有易用。高效的特點(diǎn),現(xiàn)已用于多個(gè)ARMCortex 內(nèi)核微處理器的測(cè)試中。

          3 結(jié)論

          本文通過分析ARM Cortex-M3 內(nèi)核的工作原理和跟蹤調(diào)試方法,利用通用的ARM集成開發(fā)環(huán)境,結(jié)合BC3192V50 測(cè)試系統(tǒng)的測(cè)試向量生成器,能夠快速高效產(chǎn)生基于ARMCortex-M3內(nèi)核的向量,進(jìn)而完成功能和直流參數(shù)測(cè)試。本案所述方法同樣適于其他微處理器的測(cè)試。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();