三個任務準備與執行結果
下來看看建立任務和任運的棧空間怎麼樣的,以及執行輸出。
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 宣告乙個全域性指...