學習ARM開發 23

2021-04-02 23:28:02 字數 1241 閱讀 6945

三個任務準備與執行結果

下來看看建立任務和任運的棧空間怎麼樣的,以及執行輸出。

made in china by ucsdn(caijunsheng)

lichee 1.0.0 (mar 12 2006 - 20:51:12)

lichee rtos code: 0c100000 -> 0c1021ecbss: -> 0c102228

上面這句說明執行**開始位置和結束位置,以及全域性資料的結束位置。

init finish!

這裡就是初始化任務完成。

ptask=c102234

這裡就分配第乙個

idle

任務記憶體位置。

ptask->pstackstart=c10225c

這個是任務的棧底的位置。

ptask->pstacktop=c10229c

這個是任務的棧頂位置。

ptask->pstacktop=c10225c

這裡壓入

16個暫存器後棧位置。

head

這裡新增到雙向煉表頭。

taskidle finish

idle

任務初始化完成。

以下是任務一初始化:

ptask=c1022a8

ptask->pstackstart=c1022d0

ptask->pstacktop=c102310

ptask->pstacktop=c1022d0

tail

tasktest1 finish

以下是任務二初始化:

ptask=c10231c

ptask->pstackstart=c102344

ptask->pstacktop=c102384

ptask->pstacktop=c102344

tail

tasktest2 finish

所有任務建立完成。

task create finish

從第乙個任務開始執行。

g_pcurrenttask = c102234

以後是執行任務輸出:

taskidle

tasktest1

tasktest2

tasktest1

tasktest2

tasktest1

tasktest2

tasktest1

tasktest2

tasktest1

tasktest2

學習ARM開發20 21

學習arm開發 20 os的任務切換 有了前面的tick中斷,那麼基本的任務切換條件已經是 萬事俱備,只欠東風 了。不過,這個 東風 也是很難搞得懂的,只有不斷地通過實踐才會找到合適的方法。現在我就需要去找這個東風了,就是解決不同的任務切換的問題。從簡單到複雜,這是任何事物的認識過程,也是行之有效的...

學習ARM開發 5

學習arm開發 5 蔡軍生 2005 07 16 寫於深圳 上一次說到要學習uboot的 但在看之前,首先要知道目標機器的程式設計資源,這裡的資源,是指s3c44b0所提供的執行程式的資源,對任何嵌入式軟體開發,都首先要對硬體有乙個很好的了解,這跟pc機的程式設計是大不一樣的。因為pc機都已經發展了...

學習ARM開發 9

學習arm開發 9 上一次把引導的彙編看完,已經準備c的執行環境,下面就開始學習c的源程式,從start.s檔案裡到跳檔案 lib arm board.c裡執行.引導程式從彙編start.s裡跳到這裡執行。蔡軍生 2005 07 19 void start armboot void 宣告乙個全域性指...