當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件


引 言

嵌入式應(yīng)用軟件的開(kāi)發(fā)與通用計(jì)算機(jī)軟件開(kāi)發(fā)不同,由于受資源約束,嵌入式軟件開(kāi)發(fā)一般需要在專門的開(kāi)發(fā)平臺(tái)上進(jìn)行交叉開(kāi)發(fā)(cross developing)。

同時(shí),由于嵌入式系統(tǒng)的開(kāi)發(fā)及嵌入式軟件的調(diào)試也非常復(fù)雜,因而迫切需要強(qiáng)有力的集成開(kāi)發(fā)平臺(tái)(Integrated Development En-vironment,IDE)作為支持,以保證程序執(zhí)行的實(shí)時(shí)性、可靠性,保障軟件質(zhì)量,并縮短開(kāi)發(fā)時(shí)間。因而,對(duì)MCU系統(tǒng)開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)環(huán)境的研究近年來(lái)備受重視,出現(xiàn)了比較著名的嵌入式開(kāi)發(fā)軟件,如ImageCraft公司的IC-CAVR、Freescale公司的CodeWarrior等。

當(dāng)前,在我國(guó)高等院校及嵌入式系統(tǒng)產(chǎn)品的研發(fā)企業(yè)中,絕大多數(shù)都使用國(guó)外的嵌入式系統(tǒng)集成開(kāi)發(fā)平臺(tái)。原因很簡(jiǎn)單:MCU絕大多數(shù)是進(jìn)口的,國(guó)外集成開(kāi)發(fā)平臺(tái)功能完善、穩(wěn)定。另外,由于嵌入式系統(tǒng)集成開(kāi)發(fā)平臺(tái)具有芯片相關(guān)性,這就為我國(guó)研制嵌入式系統(tǒng)集成開(kāi)發(fā)平臺(tái)增加了難度。因此,開(kāi)發(fā)具有自主知識(shí)產(chǎn)權(quán)的嵌入式系統(tǒng)集成開(kāi)發(fā)平臺(tái)是一件很有意義且具有挑戰(zhàn)性的工作。從2001年開(kāi)始,蘇州大學(xué)在Motorola M68HC08系列MCU上嘗試開(kāi)展這一工作,并開(kāi)發(fā)了MT-HC08/S08型嵌入式集成開(kāi)發(fā)平臺(tái),命名為“MT-IDE For Motorola HC08/S08”。

為了克服開(kāi)發(fā)平臺(tái)適用范圍的局限性,通過(guò)實(shí)驗(yàn)確定,開(kāi)發(fā)平臺(tái)模塊可分為“與芯片無(wú)關(guān)”和“與芯片有關(guān)”兩大部分,這樣就可徹底地分割開(kāi)來(lái),實(shí)現(xiàn)可重定目標(biāo)。因而,在先前研究的基礎(chǔ)上又成功研發(fā)了可重定目標(biāo)的集成開(kāi)發(fā)平臺(tái)(SdIDE),且已成功應(yīng)用于Freescale HC08/S08/S12、M*Core、C*Core、ColdFire及ARM等系列MCU芯片。本文主要介紹這項(xiàng)成果,并對(duì)開(kāi)發(fā)平臺(tái)的可重定性和通用性的關(guān)鍵技術(shù)給出必要的闡述。

1 設(shè)計(jì)思路

考慮到GNU Tools是開(kāi)源軟件,且完全覆蓋編譯開(kāi)發(fā)工具(如gcc等)、調(diào)試工具(如gdb)等)和軟件工程工具(如make等),可有效地開(kāi)發(fā)嵌入式系統(tǒng)。因而,選擇GNU Tools作為IDE的交叉開(kāi)發(fā)工具,會(huì)有較好的推廣前景。在設(shè)計(jì)過(guò)程中,重點(diǎn)考慮以下三個(gè)方面。

1.1 編程調(diào)試器方案的確定

