新手上路
- 积分
- 43
- 金钱
- 43
- 注册时间
- 2019-12-12
- 在线时间
- 9 小时
|

楼主 |
发表于 2022-3-3 22:35:41
|
显示全部楼层
- StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters )
- {
- [color=Red] pxTopOfStack--; [/color] /* 栈顶地址减1,相当于向下移动4个地址 */
- *pxTopOfStack = portINITIAL_XPSR; /* xPSR = 0x01000000,其中bit24被置1,表示使用Thumb指令*/
- pxTopOfStack--;
- *pxTopOfStack = ( ( StackType_t ) pxCode ) & portSTART_ADDRESS_MASK; /* 任务函数指针 */
- pxTopOfStack--;
- *pxTopOfStack = ( StackType_t ) prvTaskExitError; /* LR为函数指针prvTaskExitError,由移植层提供的一个出错处理函数*/
- pxTopOfStack -= 5; /* R12, R3, R2 and R1. */
- *pxTopOfStack = ( StackType_t ) pvParameters; /* R0,此寄存器为传递参数 */
- pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */
- return pxTopOfStack;
- }
复制代码 |
|