0 汇编指令参考:
20071230123408_常用ARM指令集及汇编v1.0.12发行文档.pdf
1 变量地址
Nu_LB_NUC140_UCOSII_LED\project\KEIL\lst\Nu-LB-NUC140_UCOSII_LED.map
os_cpu_a.asm 中
__OS_CPU_CtxSw
DCD OS_CPU_CtxSw
__OS_CPU_ExceptStkBase
DCD OS_CPU_ExceptStkBase
__OS_CPU_ExceptHndlr
DCD OS_CPU_ExceptHndlr
__OS_TaskSwHook
DCD OSTaskSwHook
__OS_IntExit
DCD OSIntExit
__OS_IntNesting
DCD OSIntNesting
__OS_PrioCur
DCD OSPrioCur
__OS_PrioHighRdy
DCD OSPrioHighRdy
__OS_Running
DCD OSRunning
__OS_TCBCur
DCD OSTCBCur
__OS_TCBHighRdy
DCD OSTCBHighRdy
汇编解析:OSStartHighRdy
OS_EXT OS_TCB *OSTCBHighRdy;
运行分析:OSStartHighRdy
0x20000264 = 0x200000a8 +
typedef unsigned int OS_STK;
OSTaskCreate(Task1, (void *)0, (OS_STK *)&Task1_Stack[STACKSIZE-1], Task1_Prio);
#define STACKSIZE 128
OS_STK Task1_Stack[STACKSIZE];
0x20000264 - 0x200000a8 = 444
444/4 = 111
128 -111 = 17
内存地址的范围为: 0x2000 00a8 ------ 0x2000 02A4
继续往下走一步:
此时的内存:
往下执行一步:
此时的内存为:
堆栈的类型是 ,向下生长。
(稍后补充)