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






继续往下走一步:


此时的内存:

往下执行一步:

此时的内存为:





堆栈的类型是 ,向下生长。
(稍后补充)
本文深入解析了ARM汇编指令在uC/OS-II实时操作系统中的应用,详细介绍了任务上下文切换、异常处理等关键操作的内存布局与实现机制。通过具体实例,分析了任务创建时栈空间的分配与使用情况,为理解嵌入式系统底层原理提供了有价值的参考。
338

被折叠的 条评论
为什么被折叠?



