nu-lb-nuc140板子 ucosii 2.86 源码分析(二)

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
继续往下走一步:
在这里插入图片描述

在这里插入图片描述

此时的内存:
在这里插入图片描述

往下执行一步:
在这里插入图片描述

此时的内存为:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

堆栈的类型是 ,向下生长。

(稍后补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值