關於uc os II在C51上移植的筆記

2021-04-19 19:36:09 字數 545 閱讀 1615

先前看過巨龍的楊屹老師關於在c51上移植uc的文章,看後感慨頗深。但隨著對uc的理解發現楊老師的移植程式中任務函式不能傳引數,所以就試著改了改。

uc的執行過程是:第一、osinit()函式初始化空閒任務,如果可能還有統計任務,當然還有pcb,event空閒列表(想必知道uc的人都知道指點哈);第二、ostaskcreate()函式,在這個函式中首先呼叫ostaskstkinit()初始化堆疊,楊老師在用彙編寫這個函式時目的讓r7 = 0x07,而ppdata這個傳過來的引數並沒使用,這樣就不能傳引數了吧。為什麼我提到r7呢?因為keil編譯器用r7傳第乙個引數ppdata

只要把*stk++ = 0x07;                                        //r7

換成 *stk++ = (os_stk *)ppdata;                  //r7  這樣ppdata通過r7可以傳到任務函式裡了。

任務函式:void task(void idata *pd) reentrant;這樣int8u c =  *(int8u *)pd

就能用了哈。

大宇的ucos移植c51心得

這是我的移植心得 微控制器使用 r7傳引數,在呼叫任務函式時,提前把 r7裡放上該傳的引數值,等到呼叫任務函式時,編譯器自動到 r7裡把引數取出放到任務函式的形參裡。本人在做傳參時,在 main 裡宣告int8u idata dat 0x05 注意是 idata 在create 任務時傳過去的引數是...

uCOS II在STM32F407上移植

一 複製ucos ii原始碼 1 在工程目錄的ucos ii下建立ports和source這兩個資料夾 2 i ucos micrium software ucos ii ports arm cortex m4 generic iar下的所有檔案複製到ports目錄下 3 i ucos micriu...

ucosii在stm32上的移植詳解5

來自 詳解1 4把移植過程都已經介紹了。接下來的工作是驗證移植是否ok以及如何基於移植好的ucosii開 發應用程式。前乙個問題可以說是後乙個問題的特殊情況,一般我們會建立兩個簡單的任務,看看任務切 換是否成功來驗證移植是否ok,因為任務切換可以說是ucosii最核心的功能。任務 main.c st...