在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32入門學習筆記之uCOS-II系統移植2

jf_78858299 ? 來源:滑小稽筆記 ? 作者:電子技術園地 ? 2023-02-16 16:13 ? 次閱讀

23.2 uCos-II移植

我們將下載好的uCOS-II的源代碼解壓出來如下圖所示。

圖片

23.2.1 在工程中添加相應的文件

(1)在工程目錄下建立UCOSII文件夾,并在該文件夾內新建三個文件夾CONFIG,CORE和PORT

(2)將除了os_cfg_r.h和os_dbg_r.c這兩個文件以外的所有文件全部復制到CORE文件夾下

(3)在CONFIG文件夾中新建includes.h文件和os_cfg.h文件

(4)在PORT文件夾中新建os_cpu.h,os_cpu_a.asm,os_cpu_c.c這3個文件

(5)在工程中添加這三個目錄下的文件,如下圖所示。

圖片

注:不要把ucos-ii.c文件添加到UCOS-CORE分組中,否則會提示有重復定義錯誤。

23.2.2 文件修改

我們編譯工程后可以發現報了11個錯誤,但都是同一個錯誤,如下圖所示。

圖片

我們在移植的時候并沒有發現這個文件,那是因為我們并沒有用到這個文件,這個文件是在ucos-ii.h文件中引用的,我們跳轉到這個文件將其屏蔽掉。

:我們可以發現在修改的時候,文件雖然可以打開,但是修改不了,這是因為我們下載的源碼都被設置成了只讀模式,在工程中只讀文件會有一個鑰匙的標志,這就需要我們將文件的只讀屬性去掉即可。

圖片

圖片

去掉只讀屬性之后,我們會發現項目中的文件上鑰匙標志消失了,如下圖所示。

圖片

此時,我們就可以對文件內容進行修改了。打開ucos_ii.h文件,屏蔽44行的文件引用,如下圖所示。

圖片

此時會發現報更多的錯誤,此時我們進行新建文件的修改。

(1)os_cpu_a.asm文件詳解

①這部分代碼主要用于定義外部變量,IMPORT表示這是一個外部變量,不是在本程序內定義的,EXPORT則表示這些函數位于該文件內,供其他文件調用,類似于C語言中的extern關鍵字。

IMPORT  OSRunning
  IMPORT  OSPrioCur
  IMPORT  OSPrioHighRdy
  IMPORT  OSTCBCur
  IMPORT  OSTCBHighRdy
  IMPORT  OSIntNesting
  IMPORT  OSIntExit
  IMPORT  OSTaskSwHook


  EXPORT  OSStartHighRdy
  EXPORT  OSCtxSw
  EXPORT  OSIntCtxSw
  EXPORT  OS_CPU_SR_Save
  EXPORT  OS_CPU_SR_Restore
  EXPORT  PendSV_Handler

②EQU和C語言中的define關鍵字一樣,用于宏定義,定義了一些寄存器的地址

NVIC_INT_CTRL    EQU    0xE000ED04      ;中斷控制寄存器
NVIC_SYSPRI2    EQU    0xE000ED20      ;系統優先級寄存器
NVIC_PENDSV_PRI  EQU    0xFFFF0000      ;PendSV中斷和系統節拍中斷
NVIC_PENDSVSET    EQU    0x10000000      ;觸發軟件中斷的值
  PRESERVE8


  AREA    |.text|, CODE, READONLY
  THUMB

③OS_CPU_SR_Save和OS_CPU_SR_Restore是用于開關中斷的匯編函數,通過給PRIMASK寫1來關閉中斷,寫0來開啟中斷,這里也可以使用CPS指令來快速開關中斷

OS_CPU_SR_Save
  MRS    R0, PRIMASK            ;讀取PRIMASK到R0,R0為返回值 
  CPSID  I                ;PRIMASK=1,關中斷(NMI和硬件FAULT可以響應)
  BX    LR                ;返回


OS_CPU_SR_Restore
  MSR    PRIMASK, R0            ;讀取R0到PRIMASK中,R0參數
  BX    LR                ;返回

④OSStartHighRdy是由OSStart()調用,用來開啟多任務,如果多任務開啟失敗就會進入OSStartHang函數中

