SPARC V8 ( Sc a l a b l e Pr o c e s s o rArchitecture V8)是Sun Microsystems 提出的一種32位RISC微處理器結(jié)構(gòu),此結(jié)構(gòu)的處理器具有指令系統(tǒng)簡單、采用硬布線控制邏輯、處理能力強、速度快、可靠性高等特點,基于這些特點,SPARC結(jié)構(gòu)處理器現(xiàn)在被廣泛地應(yīng)用于UNIX工作站、服務(wù)器等穩(wěn)定性要求很高的環(huán)境中。隨著SPARC V8結(jié)構(gòu)處理器越來越廣泛的應(yīng)用,如何搭建此結(jié)構(gòu)微處理器的軟件和硬件開發(fā)環(huán)境是一個值得研究的課題,本文中詳細地闡述了開發(fā)環(huán)境的硬件平臺設(shè)計方案和軟件集成開發(fā)環(huán)境設(shè)計思路。
SPARC V8結(jié)構(gòu)嵌入式微處理器的硬件開發(fā)環(huán)境設(shè)計硬件開發(fā)環(huán)境以微處理器為核心,根據(jù)其內(nèi)部結(jié)構(gòu)特點可將外圍電路分為BOOT ROM、PROGRAM ROM、SRAM、RS232 接口、復(fù)位電路、鍵盤接口和320*240液晶接口等部分,下面對硬件開發(fā)板的幾個重要電路模塊進行分析:RAM存儲器部分:SPARC V8結(jié)構(gòu)微處理器的數(shù)據(jù)總線為32位,地址總線為28根,有4個RAM 通道,每個通道的最大尋址空間為256Mbyte,使用時需要根據(jù)外圍SRAM的容量在處理器寄存器相應(yīng)位中設(shè)置每個通道容量大小,處理器根據(jù)不同的地址產(chǎn)生相應(yīng)通道片選信號。本硬件開發(fā)板根據(jù)實際的應(yīng)用需求使用了RAM通道1和RAM通道2,每個RAM通道使用2片16位的SRAM用于存儲計算數(shù)據(jù),使用1片用于存儲8位校驗碼數(shù)據(jù)PD0-PD7。
ROM存儲器部分: SPARC V8結(jié)構(gòu)處理器具有2個ROM通道,每個通道的最大尋址空間同樣為256Mbyte,但每個通道的容量不需在Memory Register中設(shè)置,它的2個ROM通道的地址范圍被固定?;谶@種特點,本開發(fā)板分別使用2個16位FLASH將ROM通道1作為存放引導(dǎo)系統(tǒng)啟動程序的BOOT ROM,將通道2作為存儲操作系統(tǒng)和應(yīng)用程序的PROGRAM ROM。顯示電路部分:液晶顯示器作為主要的I/O設(shè)備,采用320*240分辨率的LCD,使用SED1335控制器進行顯示控制,并由MC34063電路產(chǎn)生負電源用于LCD對比度的調(diào)節(jié)。數(shù)據(jù)輸入部分:將標(biāo)準(zhǔn)的PS2鍵盤作為硬件開發(fā)板的輸入設(shè)備,利用AT89C52單片機設(shè)計的鍵盤控制芯片對PS2鍵盤輸出數(shù)據(jù)進行采集和處理,最終將處理后的鍵盤編碼數(shù)據(jù)傳送給微處理器。
根據(jù)上述的分析,硬件開發(fā)板的原理框圖如圖1所示。硬件開發(fā)板的如下圖所示
SPARC V8結(jié)構(gòu)嵌入式微處理器的軟件集成開發(fā)環(huán)境總體設(shè)計
一個好的設(shè)計應(yīng)該是在參考已有優(yōu)秀系統(tǒng)的前提下,根據(jù)自身的特點和需求來定制的,這種設(shè)計思路在設(shè)計中已經(jīng)被廣泛使用。在設(shè)計軟件集成開發(fā)環(huán)境時也是采用了這種方式,在參考了將操作系統(tǒng)、開發(fā)工具、仿真工具和分析工具于一身的相應(yīng)開發(fā)環(huán)境之后,結(jié)合實際的設(shè)計要求和設(shè)計能力,將微處理器的軟件集成開發(fā)環(huán)境分成如下幾個部分:
● 工程管理環(huán)境
● 集成軟件開發(fā)環(huán)境
● 嵌入式系統(tǒng)調(diào)試環(huán)境
● 嵌入式系統(tǒng)編譯環(huán)境
● 軟件資源可配置環(huán)境
將軟件集成開發(fā)環(huán)境分成三個層次,具體的功能如圖3所示:
軟件集成開發(fā)環(huán)境的詳細設(shè)計
軟件集成開發(fā)環(huán)境管理層設(shè)計
工程管理:一般的集成開發(fā)環(huán)境如VC、VB等,這些開發(fā)環(huán)境是針對桌面系統(tǒng)完成的,它的工程管理能力只限于文件級別管理,但嵌入式系統(tǒng)的功能管理則要求更高些,因為嵌入式系統(tǒng)開發(fā)還涉及到目標(biāo)系統(tǒng)的配置與管理,不同的工程是針對不同目標(biāo)系統(tǒng)開發(fā)出的,不同目標(biāo)系統(tǒng)開發(fā)的嵌入式軟件的很多屬性,例如編譯器屬性、輸出路徑、編譯環(huán)境路徑等都是不同的,在工程管理中都要提供給用戶可以修改這些工程屬性的能力,所以基于這些考慮,開發(fā)環(huán)境的工程管理采用了工程文件的形式。集成環(huán)境配置:軟件集成開發(fā)環(huán)境有很多的屬性,例如編輯框?qū)傩浴⑷蝿?wù)欄屬性、顯示的屬性、使用語言等等都要進行設(shè)置,這就要求在軟件集成開發(fā)環(huán)境中有這樣的選項,環(huán)境中應(yīng)包括的編輯框、工程管理框、調(diào)試框、任務(wù)欄等一些可視控件的屬性都可以在這里進行設(shè)置,如圖4所示。軟件開發(fā)層設(shè)計軟件集成開發(fā)環(huán)境設(shè)計是為了給系統(tǒng)開發(fā)和系統(tǒng)驗證工程師提供一個有效的開發(fā)和驗證工具平臺,為使設(shè)計者能夠快速、有效地開發(fā)出嵌入式程序提供有效的支持,以提高嵌入式應(yīng)用系統(tǒng)開發(fā)效率。由于單板測試程序沒有操作系統(tǒng)的支持,它們運行的時候要有其它的支持庫支持才能運行,將支持庫封裝到集成開發(fā)環(huán)境中,包括一些系統(tǒng)運行的頭文件,系統(tǒng)初始化文件和軟件運行的時候陷阱處理程序等,在開發(fā)者開發(fā)的時候就不用考慮這些問題,而將注意力集中到軟件設(shè)計中去。
調(diào)試環(huán)境設(shè)計
調(diào)試方式一般從距離主機的位置可以分為:基于主機的調(diào)試、遠程調(diào)試兩種。前者調(diào)試是基于桌面系統(tǒng)的指令集模擬器,如ARM的SKYEYES、SPARC 的TSIM和ATI的MNT等。調(diào)試方法都是將編譯好的程序下載到模擬器上,在模擬器上運行程序,并在模擬器上對程序進行調(diào)試,這樣調(diào)試的好處就是加快項目進度和減少資金,缺點是在模擬器上可以運行的程序在實際的硬件中并不一定就能運行成功。后者是利用通訊某種通訊方式如網(wǎng)口、串口、JTAG口等連接上位機和目標(biāo)機,利用在上位機的代理軟件和目標(biāo)機上的monitor監(jiān)控程序通過某種通訊協(xié)議來完成彼此之間的通訊,從而達到調(diào)試目的,這種調(diào)試方式是基于硬件本身的,得到的調(diào)試信息準(zhǔn)確有效,所以本文中的軟件開發(fā)環(huán)境就采用了這種遠程調(diào)試模式。在設(shè)計中,軟件開發(fā)環(huán)境的調(diào)試任務(wù)通過第三方軟件來完成,此軟件包括:① Gdbtk--gdb調(diào)試軟件前端圖形界面(圖5);② Remotedebugging monitor ---gdb調(diào)試監(jiān)控軟件工具。將這個調(diào)試環(huán)境整合到軟件集成開發(fā)環(huán)境中,這樣用戶可以隨時調(diào)用調(diào)試工具,在其界面上進行各種調(diào)試工作。在硬件開發(fā)板的BOOT ROM中存放著bootloader程序,此程序通過開發(fā)板上的串口與上位機的串口調(diào)試軟件建立交互通道,完成程序下載、程序運行、顯示存儲器空間內(nèi)容、執(zhí)行monitor監(jiān)控程序等操作。當(dāng)我們運行了目標(biāo)機上monitor監(jiān)控程序后,這個程序在目標(biāo)機上建立調(diào)試環(huán)境,當(dāng)用戶運行調(diào)試環(huán)境調(diào)試自己的程序時,monitor監(jiān)控程序作為后臺程序運行在目標(biāo)機上Monitor監(jiān)控程序按照指定串行協(xié)議接收上位機發(fā)來的命令,做出相應(yīng)處理之后,將收集的調(diào)試信息發(fā)回到上位機,最后顯示在調(diào)試界面上。整個過程可由圖7來表示。
編譯環(huán)境設(shè)計
在設(shè)計軟件集成開發(fā)環(huán)境的編譯環(huán)境時,采用Gnu提供的整套對SPARC處理器的編譯環(huán)境:
① binutils 二進制文件處理工具binutils包主要包括了一些輔助開發(fā)工具,如objdump反匯編器,readelf顯示elf文件、段信息,strip將不必要的代碼去掉以減少可執(zhí)行文件的大小,這些工具主要用于開發(fā)的初期,特別是在調(diào)試移植操作系統(tǒng)的時候。
?、?GCC編譯器
gcc是gnu collection compiler的簡稱,它可以編譯匯編、c、pascal、java等多種語言,而且還支持很多硬件開發(fā)平臺,通過對gcc源碼的編譯,其可以成為交叉編譯工具。
?、?Glibc鏈接、運行庫
在集成編譯環(huán)境時,使用內(nèi)含編譯環(huán)境的方式,即將SPARC的編譯環(huán)境集成在集成開發(fā)環(huán)境中,成為開發(fā)環(huán)境的一部分的方式來完成的,可以在集成環(huán)境工程選項中進行詳細配置,在集成環(huán)境中添加編譯器文件夾,用連接的方式將編譯環(huán)境鏈接到集成開發(fā)環(huán)境中來。
結(jié)論
本文詳細地闡述了基于SPARC V8結(jié)構(gòu)的高性能32位RISC嵌入式微處理器的軟、硬件集成開發(fā)環(huán)境的設(shè)計思路,經(jīng)過實際工程應(yīng)用證明系統(tǒng)運行良好,本文對指導(dǎo)類似工程項目的研究有著積極意義。