STM32F103 UCOSII 移植實驗

2021-09-26 07:43:41 字數 2187 閱讀 1334

ucosii 移植

一、向工程中新增相應資料夾

1、建立相應資料夾

在工程目錄下新建ucosii資料夾,並在ucosii資料夾中另外新建3個資料夾:config、core和port,如下圖所示

2、向core資料夾中新增原始碼檔案

2)新增原始碼檔案

向core資料夾中新增cosii原始碼檔案,開啟ucosii原始碼資料夾中的source資料夾,共14個檔案,除去os_cfg_r.h和os_dbg_r.c這兩個檔案,其餘的全部複製到core資料夾中,如下圖所示

3、向config資料夾中新增原始碼檔案

將includes.h和os_cfg.h複製到config資料夾中,如下圖所示(這兩個檔案來自戰艦開發板實驗原始碼實驗51 ucosii實驗1-1-任務排程)

4、向port資料夾中新增原始碼檔案

向 port 資料夾中新增 5 個檔案:os_cpu.h、os_cpu_a.asm、os_cpu_c.c、os_dbg.c

和 os_dgb_r.c。如下圖所示(這兩個檔案來自戰艦開發板實驗原始碼實驗51 ucosii實驗1-1-任務排程)

二、將與ucosii有關的檔案新增到工程中

在工程分組中建立三個分組:ucosii-core、ucosii-port 和 ucosii-config。如下圖所示

向ucosii-core分組中新增core檔案中除ucosii. c以外的所有.c檔案,向ucosii-port分組中新增port檔案中os_cpu.h、os_cpu_a.asm和os_cpu_c.c這三個.c檔案,向ucosii-config分組中新增includes.h和os_cfg.h這兩個檔案,新增完成後如下圖所示。

注意:不要將

ucos_ii.c

檔案新增到

ucosii-core

分組中!!!否則編譯以後會提示好多重複定義的錯誤!

最後新增相應的標頭檔案路徑,如下圖所示

如下圖所示,部分檔案帶有小鑰匙的圖示,該檔案無法編輯,可能的原因是檔案是唯讀屬性,修改檔案許可權,也可能是作業系統未啟用

修改完之後再編譯一下工程,繼續報錯,錯誤如下:提示我們在os_cpu_a.o 和 stm32f10x_it.o 這兩個檔案中重複定義了 pendsv_handler 這個函式。如下圖所示

開啟 stm32f10x_it.c 檔案,將中斷服務函式 pendsv_handler 遮蔽掉,遮蔽後如下圖所示

三、修改 sys.h  標頭檔案

開啟sys.h 標頭檔案,裡面有乙個system_support_ucos的巨集定義,如果定義為0的話不支援 ucos,我們將其改為 1 支援 ucos。

將 system_support_ucos 定義為 1 後編譯工程,發現提示如下圖所示錯誤,提示我們在 stm32f10x_it.o 和 delay.o 這兩個檔案中重複定義了 systick_handler 這個函式。

將stm32f10x_it.c 檔案中的中斷服務函式 systick_handler 遮蔽掉,遮蔽後如下圖所示

繼續編譯,程式無錯誤。

stm32f103外部中斷

void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...

STM32F103啟動檔案

目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...

筆記 STM32F103 SPI flash概述

spi介面 spi 是英語 serial peripheral inte ce 的縮寫,就是序列外圍裝置介面。是一種高速的,全雙工,同步的通訊匯流排,並且在晶元的管腳上只占用四根線,節約了晶元的管腳 內部結構 spi 介面一般使用4條線通訊 miso主裝置資料輸入,從裝置資料輸出。mosi主裝置資料...