當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]引 言目前,嵌入式系統(tǒng)在工業(yè)控制、家用電器、移動通信、PDA等各種領域得到了越來越廣泛的應用。由于用戶對嵌入式產品的性能要求越來越高,程序設計也變得越來越復雜,這就

引 言

目前,嵌入式系統(tǒng)在工業(yè)控制、家用電器、移動通信、PDA等各種領域得到了越來越廣泛的應用。由于用戶對嵌入式產品的性能要求越來越高,程序設計也變得越來越復雜,這就需要一個通用的嵌入式實時操作系統(tǒng)來對其進行管理和控制。對移植了操作系統(tǒng)的嵌入式系統(tǒng)進行設計和開發(fā),可以大大減小程序員的負擔,對于不同的應用可以按照相同的步驟來完成系統(tǒng)的設計。

μC/OS-Ⅱ是一種簡單高效、源代碼公開的嵌入式實時操作系統(tǒng),具有良好的可擴展性和可移植性,被廣泛的應用到各種嵌人式處理器上。μCOS-Ⅱ操作系統(tǒng)擁有可固化,可裁剪,可剝奪性的實時內核,可同時管理64個系統(tǒng)任務。利用移植μCOS-Ⅱ操作系統(tǒng)的嵌入式微處理器來設計和開發(fā)產品,對于提高產品的性能,減少產品的開發(fā)周期和降低開發(fā)成本有著重要的意義。在此較詳細地分析和介紹了嵌入式實時操作系統(tǒng)μCOS-Ⅱ在ARM系列單片機S3C44B0x上的移植過程。

1 μCOS-Ⅱ概述

μCOS-Ⅱ是一種源代碼公開、結構小巧、具有可剝奪性實時內核的嵌入式實時操作系統(tǒng)。μCOS-Ⅱ是用ANSI的C語言編寫的,包含一小部分匯編語言代碼,使之可供不同架構的微處理器使用,至今,從8位到64位,μCOS-Ⅱ已在超過40種不同架構的微處理器上運行。μCOS-Ⅱ是專門為嵌入式應用而設計的,它包含了任務調度,任務管理,時間管理,內存管理和任務問的通信和同步等基本功能。μCOS-Ⅱ擁有一個可移植、可固化、可裁剪的實時內核,它具有執(zhí)行效率高,占用空間小,實時性能優(yōu)良和可擴展性強等特點,被廣泛地移植應用到各種嵌入式微處理器中。

2 S3C44B0處理器概述

S3C44B0x微處理器采用高性能、低功耗的32位RISC內核ARM7TDMI。 同時,S3C44B0x在ARM7TDMI核的基礎上,擴展了一系列的外圍器件,使系統(tǒng)成本及外圍器件數(shù)目降低至最低,這些功能部件分為CPU單元,系統(tǒng)時鐘管理單元,存儲單元和系統(tǒng)功能接口單元,片上集成的主要功能如下:

在ARM7TDMI基礎上增加了8 KB的CACHE;外部擴充存儲器控制器;LCD控制器,并帶有1個LCD專用DMA通道;2個通用DMA通道,2個帶外部請求引腳的DMA;2個帶有握手協(xié)議的UART,1個SIO;1個I2C總線控制器;5個PWM定時器及1個內部定時器;1個看門狗定時器;71個通用可編程I/O口,8個外部中斷源;功耗控制模式:正常、低、休眠和停止;8路10位ADC;具有日歷功能的RTC;PLL時鐘發(fā)生器等。

3 嵌入式操作系統(tǒng)μCOS-Ⅱ的移植

3.1 移植μCOS-Ⅱ的條件

所謂移植,就是使一個實時內核能在其他的微處理器或微控制器上運行。為方便移植,大部分μCOS-Ⅱ的代碼都是用C語言編寫的,但是仍需要用C語言和匯編語言編寫與處理器硬件相關的代碼,這是因為μCOS-Ⅱ在讀/寫處理器的寄存器時,只能通過匯編語言來實現(xiàn),要使μCOS- Ⅱ正常運行,處理器必須滿足以下要求:

(1)處理器的C編譯器能產生可重人型代碼;

(2)處理器支持中斷,并且能產生定時中斷(通常為10~100 Hz);

(3)用C語言就可以開/關中斷;

(4)處理器能支持一定數(shù)量的數(shù)據存儲硬件堆棧;

(5)處理器有將堆棧指針以及其他CPU寄存器的內容讀出、并存儲到堆?;騼却嬷腥サ闹噶睢?/p>

ARM系列單片機S3C44B0x滿足以上的條件。所以可以將μCOS-Ⅱ移植應用到S3C44B0x。

3.2 搭建移植環(huán)境

本次移植在如下的環(huán)境中完成:

(1)編譯工具采用ARM公司的ADS 1.2。ADS全稱為ARM Developer Suite,是ARM公司推出的新一代ARM集成開發(fā)工具?,F(xiàn)在ADS的最新版本是1.2,它取代了早期的ADS 1.0和ADS 1.1。ADS 1.2由命令行開發(fā)工具,ARM實時庫,GUI開發(fā)環(huán)境,實用程序和支持軟件組成。有了這些部件,用戶就可以非常方便地為ARM系列的處理器編寫和調試自己的應用程序了。

(2)目標板采用杭州立宇泰公司生產的S3C44B0x開發(fā)板,主機通過JTAG連接目標板以建立交叉開發(fā)調試環(huán)境。

