uCOS-III筆記之任務創建

        一直在用但並沒用深入的去了解,就好像你有一個網友平時經常聊條,但是彼此不瞭解各自的內心世界,這是一種尷尬只是一種不負責任。再加上感覺自己要老了大哭記性也大不如以前了,好記性不如爛筆頭,還是寫下來吧,以後不懂了疑問不用問別人問問自己就錨索頓開了驚訝

       剩下的時日不多了可憐,趕緊搞起來吧。OSTaskCreate()  嗨man,知道幹嘛的吧。

void  OSTaskCreate (OS_TCB        *p_tcb,                              //任務控制塊指針
                                      CPU_CHAR      *p_name,                     //命名任務
                                      OS_TASK_PTR    p_task,                      //任務函數
                                      void          *p_arg,                                     //傳遞給任務函數的參數
                                      OS_PRIO        prio,                                  //任務優先級
                                      CPU_STK       *p_stk_base,                 //任務堆棧基地址
                                      CPU_STK_SIZE   stk_limit,                  //堆棧的剩餘限值
                                      CPU_STK_SIZE   stk_size,                  //堆棧大小
                                      OS_MSG_QTY     q_size,                      //任務消息容量
                                      OS_TICK        time_quanta,                  //時間片
                                      void          *p_ext,                                     //任務擴展
                                     OS_OPT         opt,                                    //選項
                                     OS_ERR        *p_err)                               //返回錯誤類型

  參數解釋, *p_tcb  任務控制塊指針,看名字很高大上很難直白的理解。  OS_TCB  就是一個結構體 struct os_tcb {};可以查看內核源碼,這個結構體主要記錄了與任務相關的信息數據  如結構體首地址存放了  CPU_STK  *StkPtr; 當前棧頂指針。拿stm32f103來講這個結構體就是一個內存空間在IRAM1指示的地址空間裏,定義的位置不一樣會影響運行時的內存地址也就是影響棧頂指針。我們要寫的函數就是第三個參數就是任務,燒寫程序後任務就放在IROM1的地址空間裏。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章