pcb.s
来自「这是一个基于C的操作系统的开发实现,借助的是OS设计思想,以用一些最为关键的技术」· S 代码 · 共 85 行
S
85 行
@ ****************************************************************************
@ * Simple Little Operating System - SLOS
@ ****************************************************************************
@ ****************************************************************************
@ *
@ * Module : pcb.s
@ * Project : SLOS
@ * Version : 0.09
@ * Originator : Andrew N. Sloss
@ * History :
@ *
@ * 16th July 2003 Andrew N. Sloss
@ * - added header information
@ *
@ ****************************************************************************
.text
.code 32
.align 0
.global pcbSetup
.global PCB_CurrentTask
.global PCB_Table
.global PCB_TopOfIRQStack
.global PCB_PtrCurrentTask
.global PCB_PtrNextTask
.global PCB_PtrTask1
.global PCB_BottomTask1
.global PCB_PtrTask2
.global PCB_BottomTask2
.global PCB_PtrTask3
.global PCB_BottomTask3
.global pcbSetUp
/*
@ -- pcbSetup ----------------------------------------------------------------
;
@ Description : PCB setup
;
@ Parameters : r0=<thread entry address>
@ r1=<PCB Address>
@ r2=stack offset
@ Return : setup PCB
@ Notes : pcbSetUp (UINT *threadEntry,UINT *pcbAddress, UINT *stack)2
;
*/
pcbSetUp:
STR r0,[r1,#-4]
STR r0,[r1,#-64]
STR r2,[r1,#-8]
MOV r0,#0x50
STR r0,[r1,#-68]
MOV pc,lr
PCB_Table:
.word PCB_PtrTask1
.word PCB_PtrTask2
.word PCB_PtrTask3
PCB_TopOfIRQStack:
.word 0x9000
PCB_PtrCurrentTask:
.word 0x1
PCB_PtrNextTask:
.word 0x1
PCB_CurrentTask:
.word 0x0
PCB_BottomTask1:
.skip 68
PCB_PtrTask1:
PCB_BottomTask2:
.skip 68
PCB_PtrTask2:
PCB_BottomTask3:
.skip 68
PCB_PtrTask3:
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?