学习 ARM 开发(23) 三个任务准备与运行结果
下来看看创建任务和任运的栈空间怎么样的,以及运行输出。
Made in china by UCSDN(caijunsheng)
Lichee 1.0.0 (Mar 12 2006 - 20:51:12)
Lichee RTOS code: 0C100000 -> 0C1021EC
BSS: -> 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