導航:首頁 > 編程知識 > ucos怎麼編程

ucos怎麼編程

發布時間:2023-04-07 08:35:02

1. STM32單片機 ucos這個東西要怎麼學啊

有STM32基礎的話不難 推薦看邵貝貝的書 網上有電子版的 想結合實際工程 可以看北航出版社出版的《嵌入式實時操作系統uc/os-ii經典實例》
希望對你有幫助

2. ucos原理

ucos-ii是一個可剝奪型內核的實時操作系統,以stm32來說,使用系統滴答定時器,定時產生一個時鍾節拍,來推動任務的調度,管理,切換等。

關於系統大概的運行原理
2.當產生一個時鍾節拍時,如果有比當前運行任務優先順序更高的任務就緒,那麼優先順序(「優先順序」為0時優先順序最高)高的任務搶佔CPU,CPU保存現場環境,放入該任務堆棧中。再將優先順序高的任務的堆棧中的現場環境取出來,寫入CPU寄存器中。(CPU中的寄存器暫時還沒有仔細去研究)。當這個任務執行進入延時,或是要等待某個時間或者信號量。那麼它將放棄CPU的使用權,系統會從任務就緒表中,把優先順序最高的且就緒狀態的任務賦予CPU的使用權。至此來推動整個系統,調度所有的任務。

不發生中斷時UCOS系統時間與任務的切換
①.假設當前運行的任務是低優先順序的任務,CPU程序寄存器中存在的一些寄存器都是低優先順序的任務

②當程序運行到檢測到高優先順序的任務進入就緒狀態的時候,此時CPU發送一些命令,把CPU當前的一些程序寄存器的內容復制到低優先順序任務的堆棧中。也就是1過程。

③.此時通過剛剛的就緒表的機制,可以從程序中得到最高優先順序的任務,也就是2過程=

④.最後的過程3就是把剛剛的高優先順序任務的堆棧指針復制到CPU的程序寄存器當中,實現任務的切換。

當有中斷時,UCOS系統的執行原理
當程序正在執行一個中斷服務函數時,發生一個系統滴答中斷,因為系統滴答定時器的優先順序高,所以會中斷這個中斷服務函數執行任務切換。而有些時候,中斷時不能延時的。例如接收數據時,會發生接收錯誤。造成嚴重的後果。

這時,就有下圖中的操作,可以避免。

PendSV異常(我稱它為中斷)編程為最低的優先順序中斷。如果某個中斷正在執行,而系統滴答搶佔了它,那麼這個中斷將懸起一個PendSV中斷,來緩期執行任務切換。

UCOS的任務切換時間可以在os_cfg.h中去設置OS_TICKS_PER_SEC宏UCOS任務數等配置也可以在該文件中去尋找。

UCOS-II主要提供服務
內存管理
多任務管理
外圍資源管理

關於Make 與編譯
書中有講這一塊,所以我也記錄下我的理解
由於我平時都用keil這樣的集成開發環境,之前也有學習過一段時間的linux,但是對編譯,makefile這些理解的還是不是很好。
編輯makefile 來將源文件和包含的頭文件編譯成需要的.obj文件,然後再將這些.obj文件鏈接成,想要生成的程序。關於makefile好像每一種編譯器都有自己的makefile規則和命令,因為以前學習GCC編譯器和現在書上看到的BCC編譯器寫的makefile好像不太一樣。我也沒有去深究。
所以還是集成開發環境好,工具還是怎麼方便怎麼來。需要學習的原理的時候再去理解,實際的應用中用自己寫的Makefile去編譯文件怕是石樂志哦。

UCOS的任務
任務三要素(我理解的)
任務控制塊
OSTaskCreate((void()(void))start_task,
//任務函數
(void*)0,
//傳遞給任務函數的參數
(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],
//任務堆棧的棧頂
(INT8U)START_TASK_PRIO,
//任務的優先順序

主要包含了任務的棧頂地址,
如果處理器的堆棧是高地址向下生長的那麼棧頂地址

3. 嵌入式ucos2 是軟體 還是一段源代碼 拷到keil裡面就是了。 老師讓自己回去看。。一點頭緒都沒有。。。

ucos2即抄 ucos_II 它是一堆程序代碼,它的源代碼是完全開放的,也就是說在網上能免費下載到這些程序代碼,這些源代碼不針對特定的晶元CPU,可以在很多晶元上運行。它是一個完整的整體,能實現任務新建、任務處理、任務切換等等功能,

在Keil編設環境下使用ucos_II:
1、首先電腦上要有ucos_II的源代碼;
2、然後,最簡單的可以用Add Files to Group將ucos_ii的C文件添加到工程中。

建議:ucos_ii的源代碼最好復制到工程文件夾中再添加。

另:關於在工程中應用ucos_ii,還有很多其他應注意的地方。你確實需要一本書或其他更詳細的資料。

閱讀全文

與ucos怎麼編程相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接