📄 inittaskstk.s
字号:
;*********************************************************************
;* Copyright (c) 2011-2012,李士伟
;* All rights reserved.
;*文 件 名:InitTaskStk.s
;*描 述:任务堆栈初始化
;*当前版本:V1.00
;*作 者:李士伟
;*创建日期:2011.12.29
;*********************************************************************
EXPORT __OS_InitTaskStk
CODE32
PRESERVE8
AREA InitStk, CODE, READONLY
;*********************************************************************
;*函 数 名:__OS_InitTaskStk
;*描 述:初始化任务栈
;*输入参数:R0: 任务主函数指针
; R1: 任务主函数参数
; R2: 任务栈底指针
; R3: 任务运行模式CPSR(用户或系统)
;*输出参数:无
;*返 回 值:R0任务栈顶指针
;*注 意:无
;*********************************************************************
__OS_InitTaskStk
; 建立任务环境,使用满递减堆栈
STR R0, [R2, #-4]! ; PC = task main function pointer
STR R0, [R2, #-4]! ; LR = task main function pointer
MOV R0, #0x0
STR R0, [R2, #-4]! ; R12 = 0
STR R0, [R2, #-4]! ; R11 = 0
STR R0, [R2, #-4]! ; R10 = 0
STR R0, [R2, #-4]! ; R9 = 0
STR R0, [R2, #-4]! ; R8 = 0
STR R0, [R2, #-4]! ; R7 = 0
STR R0, [R2, #-4]! ; R6 = 0
STR R0, [R2, #-4]! ; R5 = 0
STR R0, [R2, #-4]! ; R4 = 0
STR R0, [R2, #-4]! ; R3 = 0
STR R0, [R2, #-4]! ; R2 = 0
STR R0, [R2, #-4]! ; R1 = 0
STR R1, [R2, #-4]! ; R0 = 主函数参数
STR R3, [R2, #-4]! ; 保存 CPSR
STR R0, [R2, #-4]! ; OSEnterSum = 0
MOV R0, R2
BX LR
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -