uCos在stm32上的移植總結

2021-06-13 14:41:53 字數 2960 閱讀 2573

作業系統:windows xp

開發環境:keil uvision3 –mdk

實驗開發板:open103z

一、準備

2、        ucos-ii 原始碼(移植版本):

3、        stm32標準外設庫(stm32標準外設庫是stm32全系列晶元的外設驅動):

4、        jlink**器驅動程式:找不到官網

二、建立工程資料夾結構

如圖:

os-ucosii用來存放ucos檔案; project用來存放工程檔案;readme用來存放txt格式的自述檔案(可選)

三、整理庫**

1、解壓stm32f10x_stdperiph_lib_v3.5.0下的libraries資料夾拷貝到stm32-ucos_ii下,替換libraries(懶惰做法,包含冗餘檔案)

四、建立keil工程

使用keil mdk新建stm32-ucosii-demo工程,並儲存到stm32-ucos_ii\project資料夾下,選擇晶元型別stm32f103ze,當彈出是否拷貝啟動**到工程檔案時要選no, 因為標準外設庫里已經有啟動**了。

再建立幾個group,如圖:

1、   將stm32-ucos_ii\libraries\stm32f10x_stdperiph_driver\src下的6個檔案新增進stm32f10x_stdperiph_driver 組下,如圖:

1、   將stm32-ucos_ii\libraries\cm3下的所有.c和.h檔案和stm32-ucos_ii\libraries\cm3\startup相應的.s檔案加到stm32f10x_cm3組(我選擇startup_stm32f10x_hd.s 參見stm32f10x.h中對各型號的說明)

五、初始配置stm32的標準外設庫

1、配置晶元型別(stm32f10x.h),如圖:

2、是否啟用標準外設庫(stm32f10x.h):去掉105行use_stdperiph_driver注釋,如圖:

3、配置晶元主頻(system_stm32f10x.c) , 在110-115行,如圖:

4、配置所用外設庫(stm32f10x_conf.h), 目前僅保留五個庫,如圖:

5、完善工程

2、 在stm32-ucos_ii\bsp下建立bsp.c和bsp.h空檔案,然後新增到工程中bsp組

3、 最後得目錄結構如圖所示:

六、開始移植

1、ucosii的體系結構如圖:

2、解壓micrium-st-ucos-ii-lcd-stm32.exe

1)、將micrium-st-ucos-ii-lcd-stm32\micrium\software\ucos-ii\source下的所有檔案拷貝到stm32-ucos_ii\os-ucosii\core下,然後新增到工程

2)、將micrium-st-ucos-ii-lcd-stm32\micrium\software\ucos-ii\ports\arm-cortex-m3\generic\realview下的所有檔案拷貝至stm32-ucos_ii\os-ucosii\port下,然後新增到工程

3、修改與移植相關的檔案os_cpu.h, os_cpu_c.c 和os_cpu_a.asm

注:本文是經過實踐得來的,

後面的一部分是參考大神的配置,直接就貼圖了,

本想註明出處,可惜時間太久,找不到了,在此感謝!

在STM32上移植FreeRTOS

freertos是乙個迷你的實時作業系統核心。作為乙個輕量級的作業系統,功能包括 任務管理 時間管理 訊號量 訊息佇列 記憶體管理 記錄功能 軟體定時器 協程等,可基本滿足較小系統的需要。開啟後如下如顯示 為了避免出錯,請將路徑改為全英文 將主程式改為如下 include freertos.h in...

lua在stm32上的移植

2.增加檔案stm32 lua config.c,其內容如下,主要是重定義lua中檔案操作的底層函式 即fopen fread fclose等函式要呼叫的函式 include includes.h include lcd get res.h include ff.h pragma import us...

MQTT協議在STM32上的移植

mqtt協議在stm32上的移植 開發平台 軟體環境 硬體環境 參考文件 本篇是mqtt在stm32裝置上的移植,因此使用paho的嵌入式c 庫,原始碼位址 移植 首先,需要將 paho.mqtt.embedded c mqttpacket 中的所有檔案新增到keil工程檔案,然後參考 paho.m...