3.3 μCOS-Ⅱ的移植

μCOS-Ⅱ的硬件/軟件體系結構如圖1所示,對μCOS-Ⅱ的移植其實就是對與處理器有關的代碼進行重新編寫或修改。

 


由圖1可知,移植μCOS-Ⅱ實際上就是分別對OSCPU.H,OS_CPU_A.ASM和OS_CPU_C.C這三個文件進行重新編寫或修改。由于在本次移植中是將μCOS-Ⅱ移植到ARM系列單片機S3CA4B0x中,接下來將結合S3CA4B0x微處理器的特性來具體介紹本次移植過程中所做的主要工作。

(1)移植OS_CPU.H文件

OS CPU.H文件中包括了用#define定義的與處理器相關的常量和類型的定義,與μCOS-Ⅱ所定義的變量類型相一致;定義開/關中斷的宏 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來保護臨界段代碼免受多任務或中斷服務例程的干擾;定義棧的增長方向,在本次移植中棧的增長方向被定義為從上往下增長,OS_STK_GROWTH的值定義為1。在移植該文件時,需要編寫和修改的部分代碼如下所示:

①設置與編譯器相關的數(shù)據類型

 


③設置堆棧的增長方向

絕大多數(shù)的微處理器和控制器的堆棧是從上往下增長的,但是也有一些處理器和控制器的堆棧增長方向是從下往上增長的μCOS-Ⅱ被設計成這兩種情況都可以處理,只要在結構常量OS_STK_GROWTH中指定堆棧的增長方式即可。在本次移植中堆棧的增長方向被設置成從上往下增長。

 


(2)移植OS_CPU_C.C文件

在該文件中需要編寫10個簡單的C函數(shù)它們分別是:

 

[!--empirenews.page--]

在這些函數(shù)中惟一必須需要編寫的函數(shù)是OSTa-skStkInit(),其他9個函數(shù)必須要聲明,但不一定要包含任何代碼。 OSTaskCreate()和OSTaskCreateExt()通過調用OSTaskStkInit()函數(shù)來初始化任務的堆棧結構,因此,堆??雌饋砭拖駝偘l(fā)生過中斷,并將所有的寄存器都保存到堆棧中的情形一樣。OSTaskStkInit()的程序代碼如下:

 


(3)移植OS_CPU_A.ASM文件

在移植OS_CPU_A.ASM文件時,要求用戶編寫4個簡單的匯編語言函數(shù),它們分別是:OS-StartHighRdy(),OSCtxSw(),OSIntCtxSw(),OS-TickISR()。

①OSStartHighRdy():運行最高優(yōu)先級的就緒任務。此函數(shù)僅在多任務啟動時執(zhí)行一次,用來啟動第1個(也就是最高優(yōu)先級)任務運行。它的程序代碼如下:

 


②OSCtxSw():任務級任務切換函數(shù)。實現(xiàn)CPU在正常運行時任務間的切換,完成對當前任務堆棧的保存和對最高優(yōu)先級任務堆棧的彈出,使最高優(yōu)先級的任務得到運行。

③OSIntCtxSw():中斷級的任務切換函數(shù)。在中斷服務程序執(zhí)行完后,如果中斷使得更高優(yōu)先級的任務處于就緒狀態(tài),則該函數(shù)實現(xiàn)對任務的切換:保存中斷發(fā)生之前的那個任務的執(zhí)行現(xiàn)場.恢復已處于就緒態(tài)的那個更高優(yōu)先級任務的執(zhí)行現(xiàn)場,使優(yōu)先級更高的那個任務得以運行,從而完成對任務的切換。

④OSTickISR():是系統(tǒng)時鐘的中斷服務函數(shù)。該函數(shù)的主要功能是檢查是否有由于延時而被掛起的任務轉為就緒態(tài)。如果有,則調用OSIntCtxSw()函數(shù)進行任務切換,使已處于就緒態(tài)的且具有最高優(yōu)先級的任務運行。

4 測試移植代碼

為S3C44B0x移植好μC/OS-Ⅱ后,緊接著的工作就是驗證移植好的μC/OS-II是否能正常工作。在這里采用不加任何應用程序代碼的方法測試移植好的μC/OS-Ⅱ,這樣做有兩個優(yōu)點:使測試移植代碼的工作變得更簡單;如果有部分,μC/OS-II代碼不能正常工作,可以明白是被移植代碼本身的問題,而不是應用代碼產生的問題。通過四個步驟來完成對移植代碼的測試:確保C編譯器、匯編編譯器及鏈接器正常工作;驗證 OSTaskStkInit()和OSStartHighRdy()函數(shù);驗證OSCtxSw()函數(shù);驗證OSIntCtxSw()和OSTick- ISR()函數(shù)。經測試,以上四個測試過程均能正常通過,表明被移植到ARM系列單片機S3C44B0x中的μC/OS-Ⅱ操作系統(tǒng)已經能正常工作了。

5 結束語

μC/OS-II是一種可配置、可裁剪的嵌入式實時操作系統(tǒng),現(xiàn)已被廣泛的移植應用到多種處理器當中。這里成功地將μC/OS-Ⅱ移植到了ARM系列單片機S3C44B0x中,經測試,移植好的μC/OS-Ⅱ代碼能正常的在S3C44B0x處理器中穩(wěn)定運行。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