Blackfin處理器的調試功能對成功設計的作用
隨著(zhù)嵌入式處理應用越來(lái)越復雜、投放市場(chǎng)的時(shí)間越來(lái)越急迫,調試技術(shù)變得越來(lái)越重要。調試技術(shù)對于擁有一大批供其使用的調試工具開(kāi)發(fā)商來(lái)說(shuō)同樣重要,有理由表明對他們更加重要的是應該了解到從一開(kāi)始選擇什么樣的調試工具能夠跟蹤并解決應用中的問(wèn)題。為此, 本文將以ADI公司的Blackfin媒體處理器系列產(chǎn)品為例,討論基于軟件和硬件的內置調試功能。
軟件工具
軟件工具在系統開(kāi)發(fā)過(guò)程中起到兩個(gè)重要作用。第一,軟件工具允許在訂制的硬件提供之前開(kāi)始開(kāi)發(fā)工作。它能夠從功能角度對算法進(jìn)行仿真,同時(shí)能夠利用精確周期內核仿真,在開(kāi)發(fā)過(guò)程的初期對性能進(jìn)行評估。
Blackfin 處理器VisualDSP++工具套件提供幾項主要功能,允許軟件開(kāi)發(fā)商預測最終目標能夠達到的性能。因為Blackfin處理器體系結構從根本上支持高效編譯代碼,因此大多數開(kāi)發(fā)項目能夠用C或C++完成。這項功能允許在項目開(kāi)始的時(shí)候將現有的代碼基快速整合到該項目中。這樣就能利用很多設計結果而無(wú)需探究體系結構細節。
一旦初始項目建立起來(lái),程序員有幾種仿真選擇,允許在周期精度和仿真速度之間靈活地折衷。VisualDSP++開(kāi)發(fā)工具提供代碼運行時(shí)間統計分析功能,作為其仿真器和模擬器的一部分。該工具允許程序員看到一個(gè)應用程序不同部分的運行時(shí)間是如何分配的,從而為優(yōu)化工作提供方向。
即使Blackfin編譯器的性能對于信號處理應用和MCU應用(低周期數和低字節數)都是杰出的,但是總是有一部分代碼需要利用基于匯編語(yǔ)言的程序庫進(jìn)一步優(yōu)化。雖然這種情況在大型開(kāi)發(fā)項目中不常見(jiàn),但是VisualDSP++仿真器提供了流水線(xiàn)查看器以便用圖形方式識別失速(停止),從而進(jìn)一步優(yōu)化。由于Blackfin指令流水線(xiàn)是互鎖的,因此失速不需要程序員手動(dòng)跟蹤和管理。即使如此,這種查看重要部分代碼失速的能力通常允許程序員能夠進(jìn)行小調整從而實(shí)現對周期數的極大改進(jìn)。
該仿真器的另外一個(gè)便捷功能是高速緩存查看器。由于始終存在系統設計工程師必須對片內和片外存儲器大小進(jìn)行折中的問(wèn)題,所以對于預測如何根據指令流程完成高速緩存以及顯示實(shí)際上如何訪(fǎng)問(wèn)數據,高速緩存查看器能起到非常重要的作用。(查看器語(yǔ)句示例如下)
<Translation of graphics>
VisualDSP++ Debug Tools Aid Code Optimization=VisualDSP++
調試工具輔助代碼優(yōu)化
Pipeline viewer finds stalls in critical sections of code=
流水線(xiàn)查看器發(fā)現關(guān)鍵部分代碼失速
Cache viewer helps programmer understand cache efficiency (hits and misses)=
高速緩存查看器幫助程序員了解高速緩存效率(命中率和缺失率)
Code profiler shows where most time is spent during program execution=
代碼運行時(shí)間分析器顯示在程序執行期間何處耗時(shí)最多
硬件平臺
一旦整個(gè)系統經(jīng)過(guò)仿真,算法和大多數外設都可以利用低成本的EZ-KIT Lite評估平臺操作。EZ-KIT評估平臺為開(kāi)發(fā)商提供一種評估Blackfin處理器的方法,該處理器適合多種應用,例如音頻、視頻和其它處理計算量很大的算法。例如,ADSP-BF533 EZ-KIT Lite評估平臺包括視頻和音頻解碼器和編碼器,以及板上SDRAM(32Mb)和閃存(2Mb)存儲器。另外,可設置的標志引腳能夠連接到按鈕和LED。
USB調試器接口允許利用簡(jiǎn)單的USB接口連接到評估板,如果直接訪(fǎng)問(wèn)VisualDSP++ PC主機上的工具套件,為了提高性能,JTAG在線(xiàn)仿真器能夠很容易連接到評估板。
可提供的ADSP-BF533 EZ-KIT 評估平臺的EZ-Exterder 子卡允許開(kāi)發(fā)商能夠連接多個(gè)高速數據轉換器評估板(ADC、DAC和混合信號轉換器),CMOS圖像傳感器評估板和一些TFT LCD顯示器。它還能為電路配置提供試驗板區域,并且幾乎可以為Blackfin處理器的每一個(gè)引腳提供檢測。
芯片內置功能
Blackfin處理器的體系結構為設計工程師提供了內置硬件調試的附加功能。這些功能包括性能監視器、周期計數器、監測單元和跟蹤單元。
性能監視器
Blackfin處理器系列中的每一種處理器都有兩個(gè)寄存器,它們能夠通過(guò)編程對特定“中心性能”事件的發(fā)生次數進(jìn)行計數。下表總結了能夠跟蹤的獨立事件。
開(kāi)發(fā)商可以利用性能監視事件來(lái)發(fā)現優(yōu)化處理器的重點(diǎn)區域。通過(guò)性能監視器提供對芯片中實(shí)際發(fā)生事件的觀(guān)察力,而不是通過(guò)仿真預測這些事件。
我們以數據訪(fǎng)問(wèn)高速緩存和指令訪(fǎng)問(wèn)高速緩存性能為例。性能監視器根據數據和指令訪(fǎng)問(wèn)高速緩存缺失率提供實(shí)際信息。知道了高速緩存缺失率,程序員能夠利用VisualDSP++ Expert Linker開(kāi)發(fā)工具交互地移動(dòng)存儲器中的數據和指令以實(shí)現最優(yōu)性能。
性能監視器如何能幫助處理器的另外一個(gè)有效實(shí)例是當訪(fǎng)問(wèn)內部存儲體時(shí)采用內核和DMA(直接存儲器訪(fǎng)問(wèn))引擎相互作用的方式。Blackfin處理器有一個(gè)集成的DMA控制器,它能夠高效的移動(dòng)數據無(wú)需與內核相互作用。內核安排數據傳輸,并且當數據緩沖器準備好處理時(shí)通知內核。處理器內核和DAM控制器能夠在同一周期內訪(fǎng)問(wèn)不同的子存儲體。當它們試圖在同一周期內訪(fǎng)問(wèn)同一子存儲體時(shí),其中一種訪(fǎng)問(wèn)必須停止。在一個(gè)采用與多個(gè)DMA通道訪(fǎng)問(wèn)相并聯(lián)的巨大的內核存儲器訪(fǎng)問(wèn)的復雜系統流程中,知道什么時(shí)候DMA和(或)內核由于試圖訪(fǎng)問(wèn)相同的子存儲體而停止是非常重要的。性能監視器對這些事件計數以便開(kāi)發(fā)商能夠優(yōu)化存儲器中的數據分配。
周期計數器
Blackfin處理器體系結構還提供一個(gè)64 bit的周期計數器,用于對內核時(shí)鐘周期計數。該周期計數器跟蹤所有的執行周期,包括流水線(xiàn)活動(dòng),例如失速。它是用來(lái)確定一個(gè)給定算法的執行時(shí)間的極好工具。我們將周期數除以處理器內核的時(shí)鐘速度,很容易將周期數轉換成時(shí)間。Blackfin處理器的內核仿真器是周期精確的,所以從仿真器讀取的周期數設計成與工作在內部1級存儲器時(shí)從實(shí)際硬件測得的周期數相匹配。
評論