📄 mmupcb.s
字号:
@ ; *******************************************************
@ ; * Simple Little Operating System - SLOS
@ ; *******************************************************
@ ; *******************************************************
@ ; *
@ ; * -----------------------------------------------------
@ ; * NOTE: This file is automatically generated
@ ; * -----------------------------------------------------
@ ; *
@ ; * Project : mmuSLOS
@ ; * Version : 0.03
@ ; * Originator : Andrew N. Sloss
@ ; *
@ ; *******************************************************
.global MmuPCB_CurrentTask
.global MmuPCB_Table
.global MmuPCB_IRQStack
.global MmuPCB_PtrCurrentTask
.global MmuPCB_PtrNextTask
.global MmuPCB_PtrTask1
.global MmuPCB_BottomTask1
.global MmuPCB_RegionTable1
.global MmuPCB_PtrTask2
.global MmuPCB_BottomTask2
.global MmuPCB_RegionTable2
.global MmuPCB_PtrTask3
.global MmuPCB_BottomTask3
.global MmuPCB_RegionTable3
.global pcbSetUp
@ ; -- pcbSetUp ----------------------------------------------------------------
@ ;
@ ; Description : PCB setup
@ ;
@ ; Parameters : r0=<thread entry address>
@ ; r1=<PCB Address>
@ ; r2=<stack address>
@ ; Return : setup PCB
@ ; Notes :
@ ;
pcbSetUp:
STR r0,[r1,#-4] @ ; PCB[-4]=C_TaskEntry<2>
STR r0,[r1,#-64] @ ; PCB[-64]=C_TaskEntry<2>
STR r2,[r1,#-8] @ ; PCB[-8]=<stack address>
MOV r0,#0x50
STR r0,[r1,#-68] @ ; PCB[-68]=iFt_User
MOV pc,lr
MmuPCB_Table:
.word MmuPCB_PtrTask1
.word MmuPCB_PtrTask2
.word MmuPCB_PtrTask3
MmuPCB_IRQStack:
.word 0x9000 @ ; real value
MmuPCB_PtrCurrentTask:
.word 0x1
MmuPCB_PtrNextTask:
.word 0x1
MmuPCB_CurrentTask:
.word 0x1
@ ; -------------------------------------------------------
@ ; Task(1): Full MMU PCB
@ ; mmupcb
@ ; {
@ ; PCB
@ ; RegionTable
@ ; }
@ ; -------------------------------------------------------
MmuPCB_BottomTask1:
.skip 72
MmuPCB_PtrTask1:
MmuPCB_RegionTable1:
.word 0x400000 @ ; virtual base address
.word 8 @ ; Virtual address (page size 8x4k=32k)
.word (3<<4)+(3) @ ; permissions (RWXRWX)
.word 6 @ ; CWT
.word 1 @ ; ACTIVE
.word 0x3c400 @ ; L2 Base Page Table Address
.word 1 @ ; Coarse Ganuality (=4k)
.word 0x03 @ ; DOM
.word 0x50000 @ ; Physical Address
.word 0x20000 @ ; Load Address
@ ; -------------------------------------------------------
@ ; Task(2): Full MMU PCB
@ ; mmupcb
@ ; {
@ ; PCB
@ ; RegionTable
@ ; }
@ ; -------------------------------------------------------
MmuPCB_BottomTask2:
.skip 72
MmuPCB_PtrTask2:
MmuPCB_RegionTable2:
.word 0x400000 @ ; virtual base address
.word 8 @ ; Virtual address (page size 8x4k=32k)
.word (3<<4)+(3) @ ; permissions (RWXRWX)
.word 6 @ ; CWT
.word 1 @ ; ACTIVE
.word 0x3c800 @ ; L2 Base Page Table Address
.word 1 @ ; Coarse Ganuality (=4k)
.word 0x03 @ ; DOM
.word 0x58000 @ ; Physical Address
.word 0x28000 @ ; Load Address
@ ; -------------------------------------------------------
@ ; Task(3): Full MMU PCB
@ ; mmupcb
@ ; {
@ ; PCB
@ ; RegionTable
@ ; }
@ ; -------------------------------------------------------
MmuPCB_BottomTask3:
.skip 72
MmuPCB_PtrTask3:
MmuPCB_RegionTable3:
.word 0x400000 @ ; virtual base address
.word 8 @ ; Virtual address (page size 8x4k=32k)
.word (3<<4)+(3) @ ; permissions (RWXRWX)
.word 6 @ ; CWT
.word 1 @ ; ACTIVE
.word 0x3cc00 @ ; L2 Base Page Table Address
.word 1 @ ; Coarse Ganuality (=4k)
.word 0x03 @ ; DOM
.word 0x60000 @ ; Physical Address
.word 0x30000 @; Load Address
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -