999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

uCOS—Ⅲ在Cortex—M4平臺上的移植和實現

2018-03-30 02:26:56梁小驁宋慶國王勃
電子技術與軟件工程 2017年16期

梁小驁 宋慶國 王勃

摘要

介紹了嵌入式實時操作系統uCOS-Ⅲ的內核架構,通過對ST公司基于Cortex-M4平臺數字信號控制器STM32F407的體系結構進行分析,給出了移植的具體方案。描述了uCOS-Ⅲ在Cortex-M4平臺的移植關鍵技術并給出部分關鍵代碼,最后設計了多任務的應用程序-險證了移植的成功。

【關鍵詞】嵌入式系統 uCOS-Ⅲ Cortex-M4 STM32F407

1 引言

uCOS-Ⅲ是一個可擴展的,可固化的,搶占式的實時內核,它管理的任務個數不受限制。它作為Micrium推出的第三代操作系統內核,提供了現代實時內核所期望的大部分功能包括資源管理、同步、內部任務通信等功能。uCOS-Ⅲ也提供了很多特性是在其他實時內核中所不具備的。比如能在運行時測量運行時間性能,直接的發送信號或消息給任務,任務能同時等待多個信號量和消息隊列等。因此將uCOS-Ⅲ移植到嵌入式處理器上,對于提高軟件產品質量,推進軟件產品化及縮短產品研發周期等方面有著重要意義。本文主要介紹uCOS-Ⅲ在ST公司數字信號控制器STM32F407上的移植。

2 STM32F407硬件平臺架構

STM32F407作為ST公司推出的嵌入式數字信號控制器系列產品之一,具有更先進的Cortex M4內核、更多的存儲空間、較高的運行速度、支持較多高級外設、更低的功耗等優點,其主要指標具體如表1所示。

STM32F407系列處理器的通用寄存器如圖1所示,其中R0?R7為低組寄存器,字長全為32位,所有指令均可對其進行訪問;R0?R8為高組寄存器,字長全為32位,只有很少16位Thumb可對其進行訪問。R13為堆找指針,在CortexM4處理器內核中共有兩個堆棧指針,主堆棧指針(MSP)為缺省指針,由內核、異常服務例程及所需特權訪問的應用程序代碼來使用;進程堆棧指針(PSP)則用于常規的應用代碼。R14是鏈接寄存器,用于在調用子程序時返回存儲地址;R15是程序計數器,可用于程序內部分支跳轉。

此外,Cortex M4處理器內核還搭載了若干特殊功能寄存器,程序狀態字寄存器組(PSRs)用于反映程序執行狀態;中斷屏蔽寄存器組(PRIMASK、FAULTMASK、BASEPRI),用于控制異常的使能和禁能;控制寄存器(CONTROL)則用于定義特權級別和切換堆棧指針。處理器內部的SysTick定時器可產生固定的中斷信號,可作為操作系統的時鐘信號。

3 uCOS-lII移植關鍵技術

3.1 uCOS-Ⅲ源文件體系結構

uCOS-Ⅲ源文件按照由底層到上層的排列順序進行整理,具體源文件體系結構如圖2所示。用戶應用程序軟件位于最上層,通過調用uCOS-Ⅲ內核的接口函數來實現多任務調度和切換、內存管理和進程間通信等功能。從圖2可知,移植uCOS-Ⅲ操作系統的主要任務是對④、⑤兩部分代碼的更改,使其正常運行于Cortex-M4平臺。

3.2 uCOS-Ⅲ與移植相關代碼編寫

3.2.1 os—cpu—c.c文件

uCOS-Ⅲ移植時首先需確定任務的堆棧結構,進行任務堆棧的初始化工作,以方便第一次任務切換時將堆棧彈出,開始運行任務。需實現的C函數為OSTaskStklnit(),此函數主要功能是將寄存器的內容入棧,要注意堆棧的增長方向,嚴格按照Cortex M4處理器入棧的順序將寄存器的內容放入棧中。依據Cortex-M4內核的任務堆棧結構,OSTaskStklnit()函數具體實現如圖3所示。

還需編寫時鐘節拍中斷初始化函數OS_CPU_SysTickInit()及中斷服務函數0S_CPU_SysTickHandler()以便進行系統的時間管理。OS_CPU_SysTickInit()需在系統的第一個任務開始前進行調用,若在此之后調用,則可能導致系統異常崩潰。OS_CPU_SysTickHandler()函數具體實現如圖4所示。

3.2.2 os_cpu_a.asm及os_cpu.h

在os_cpu_a.asm文件中需要編寫關于CPU進行任務切換的匯編函數,0S_cpu.h則聲明了相關宏定義。該部分重點是編寫宏0S_TASK_SW()和宏OSIntCtxSw()。其中宏OS_TASK_SW()用于觸發一個軟件中斷或調用一個函數來實現任務切換,具體實現如圖5所示。

調用函數實現切換的具體過程為將當前任務的寄存器入棧,接著待切換任務出棧放入寄存器中即可。入棧時應注意入棧順序、是否全部入棧等細節。若采用觸發軟件中斷來實現切換時,則需在0s_cpu_a.asm中編寫中斷服務函數PendSV_Handler()。該函數實現系統未入棧的部分寄存器,然后將待切換任務的堆棧彈到各個寄存器中來實現。宏OSIntCtxSw()用于當執行中斷服務程序時,若更高優先級任務就緒,在退出中斷時進行任務切換。其代碼實現和OS_TASK_SW()類似。

