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