穆向陽 楊曉東


摘要:該文介紹了第三代嵌入式實時操作系統μC/OS-Ⅲ相比之前版本,在性能上提升的地方,以及通過對搭載STM32F429IGT6微處理器的ARM Cortex-M4內核平臺的技術分析,詳細闡述了μC/OS-Ⅲ嵌入式系統在此平臺上移植過程中的關鍵技術理論,最后通過設計多任務處理應用來驗證系統移植的可靠性。
關鍵詞:嵌入式系統;μC/OS-Ⅲ;Cortex-M4;STM32F429IGT6
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)06-0204-02
1引言
STM32系列基于研發高性能、低功耗、低成本的嵌入式應用設備而著稱,隨著半導體技術的快速發展,承載于嵌入式平臺的實時操作系統也越來越被人們所關注,μC/OS-Ⅲ作為新一代具有高度可移植性的嵌入式操作系統,無論是在性能表現上還是在實際移植運用中都體現出了前所未有的工程價值,其在工程項目領域的迅猛發展也足夠證明開放源碼軟件的巨大生命力。
2μC/OS Ⅲ基于性能上的提升
μC/OS作為可裁剪、搶占式、可固化、實時多任務內核,在搭載微控制器的ROM平臺上具有高度的可移植性,2009年誕生的第三代μC/OS系統內核對比之前版本在性能上有很大的提升。首先,最大任務數和每個優先級的任務數比起上一代沒有了限制,取消了消息郵箱,增加了時間片輪轉功能,不再通過信號量標記一個任務,不通過消息列發消息給任務,其次,加入了運行中實時配置功能,以及大量的嵌入式測量功能。這就使得μC/OS-Ⅲ裁剪性移植在STM32F429IGT6平臺任務處理工作中發揮巨大作用。
3 STM32F429IGT6技術指標分析
低電量的STM32F429IGT6微處理器是基于高性能ARMCortex-M4的32位RISC內核,可以在高達180兆赫的頻率工作。ARM Cortex-M4內核具有浮點單元(FPU)單精度,支持當下所有ARM平臺的單精度數據處理指令和數據類型。它能夠實現一整套DSP指令和一個增強應用程序安全性的內存保護單元(MPU)。集成了高速嵌入式存儲器(高達2 MB的閃存,高達256 KB的SRAM),高達4 KB的備份SRAM以及連接到兩個APB的各種增強型I/O和外設總線,兩條AHB總線和一個32位多AHB總線矩陣。所有器件均提供12位ADC三個,DAC兩個,16位通用定時器十二個,低功耗實時時鐘RTC一個,包括支持電機控制的PWM定時器兩個,32位通用定時器兩個,并涵蓋了多樣化的當下流行的標準通信接口。
4μC/OS Ⅲ系統移植過程中的關鍵技術理論和實踐
4.1 μC/OS-Ⅲ系統內核移植過程概述
(1)txcos官網下載最新版本內核,ST官網下載STM32F429IGT6標準庫文件
(2)用MDK新建本次移植平臺STM32F429IGT6的工程目
(3)拷貝μC/OS-Ⅲ相關文件夾到新建的工程目錄下
(4)對平臺相關文件進行修改
(5)根據所工程需要,設置好相關參數
(6)編寫BSP目錄下對應的工程驅動文件
(7)編譯、下載,測試系統可靠性
4.2修改STM32啟動文件代碼
在μC/OS-Ⅲ系統移植中,除去將系統中的相關文件直接復制移植到工程文件中,最重要的就是修改STM32的啟動文件代碼,從而把μC/OS-Ⅲ系統的神經跟已經復制移植好的STM32工程文件聯系起來,可掛起系統中斷PendSVHandler和滴答定時器中斷SysTickHandler則承擔了這部分工作。Sys-TickHandler為操作系統提供時鐘節拍,PendSVHandler則是使μC/OS-Ⅲ能夠成功的進人到STM32系統中。在整個項目文檔的移植過程中,將可掛起系統中斷PendSVHmldler替換移植為OS_CPU_PendSVHandler,將系統滴答時鐘SysTickHandler替換為OS_CPU_SysTickHandler。
4.3修改os_cpu_a.asm文件
由于不同的編譯器,要將μC/OS-Ⅲ移植到stm32上,C語言中用來定義全局變量的關鍵字PUBLIC要全部更改為匯編語言中的EXPORT,并將代碼段
RSEG CODE:CODE:NOROOT(2)
THUMB
替換移植為
PRESERVE8
THUMB
AREA CODE,CODE,READONLY
這部分修改是為了兼容STM32里面的一些指令集
4.4修改cpu_a.asm文件
修改處理器相關的匯編函數,主要是任務切換函數,同上,將C語言中用來定義全局變量的關鍵字PUBLIC要全部更改為匯編語言中的EXPORT,并將代碼段
通過OSTaskSemPend使任務掛在一個信號量上,通過OSTasks-emPost使任務發出一個信號量,由此實現信號量開關對兩個任務進行交互。
6結語
本文選用了ST公司的低功耗STM32F429IGT6嵌入式開發平臺,從技術理論到項目實踐經驗,結合Cortex-M4內核的系統架構模式,通過對整體μC/OS-Ⅲ系統的裁剪以及源碼的按需性修改,完成了μC/OS-Ⅲ操作系統在STM32F429IGT6嵌入式開發平臺的移植工作,無論是對提高產品工作效率、降低多模塊工藝成本,還是縮短相關任務系統開發,都有一定意義上的實際工程應用價值。