Changeset 742 for soft/giet_vm/giet_kernel
- Timestamp:
- Dec 10, 2015, 1:38:43 PM (9 years ago)
- Location:
- soft/giet_vm/giet_kernel
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_kernel/giet.s
r346 r742 1 1 /************************************************************************************ 2 * GIET: Interruption/Exception/Trap Handler for MIPS32 processor 2 * This file contains the two entry points in the GIET_VM code: 3 * - the _init entry point (from the boot code) is 0x80000000 4 * - the _giet entry point (from user applications) is 0x80000180 5 * => The base address of the segment containing this code MUST be 0x80000000. 3 6 * 4 * The base address of the segment containing this code MUST be 0x80000000, in 5 * order to have the entry point at address 0x80000180!!! All messages are 6 * printed on the TTY corresponding to the task&processor identifiers. 7 * 8 * It uses two arrays of functions: 7 * The _giet uses two arrays of functions: 9 8 * - the _cause_vector[16] array defines the 16 causes to enter the GIET 10 9 * it is initialized in th exc_handler.c file … … 14 13 15 14 .section .giet, "ax", @progbits 16 .space 0x180 15 16 /* 17 * INIT entry point (at address 0x80000000) 18 */ 19 20 .func _init 21 .type _init, %function 22 23 _init: 24 la $26, _kernel_init 25 jr $26 /* jump to _kernel_init */ 26 27 .endfunc 28 .size _init, .-_init 29 30 .space 0x170 /* the _entry function occupies 16 bytes */ 17 31 18 32 /* … … 29 43 addu $26, $26, $27 /* $26 <= &_cause_vector[XCODE] */ 30 44 lw $26, ($26) /* $26 <= _cause_vector[XCODE] */ 31 jr $26 /* Jump indexed by XCODE */45 jr $26 /* Jump to handler indexed by XCODE */ 32 46 33 47 .endfunc … … 35 49 36 50 /* 37 * *** Sys tem Call Handler ***51 * *** Syscall Handler *** 38 52 * 39 53 * A system call is handled as a special function call. -
soft/giet_vm/giet_kernel/kernel.ld
r516 r742 16 16 { 17 17 *(.giet) 18 *(.kinit) 18 19 *(.text) 19 20 } … … 24 25 *(.kdata) 25 26 } 26 27 . = kernel_init_vbase;28 seg_kernel_init :29 {30 *(.kinit)31 }32 27 } 33 28 -
soft/giet_vm/giet_kernel/kernel_init.c
r725 r742 137 137 138 138 //////////////////////////////////////////////////////////////////////////////// 139 // This kernel_init() function completes the kernel initialisation in 5 steps:139 // This _kernel_init() function completes the kernel initialisation in 5 steps: 140 140 // Step 0 is done by processor[0,0,0]. Steps 1 to 4 are executed in parallel 141 141 // by all processors. … … 146 146 // - step 4 : Each processor set sp, sr, ptpr, epc registers values. 147 147 //////////////////////////////////////////////////////////////////////////////// 148 __attribute__((section (".kinit"))) void kernel_init()148 __attribute__((section (".kinit"))) void _kernel_init() 149 149 { 150 150 // gpid : hardware processor index (fixed format: X_WIDTH|Y_WIDTH|P_WIDTH)
Note: See TracChangeset
for help on using the changeset viewer.