色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    44575

    瀏覽量

    636386
  • 操作系統
    +關注

    關注

    37

    文章

    6847

    瀏覽量

    123427
  • 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次下載
    主站蜘蛛池模板: 把内衣脱了把奶露出来| 蜜桃麻豆WWW久久囤产精品免费| 妻子的秘密HD观看| 97精品国产亚洲AV超碰| 欧美日韩国产高清综合二区| 福利视频久久| 亚洲熟女丰满多毛XXXXX| 麻豆成人AV久久无码精品| write as 跳蛋| 亚洲AV无码一区二区三区牛牛 | 青青青草免费| 国产精品v欧美精品v日韩| 永久免费看A片无码网站四虎| 女人久久WWW免费人成看片| 国产精品18久久久久网站| 在线 亚洲 日韩 欧洲视频| 日本男女动态图| 久久久久久久伊人电影| 嘟嘟嘟WWW在线观看视频高清 | 十八禁啪啦啪漫画| 久久re热在线视频精69| 成人亚洲视频| 最近的2019中文字幕国语HD| 天堂岛www天堂资源在线| 美女扒开腿让男人桶个爽| 国产精品色欲AV亚洲三区软件| 中文字幕伊人香蕉在线| 性色AV乱码一区二区三区视频| 内射人妻骚骚骚| 久久re热线视频精品99| 国产高潮久久精品AV无码| 99九九精品视频| 亚洲色无码播放| 偷拍自怕亚洲在线第7页| 男人桶女人j的视频在线观看| 果冻传媒在线观看高清完整免费| videos gratis欧美另类| 在线亚洲黄色| 亚洲日本激情| 小莹的性荡生活40章| 日韩欧美中文字幕一区|