3.3 uCOS-Ⅲ與CPU相關代碼編寫

該部分代碼中cpu_def.h文件用于定義和CPU配置相關的宏,cpu_core.c和cpu_core.h主要包含的是CPU命名、時間戳計算等。以上文件和移植無關,不用進行更改。Cpu_c.c和cpu_a.asm文件和CPU底層相關,這兩個文件必須要實現開關中斷函數CPU_IntSixEn()、CPU_IntSrcDis()。CPU_IntSrcEn()函數實現如圖6所示,CPU_IntSrcDis()函數實現類似。

4 uCOS-Ⅲ移植結果測試

本文定義了3個任務來驗證uCOS-Ⅲ在Cortex-M4平臺上的移植結果,如圖7所示,網絡數據處理任務對網絡數據包接收任務的數據包進行數據按位取反操作;數據處理完成后通過網絡數據包發送任務回送相應數據。任務之間通過郵箱機制進行同步。

系統運行結果如圖8所示,STM32F407可正常接收網絡數據包并進行數據處理,然后通過網絡數據包發送任務將數據處理結果返回,實現了移植測試的預期功能。

5 結語

本文選用ST公司的STM32F407數字信號控制器作為硬件平臺,針對Ccmex-M4的體系架構,對嵌入式實時操作系統uCOS-Ⅲ的源碼進行相應更改,實現了uCOS-Ⅲ操作系統在Cortex-M4平臺上的移植。對于將uCOS-Ⅲ操作系統移植到同類架構芯片上,具有實際的工程應用價值。

參考文獻

[1]ARM.Cortex-M4 Devices Generic User Guide [M]. ARM CORP, 2010.

[2]STMicroelectronics.STM32F3 and STM32F4 Series Cortex-M4 programming manual [M].STMicroelectronics group of companies, 2014.

[3]uC0SIII source code [EB/OL].www. micrium.com/downloadcenter/.

[4]吳常玉,曹孟娟,王麗紅,譯. Joseph Yiu. ARM Cortex-M3 與 Cortex-M4 權威指南[M].北京:清華大學出版社,2015.

[5]劉淵,田彥云,張天宏.基于μC/OS-Ⅲ和ARM的空心杯電機控制器設計[J].單片機與嵌入式系統應用,2015, 15 (04): 51-53.

主站蜘蛛池模板: 日韩在线第三页| 亚洲视频三级| 91破解版在线亚洲| 精品乱码久久久久久久| 国产无码在线调教| 久久熟女AV| 青青国产成人免费精品视频| 国产亚洲精品无码专| AV熟女乱| 人妻21p大胆| 99re这里只有国产中文精品国产精品 | 国产成本人片免费a∨短片| AV不卡无码免费一区二区三区| 人妻无码中文字幕第一区| 亚洲精品国产首次亮相| 欧美一级99在线观看国产| 国产粉嫩粉嫩的18在线播放91| 欧美v在线| 国产精品私拍99pans大尺度 | 色亚洲成人| 亚洲中文字幕国产av| 午夜激情婷婷| 成人亚洲视频| 久久精品视频一| 国产成人综合久久精品尤物| 米奇精品一区二区三区| 欧洲日本亚洲中文字幕| 97se亚洲综合在线韩国专区福利| 无码网站免费观看| 又爽又黄又无遮挡网站| 亚洲人成成无码网WWW| 国国产a国产片免费麻豆| 热久久国产| 日韩色图区| 在线不卡免费视频| 国产精品国产三级国产专业不| 草草影院国产第一页| 亚洲精品天堂自在久久77| 老色鬼欧美精品| 91福利国产成人精品导航| 五月激激激综合网色播免费| 亚洲男人的天堂久久香蕉网| 日韩精品毛片| 99视频免费观看| 久久久久88色偷偷| 伦精品一区二区三区视频| AV网站中文| 激情乱人伦| 中文字幕久久波多野结衣| 亚洲精品国产精品乱码不卞| 国产一线在线| 人妻无码中文字幕第一区| 乱色熟女综合一区二区| 国内精品久久九九国产精品 | 国产激情第一页| 久草视频一区| 波多野结衣一区二区三区四区视频| 亚洲日韩高清在线亚洲专区| 91久久精品国产| 久久精品人人做人人爽电影蜜月| 精品久久久久成人码免费动漫| 玖玖免费视频在线观看| 国产又粗又猛又爽视频| 美女扒开下面流白浆在线试听| 99热这里只有免费国产精品| 国产永久免费视频m3u8| 欧美69视频在线| 亚洲视频三级| 国产真实二区一区在线亚洲| 青青久视频| 亚洲熟女偷拍| 精品视频一区二区三区在线播| 欧美人与牲动交a欧美精品 | 日韩欧美91| 婷婷激情亚洲| 国产综合网站| 在线精品亚洲国产| 亚洲性一区| 久久综合丝袜日本网| www.91在线播放| 日韩毛片在线播放| 亚洲精品国偷自产在线91正片|