<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > μC/OS-Ⅱ在A(yíng)RM單片機S3C44B0x上的移植

μC/OS-Ⅱ在A(yíng)RM單片機S3C44B0x上的移植

作者: 時(shí)間:2014-10-31 來(lái)源:電子產(chǎn)品世界 收藏

  引 言

本文引用地址:http://dyxdggzs.com/article/264710.htm

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

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

  1 μCOS-Ⅱ概述

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

  2 S3C44B0處理器概述

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

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

  3 嵌入式操作系統μCOS-Ⅱ的移植

  3.1 移植μCOS-Ⅱ的條件

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

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

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

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

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

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

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

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

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

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

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

  3.3 μCOS-Ⅱ的移植

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

  

1.jpg

 

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

  (1)移植OS_CPU.H文件

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

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

  

2.jpg

 

 ?、墼O置堆棧的增長(cháng)方向

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

  

3.jpg

 

  (2)移植OS_CPU_C.C文件

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

  

4.jpg

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM S3C44B0x μC/OS-Ⅱ

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>