在线观看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次下載
    主站蜘蛛池模板: h视频免费看 | 91啪免费网站在线观看 | 中文字幕亚洲一区二区三区 | 在线三级播放 | 久久狠狠第一麻豆婷婷天天 | 午夜视频免费观看黄 | 日本黄色免费一级片 | 乱欲小说又粗又大 | 四虎最新网站 | 国产午夜精品一区二区三区 | 欧美激情啪啪 | 一本到卡二卡三卡免费高 | 天天射天 | 国产日韩一区二区三区 | 国产色婷婷精品免费视频 | 免费看黄色网页 | 天堂网站www天堂资源在线 | 日日摸夜夜添免费毛片小说 | 奇米影视777四色米奇影院 | 午夜污片 | 亚洲成人av | 伊在线视频 | 国内精品久久久久久影院老狼 | 日日干夜夜草 | 国产色网站 | 狠狠色丁香久久综合婷婷 | 亚洲爽爽网站 | 在线色资源 | 日日干天天操 | 午夜国产大片免费观看 | 国产叼嘿视频网站在线观看 | 五月天丁香婷婷开心激情五月 | 香蕉狠狠再啪线视频 | 久久亚洲精品国产亚洲老地址 | 久久免费观看国产精品 | 亚洲天天操| 久久思re热9一区二区三区 | 亚洲欧美国产高清va在线播放 | 高颜值露脸极品在线播放 | 天堂网www| 亚洲a人片在线观看网址 |