在早期的MCU開(kāi)發(fā)中,程序固化于EPROM中,擦除時(shí)間較長(zhǎng),操作繁瑣,程序調(diào)試?yán)щy。為解決此問(wèn)題,仿真器技術(shù)得以較快發(fā)展,用軟件來(lái)模擬目標(biāo)系統(tǒng)中MCU的運(yùn)行情況,但是使用仿真器往往把目標(biāo)硬件與軟件獨(dú)立開(kāi)來(lái),難以實(shí)現(xiàn)100%的硬件模擬。

片內(nèi)Flash 儲(chǔ)器的使用,使得嵌入式系統(tǒng)的開(kāi)發(fā)可以不再使用仿真器,而是直接調(diào)試目標(biāo)系統(tǒng)。Flash存儲(chǔ)器雖然有寫入、擦除次數(shù)、壽命方面的限制,但一般都可以達(dá)到10萬(wàn)次以上,故開(kāi)發(fā)過(guò)程中不必顧及Flash的壽命問(wèn)題。目前單片機(jī)內(nèi)Flash都是可以在線編程的,即在線寫入、擦除,在線調(diào)試程序。由此可見(jiàn),如今嵌入式系統(tǒng)的開(kāi)發(fā)可以徹底脫離仿真器方式。所以,本文設(shè)計(jì)的編程調(diào)試器是充分利用Flash存儲(chǔ)器特點(diǎn),直接面向目標(biāo)系統(tǒng)的編程調(diào)試方式(如BKGD模式)。

1.2 開(kāi)發(fā)平臺(tái)的通用性

一般嵌入式集成開(kāi)發(fā)平臺(tái)都與具體的單片機(jī)相關(guān),很多集成開(kāi)發(fā)平臺(tái)只能針對(duì)一種MCU芯片,移植起來(lái)非常不方便。本文在開(kāi)發(fā)平臺(tái)的通用性上做了較深入研究,使其便于移植。在硬件相關(guān)部分盡可能對(duì)GNU Tools開(kāi)發(fā)工具所支持的系列MCU通用,與MCU有相關(guān)性的參數(shù)由PC機(jī)方的IDE軟件處理,使IDE與MCU相對(duì)獨(dú)立??紤]到許多筆記本電腦沒(méi)有串行口,編程調(diào)試器與PC機(jī)的接口采用USB,以提高適用性。本文給出嵌入式系統(tǒng)集成開(kāi)發(fā)平臺(tái)SdIDE,把系列MCU的下載與調(diào)試接口設(shè)計(jì)在一塊評(píng)估板上,可以適用于多種MCU型號(hào),對(duì)新型號(hào)也給出了加入方法。

1.3 開(kāi)發(fā)平臺(tái)的可移植性

嵌入式開(kāi)發(fā)平臺(tái)一般針對(duì)某一廠商生產(chǎn)的MCU,或針對(duì)某一系列MCU。但其中運(yùn)行于PC方的IDE在工程管理、編輯功能上具有公用性,編譯設(shè)置、下載與調(diào)試等功能雖然與硬件相關(guān),但可以通過(guò)調(diào)用參數(shù)數(shù)據(jù)庫(kù)的方式,用軟件的方法避免其直接與硬件打交道,提高IDE的可移植性。一種嵌入式開(kāi)發(fā)平臺(tái)可以盡可能地做到對(duì)某一系列MCU通用,但很難做到適用所有的MCU。因而,沒(méi)計(jì)一個(gè)可以方便移植到其他系列MCU平臺(tái)上的IDE是很有意義的。本文在IDE可移植性方面做了大量的研究工作,并成功地將其移植到Freescale HC08/S08/S12系列微控制器、M*Core核的MMC2107微控制器、C*Core核的CCM3118微控制器、ColdFire核的MCF5271微控制器和ARM核的AT91RM9200微控制器上。

2 SdIDE集成開(kāi)發(fā)平臺(tái)的軟件功能設(shè)計(jì)

