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