音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

μC/OS-Ⅱ在ARM單片機(jī)S3C44B0x上移植實(shí)現(xiàn)過程

出處:現(xiàn)代電子技術(shù) 發(fā)布于:2011-09-05 09:54:01

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

  嵌入式系統(tǒng)是根據(jù)IEEE(電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。

  μC/OS-Ⅱ是一種簡(jiǎn)單高效、源代碼公開的嵌入式實(shí)時(shí)操作系統(tǒng),具有良好的可擴(kuò)展性和可移植性,被廣泛的應(yīng)用到各種嵌人式處理器上。μCOS-Ⅱ操作系統(tǒng)擁有可固化,可裁剪,可剝奪性的實(shí)時(shí)內(nèi)核,可同時(shí)管理64個(gè)系統(tǒng)任務(wù)。

  1 μCOS-Ⅱ概述

  μCOS-Ⅱ從8位到64位,μCOS-Ⅱ已在超過40種不同架構(gòu)的微處理器上運(yùn)行。μCOS-Ⅱ是專門為嵌入式應(yīng)用而設(shè)計(jì)的,它包含了任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理,內(nèi)存管理和任務(wù)問的通信和同步等基本功能。μCOS-Ⅱ擁有一個(gè)可移植、可固化、可裁剪的實(shí)時(shí)內(nèi)核,它具有執(zhí)行效率高,占用空間小,實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn),被廣泛地移植應(yīng)用到各種嵌入式微處理器中。

  2 S3C44B0處理器概述

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

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

  對(duì)于我們采用的S3C44B0微處理器來說,在系統(tǒng)加電之后,指令指針是指向0x00000000的,也就是說系統(tǒng)是從0x00000000開始之行。正是因?yàn)檫@個(gè)原因,通常這個(gè)地址空間我們會(huì)安排給FLASH存儲(chǔ)器。這樣我們可以將BootLoader啟動(dòng)代碼以及我們之后將會(huì)要啟動(dòng)的uClinux操作系統(tǒng)映像燒寫到Flash里。對(duì)于RAM地址空間,S3C44B0芯片將其設(shè)定為從0x0C000000到0x0FFFFFFF一共64MB的范圍里。我們可以通過設(shè)定存儲(chǔ)器控制寄存器來重新設(shè)定RAM的大小。

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

  3.1 移植μCOS-Ⅱ的條件

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

 ?。?)處理器的C編譯器能產(chǎn)生可重人型代碼;

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

 ?。?)用C語(yǔ)言就可以開/關(guān)中斷;

 ?。?)處理器能支持一定數(shù)量的數(shù)據(jù)存儲(chǔ)硬件堆棧;

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

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

  編譯工具采用ARM公司的ADS 1.2。ADS全稱為ARM Developer Suite,是ARM公司推出的新一代ARM集成開發(fā)工具。ADS 1.2由命令行開發(fā)工具,ARM實(shí)時(shí)庫(kù),GUI開發(fā)環(huán)境,實(shí)用程序和支持軟件組成。有了這些部件,用戶就可以非常方便地為ARM系列的處理器編寫和調(diào)試自己的應(yīng)用程序了。

  3.3 μCOS-Ⅱ的移植

  μCOS-Ⅱ的硬件/軟件體系結(jié)構(gòu)如圖1所示,對(duì)μCOS-Ⅱ的移植其實(shí)就是對(duì)與處理器有關(guān)的代碼進(jìn)行重新編寫或修改。

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

  (1)移植OS_CPU.H文件

  OS CPU.H文件中包括了用#define定義的與處理器相關(guān)的常量和類型的定義,與μCOS-Ⅱ所定義的變量類型相一致;定義開/關(guān)中斷的宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來保護(hù)臨界段代碼免受多任務(wù)或中斷服務(wù)例程的干擾;。在移植該文件時(shí),需要編寫和修改的部分代碼如下所示:

 ?、僭O(shè)置與編譯器相關(guān)的數(shù)據(jù)類型


  ③設(shè)置堆棧的增長(zhǎng)方向

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


 ?。?)移植OS_CPU_C.C文件

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

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

 ?。?)移植OS_CPU_A.ASM文件

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

 ?、貽SStartHighRdy():運(yùn)行優(yōu)先級(jí)的就緒任務(wù)。此函數(shù)僅在多任務(wù)啟動(dòng)時(shí)執(zhí)行,用來啟動(dòng)第1個(gè)(也就是優(yōu)先級(jí))任務(wù)運(yùn)行。它的程序代碼如下:

 ?、贠SCtxSw():任務(wù)級(jí)任務(wù)切換函數(shù)。實(shí)現(xiàn)CPU在正常運(yùn)行時(shí)任務(wù)間的切換,完成對(duì)當(dāng)前任務(wù)堆棧的保存和對(duì)優(yōu)先級(jí)任務(wù)堆棧的彈出,使優(yōu)先級(jí)的任務(wù)得到運(yùn)行。

 ?、跲SIntCtxSw():中斷級(jí)的任務(wù)切換函數(shù)。在中斷服務(wù)程序執(zhí)行完后,如果中斷使得更高優(yōu)先級(jí)的任務(wù)處于就緒狀態(tài),則該函數(shù)實(shí)現(xiàn)對(duì)任務(wù)的切換:保存中斷發(fā)生之前的那個(gè)任務(wù)的執(zhí)行現(xiàn)場(chǎng)?;謴?fù)已處于就緒態(tài)的那個(gè)更高優(yōu)先級(jí)任務(wù)的執(zhí)行現(xiàn)場(chǎng),使優(yōu)先級(jí)更高的那個(gè)任務(wù)得以運(yùn)行,從而完成對(duì)任務(wù)的切換。

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

  4 測(cè)試移植代碼

  為S3C44B0x移植好μC/OS-Ⅱ后,緊接著的工作就是驗(yàn)證移植好的μC/OS-II是否能正常工作。通過四個(gè)步驟來完成對(duì)移植代碼的測(cè)試:確保C編譯器、匯編編譯器及鏈接器正常工作;驗(yàn)證OSTaskStkInit()和OSStartHighRdy()函數(shù);驗(yàn)證OSCtxSw()函數(shù);驗(yàn)證OSIntCtxSw()和OSTick-ISR()函數(shù)。

  驗(yàn)證OSCtxSw函數(shù),在已經(jīng)知道OSTaskStkInit函數(shù)正確后,就可以在程序中加入一個(gè)任務(wù),并不斷的切換到空閑任務(wù)。這里是使用的軟件中斷swi來調(diào)用OSCtxSw函數(shù)的。

  5 結(jié)束語(yǔ)

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


  
關(guān)鍵詞:ARM單片機(jī)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!