導(dǎo)航系統(tǒng)SoC芯片設(shè)計(jì)方案分析
1.3 Linux系統(tǒng)的移植和調(diào)試
近年來(lái)Linux憑借其開(kāi)源、性能優(yōu)異、軟件資源豐富的優(yōu)勢(shì),在嵌入式平臺(tái)上得到了廣泛的應(yīng)用。在LEON上運(yùn)行的操作系統(tǒng)日前已經(jīng)有RTEMS、 eCOS、VxWorks和嵌入式Linux。選擇嵌入式Linux的主要原用,是由于Linux的開(kāi)發(fā)平臺(tái)搭建得比較完善,在工具鏈、內(nèi)核移植、驅(qū)動(dòng)程序以及應(yīng)用程序的各層上都有很好的支持;使用Linux開(kāi)發(fā)能夠大大加快開(kāi)發(fā)的進(jìn)度,并滿(mǎn)足多數(shù)應(yīng)用的指標(biāo)。目前,對(duì)LEON提供良好支持的Linux發(fā)行版有Snapgear。由于LEON軟核優(yōu)異的可配置性和可移植性.在LEON上進(jìn)行Linux的移植工作與普通定制的嵌入式微處理器相比,有很多特殊點(diǎn)和難點(diǎn),主要表現(xiàn)在兩個(gè)方面。
(1)配置和編譯內(nèi)核
編譯內(nèi)核的目的在于,生成在目標(biāo)CPU上運(yùn)行的內(nèi)核。由于LEON自身硬件的可配置性,Linux的源代碼中也需要加入與硬件核相關(guān)的選項(xiàng)進(jìn)行配置。若 LEON軟核配置IP,例如硬件加速單元、加密單元或外設(shè)接口,則Linux內(nèi)核中需加入驅(qū)動(dòng)程序。因此,內(nèi)核的配置分為兩類(lèi),一類(lèi)是配置LEON軟核自身的設(shè)置,另一類(lèi)是配置目標(biāo)板上的其他外圍設(shè)備,例如內(nèi)存系統(tǒng)、外設(shè)接口等。與一般的定制嵌入式CPU(如ARM體系的CPU)相比,前一類(lèi)配置是 LEON獨(dú)有的。這種配置的靈話(huà)性為軟硬件平臺(tái)的定制提供了極大的方便。例如,Snapgear Embed-ded Linux根據(jù)具體需求配置硬件乘除法指令和浮點(diǎn)運(yùn)算單元FPU:在不需要進(jìn)行浮點(diǎn)運(yùn)算的應(yīng)用中,配置LEON硬件就不需配置浮點(diǎn)單元,相應(yīng)Linux的配置中取消FPU,進(jìn)而節(jié)省硬件資源和軟件的開(kāi)銷(xiāo)。
項(xiàng)目中實(shí)際采取的LEON軟核配置方案為:LEON核選擇LEON2MMU或LEON3MMU,時(shí)鐘頻率為50MHz,配置硬件整數(shù)乘除法指令和FPU對(duì)應(yīng)的浮點(diǎn)操作指令。外圍設(shè)備配置的串口的起始波特率為38 400 bps,另外,還配置了只讀存儲(chǔ)區(qū)ROM和隨機(jī)存取器RAM。
(2)調(diào)試內(nèi)核
LEON軟核平臺(tái)調(diào)試工具有:TSIM、GRSIM和GRMON。
TSIM:SPARC架構(gòu)處理器通用軟件仿真器,用于軟件仿真ERC32-和LEON微處理器。
GRSIM:LEON平臺(tái)軟件仿真器,支持多處理器平臺(tái)(MP)。
GRMON:LEON平臺(tái)硬件仿真調(diào)試器,支持基于GRLIB軟核IP的SoC設(shè)汁的硬件調(diào)試。
TSIM作為軟件模擬的VHDL模型,調(diào)試過(guò)程中常見(jiàn)的啟動(dòng)選項(xiàng)設(shè)置如下:
-freq:設(shè)置TSIM模擬LEON處理器硬件的工作頻率,LEON3默認(rèn)為50 MHz。
-fpm:配置模擬FPU模塊。
-nfp:針對(duì)無(wú)FPU的模擬硬件平臺(tái)關(guān)閉FPU。
一nov8:針對(duì)無(wú)硬件乘除法硬件平臺(tái)關(guān)閉硬件乘除法指令。
-pr:指定使用性能觀(guān)察器。
在TSIM-LEON平臺(tái)上進(jìn)行程序的測(cè)試和調(diào)試過(guò)程中,Profiling(性能觀(guān)察器)能夠顯示程序各個(gè)分支函數(shù)以及宏在實(shí)際運(yùn)行中占用的資源,從而為程序的進(jìn)一步優(yōu)化提供必要參考,例如某測(cè)試程序在程序運(yùn)行完畢后使用pro命令得出的結(jié)果:
宏_muldf3和_adddf,3在程序運(yùn)行中占用了大量時(shí)間,需進(jìn)一步優(yōu)化。經(jīng)測(cè)試證明,通過(guò)在LEON中集成FPU消除了宏_muldf3和_adddf3,從而大幅提高浮點(diǎn)運(yùn)算性能。
2 LEON數(shù)學(xué)運(yùn)算性能及算法測(cè)試
在LEON軟核系統(tǒng)上移植成功Linux后,通過(guò)特定測(cè)試程序驗(yàn)證LEON在數(shù)學(xué)運(yùn)算上的性能,以確定是否滿(mǎn)足項(xiàng)目開(kāi)發(fā)的需求。測(cè)試中對(duì)比ARM9 SC32410,分析LEON以及其集成FPU配置的性能,并根據(jù)測(cè)試結(jié)果對(duì)軟硬件配置進(jìn)一步優(yōu)化。由于LEON硬件配置十分靈活,因此在測(cè)試中采用了多種平臺(tái),編譯程序的選項(xiàng)也有對(duì)應(yīng)的設(shè)置。中斷響應(yīng)、功耗等雖然也是處理器性能的重要方面,但本文尚未涉及。
評(píng)論