实时嵌入式操作系统μC/OS-II在MPC555上的移植(2)
2017-08-13 06:33
导读:MPC555有32个32bit通用定点数寄存器,32个64bit浮点数寄存器,另有9个控制/状态寄存器。针对MPC555的编程结构,设计
MPC555有32个32bit通用定点数寄存器,32个64bit浮点数寄存器,另有9个控制/状态寄存器。针对MPC555的编程结构,设计如表1的堆栈结构。每次任务环境入栈时创建一含73个位置的堆栈,为了保证浮点数寄存器的完整,每个位置为64bit宽。创建任务时,建立该堆栈结构,并用默认值对其进行初始化。在任务保存或激活时把寄存器的值保存到堆栈中相应位置,或者从堆栈的相应位置把寄存器值弹出。其中GPR1被MPC作为堆栈指针SP使用,在堆栈操作时,要注意控制好SP。
表1 堆栈结构表
SP OffsetRegister SavedNUMDefault Value584~336
328
320~80
72
64
56
48
40
32
24
16
8
0FP31~FP0
FPSCR
GPR31~GPR0
DAR
CTX
LR
XER
CR
SRR1
SRR0
MSR
SP(GPR1)
73~42
41
40~10
9
8
7
6
5
4
3
2
1
00.0
0x000020FC0000
0x0
0x00
0x00
task*0x100000000[1]
0x00
0x00
0x0000B00200000000