可重定目標(biāo)集成開(kāi)發(fā)平臺(tái)SdIDE是一個(gè)高度集成的標(biāo)準(zhǔn)的Win32界面,包含編輯器、編譯匯編鏈接器、調(diào)試器、工程管理、Flash在線編程及程序下載等交叉工具,采用Visual C++MFC編寫。該集成開(kāi)發(fā)平臺(tái)包含工程管理、編輯、編譯、鏈接、程序下載與調(diào)試等功能,為了使其具有可重定目標(biāo)的特性,因而在其功能模塊上將其劃分為公共模塊和私有模塊兩大部分。下面具體介紹各個(gè)模塊的功能及其軟件設(shè)計(jì)思想。

2.1 SdIDE公共模塊

這里公共模塊是指與編譯器和目標(biāo)MCU無(wú)關(guān)的模塊,實(shí)現(xiàn)工程管理與編輯功能。設(shè)計(jì)時(shí),一定要把它們與整個(gè)系統(tǒng)切割開(kāi)來(lái),便于移植。

2.1.1 源文件編輯模塊

提供源文件編輯,支持剪切、復(fù)制、查找、替換,完全支持中文和語(yǔ)法高亮顯示(Syntax Highlight)。此部分主要的技術(shù)難點(diǎn)是語(yǔ)法高亮顯示,以及如何解決半個(gè)漢字問(wèn)題。使用MFC的RichEdit控件可以解決此問(wèn)題,但沒(méi)有語(yǔ)法高亮功能。作者在RichEdit的基礎(chǔ)上編寫了語(yǔ)法高亮類,使用效果較好。

2.1.2 工程管理

在SdIDE集成開(kāi)發(fā)平臺(tái)中,工程是一個(gè)非常重要的概念,它是用戶組織一個(gè)應(yīng)用的所有源文件、設(shè)置編譯鏈接選項(xiàng)、生成調(diào)試信息文件和最終目標(biāo)文件的一個(gè)基本結(jié)構(gòu);提供對(duì)源文件、庫(kù)文件以及其他輸入文件的管理,并含有編譯與鏈接等設(shè)置。

2.2 SdIDE私有模塊

私有模塊是指與編譯器和目標(biāo)MCU相關(guān)的模塊,實(shí)現(xiàn)編譯、鏈接、程序下載與調(diào)試等功能。為了滿足可移植性,采用數(shù)據(jù)耦合的方式設(shè)計(jì)。

2.2.1 交叉編譯模塊

包括C/C++編譯器、匯編器、鏈接器、目標(biāo)文件格式轉(zhuǎn)換工具等。編譯模塊根據(jù)選用的MCU型號(hào)調(diào)用GNU移植過(guò)來(lái)的m68hcll、m68k、arm、mcore或ccore等編譯器,編譯成功后生成標(biāo)準(zhǔn)的Motorola S-record文件或Bin文件等。匯編器將匯編語(yǔ)言程序轉(zhuǎn)換為可重定位目標(biāo)代碼(如Elf格式,執(zhí)行時(shí)鏈接文件格式),易于定位和鏈接。鏈接器根據(jù)鏈接定位信息,將可重定位的目標(biāo)模塊鏈接成一個(gè)單一的、絕對(duì)定位的目標(biāo)程序,鏈接后的目標(biāo)程序可以包含調(diào)試信息。

2.2.2 程序下載模塊

在PC方編寫下載界面,通過(guò)設(shè)定MCU的環(huán)境變量及公用參數(shù),分析S格式文件后通過(guò)TBDML寫入頭,把數(shù)據(jù)下載到空白芯片。

2.2.3 調(diào) 試

與過(guò)去的仿真方式不同,本開(kāi)發(fā)環(huán)境的調(diào)試是通過(guò)BDM頭直接對(duì)MCU中的程序進(jìn)行調(diào)試。BDM頭除實(shí)現(xiàn)Flash寫入、擦除功能外,還可以在應(yīng)用程序運(yùn)行時(shí),動(dòng)態(tài)地獲取CPU、存儲(chǔ)器等瞬態(tài)信息。BDM調(diào)試工具與單片機(jī)的通信通過(guò)雙向的BKGD引腳實(shí)現(xiàn)。調(diào)試模式有兩種:?jiǎn)尾秸{(diào)試和斷點(diǎn)調(diào)試。

3 SdIDE可重定目標(biāo)的技術(shù)要點(diǎn)

3.1 GCC編譯器的基本特點(diǎn)及其調(diào)用的方法

該開(kāi)發(fā)環(huán)境使用的是由GNU移植的GCC編譯器。GCC是由美國(guó)自由軟件基金(FSF)開(kāi)發(fā)和維護(hù)的軟件,它是一個(gè)跨平臺(tái)的C語(yǔ)言編譯器,完全兼容ANSIC,支持目前大多數(shù)CPU體系,具有開(kāi)放的開(kāi)發(fā)模式,且性能優(yōu)異。SdIDE通過(guò)建立子進(jìn)程的方式調(diào)用該編譯器,具體方法如下:把GCC所支持的所有編譯器目錄放在該開(kāi)發(fā)環(huán)境的安裝目錄下,采用線程管道的方法來(lái)捕獲由“make.exe-f”命令對(duì)makefile腳本文件(是針對(duì)GCC編譯器支持的所有MCU而編寫的較通用的腳本文件)進(jìn)行編譯的輸出信息流,并顯示在SdIDE的信息輸出窗口中。如果捕獲的編譯輸出信息出現(xiàn)任何錯(cuò)誤,包括源文件語(yǔ)法錯(cuò)誤和其他錯(cuò)誤,則編譯、鏈接操作立刻終止,并在輸出窗的Build子窗口中提示錯(cuò)誤。若是語(yǔ)法錯(cuò)誤,則用戶可以通過(guò)雙擊錯(cuò)誤提示行來(lái)定位引起錯(cuò)誤的源文件行,并且用語(yǔ)法高亮顯示。

3.2 更換編譯器的設(shè)計(jì)

為了實(shí)現(xiàn)SdIDE可重定目標(biāo)的特性,最主要的是要安排好如何編寫較通用的makefile腳本文件,這樣SdIDE開(kāi)發(fā)環(huán)境可根據(jù)所選定的MCU型號(hào)來(lái)調(diào)用一個(gè)新的編譯器工具集。因而,在makefile中所有使用編譯器名的地方都用同一個(gè)變量來(lái)代替。更換編譯器時(shí),只需修改變量定義的地方,其他所有引用這個(gè)變量的地方不用改變。makefile是編程人員和make之間的接口,本設(shè)計(jì)通過(guò)寫makefile文件來(lái)說(shuō)明各模塊的依賴關(guān)系。makefile文件要嚴(yán)格按其書寫規(guī)則來(lái)編寫,其中的內(nèi)容大致可分成宏定義區(qū)和基于依賴關(guān)系的指令區(qū)兩大部分。宏定義區(qū)主要是定義一些變量,可以在makefile的任何地方被引用;在建立makefile之后,就可以使用make命令來(lái)完成所需的編譯工作。

在SdIDE開(kāi)發(fā)環(huán)境中更換編譯器的軟件設(shè)計(jì)思路如下:

① 把GCC支持的編譯器目錄全部放在開(kāi)發(fā)環(huán)境的安裝目錄下,以便程序調(diào)用。

② 把Cygwin.dll復(fù)制SYSTEM32目錄下。為了在Windows平臺(tái)上構(gòu)建GNU工具鏈,需要安裝Cygwin。Cygwin是一個(gè)基于DLL的Unix仿真層(位于Win32之上)。它提供了Unix風(fēng)格的環(huán)境,包括Bashe外殼和GNU工具,這樣就可以建立交叉編譯器工具。

③ 在選定目標(biāo)平臺(tái)(即目標(biāo)芯片)后,程序自動(dòng)確定所需要調(diào)用的編譯器,把編譯器名賦給一個(gè)全局變量

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