OSStartHighRdy
  LDR     R4, =NVIC_SYSPRI2        ;設置PendSV優先級
  LDR     R5, =NVIC_PENDSV_PRI
  STR     R5, [R4]
  MOV     R4, #0              ;設置PSP=0
  MSR     PSP, R4
  LDR     R4, =OSRunning          ;設置OSRunning=1
  MOV     R5, #1
  STRB    R5, [R4]
  ;切換到最高優先級的任務
  LDR     R4, =NVIC_INT_CTRL        ;R4=NVIC_INT_CTRL
  LDR     R5, =NVIC_PENDSVSET      ;R5=NVIC_PENDSVSET
  STR     R5, [R4]
  CPSIE   I                ;開啟所有中斷
OSStartHang
  B       OSStartHang            ;死循環
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6039

    文章

    44579

    瀏覽量

    636457
  • 操作系統
    +關注

    關注

    37

    文章

    6850

    瀏覽量

    123433
  • uCOS-Ⅱ
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8607
收藏 人收藏

    評論

    相關推薦

    快速實現STM32移植ucos-ii

    快速實現STM32移植ucos-ii,歡迎大家一起學習[groupid=618]單片機項目開發設計群[/groupid]
    發表于 08-08 16:28

    UCOS-II系統移植問題

    這幾天剛剛開始學習UCOS-II系統移植,我用的是野火開發板。資料上說是對startup_stm32f10x_hd.s 文件進行修改,但是我
    發表于 09-12 12:27

    uCOS-II理解和學習路線

    最近為啦準備嵌入式比賽,重拾stm32學習。再次學習也算基本掌握查看調用STM32固件庫v3.5啦,覺得這才算入門
    發表于 08-23 09:15

    ucOS-II入門經典教程

    ucOS-II入門經典教程,ucOS-II入門經典教程
    發表于 11-06 10:07 ?0次下載

    基于STM32F2xx庫建立uCOS-II工程

    基于STM32F2xx庫建立uCOS-II工程
    發表于 11-05 17:05 ?28次下載

    盤古STM32F103開發板移植uCOS-II詳細說明

    盤古STM32F103開發板移植uCOS-II詳細說明
    發表于 03-02 17:29 ?13次下載

    STM32平臺移植uCOS-II詳細說明-2012.11.13

    STM32平臺移植uCOS-II詳細說明-2012.11.13
    發表于 03-04 15:31 ?12次下載

    ucos-ii中文書籍

    ucos-ii中文書(邵貝貝).rar 入門經典書籍
    發表于 03-11 11:02 ?6次下載

    ucOS-II入門經典教程

    ucOS-II入門經典教程,感興趣可以看看。
    發表于 07-25 18:52 ?47次下載

    uCOS-ii中文書

    學習uCOS-ii的最好中文教材,uCOS-ii中文書(邵貝貝)
    發表于 08-24 18:31 ?0次下載

    uCOS-II原理1

    原理uCOS-II
    發表于 12-20 22:58 ?5次下載

    uCOS-II原理2

    uCOS-II原理2
    發表于 12-20 22:53 ?0次下載

    uCOS-II原理3

    uCOS-II原理3
    發表于 12-20 22:52 ?0次下載

    uCOS-II在MSP430移植

    uCOS-II在MSP430移植
    發表于 10-12 17:24 ?9次下載
    <b class='flag-5'>uCOS-II</b>在MSP430<b class='flag-5'>移植</b>

    手把手盤古STM32開發板移植uCOS-II教程

    手把手盤古STM32開發板移植uCOS-II教程
    發表于 10-16 09:38 ?22次下載
    主站蜘蛛池模板: 女同久久| 国产高清亚洲| 俺去啦五月| brazzers在线| 午夜在线观看免费高清在线播放| www.激情.com| 天天艹天天艹| 国产自产视频在线观看香蕉| 丁香六月综合网| 2021天天操| 成人毛片一区二区三区| 亚洲嫩草影院在线观看| 色中色官网| 久久99精品久久久久久野外| 国产精品激情综合久久| 午夜亚洲| 黑人影院| 亚洲国产精品第一页| 最新天堂| 日本黄色高清视频| 国产又黄又免费aaaa视频| 亚洲天堂va| 国产性夜夜春夜夜爽| jizz性欧美12| 中韩日欧美电影免费看| 日韩欧美一卡二区| 黄色片日本网站| 婷婷操| 福利盒子手机看片| 欧美一区二区三区视频在线观看| 亚洲va久久久噜噜噜久久男同| 日韩成人免费一级毛片| 国产一区二区三区美女在线观看| 亚洲操操操| 1024手机看片你懂得的 日韩欧美| 天天综合网网欲色| 婷婷免费高清视频在线观看| 久久夜色撩人精品国产| 天天夜夜狠狠一区二区三区| 欧美tube最新的69hd| 亚洲欧美日韩国产一区二区三区精品 |