Changes between Version 61 and Version 62 of WikiStart
- Timestamp:
- Nov 5, 2014, 5:31:55 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v61 v62 18 18 Both the target hardware architecture and the mapping directives (placement of software tasks on the physical processors / placement of the software objects on the physical memory banks) must be described in a python script. This section describes the Python constructs used to describe the mapping. This python script generates the ''map.bin'' C binary file, that is used by the boot-loader to initialise the system. 19 19 20 == __B) [wiki:boot_loader Boot -loader]__ ==20 == __B) [wiki:boot_loader Boot Procedure]__ == 21 21 22 The boot -loader code is loaded in the physical memory bank of cluster(0,0) by the generic ''reset'' code (hard-coded in the external ROM).22 The boot procedure is done in three phases: The boot-loader code is loaded in the physical memory bank of cluster(0,0) by the generic ''reset'' code (hard-coded in the external ROM). 23 23 The boot-loader load the ''map.bin'' file, build the page tables as specified in the mapping (one page table per virtual space), activates the MMU for all processors, initializes the distributed schedulers (one scheduler per processor), initializes the external (non replicated) peripherals, and load the kernel code, as well as the user application(s) code. 24 24 When this is done, each processor jumps to the GIET_VM ''kernel_init()'' function that completes the kernel initialisation. 25 25 26 == __C) [wiki:kernel_init Kernel Initialisation]__ == 27 28 == __D) [wiki:common_functions Boot & Kernel common functions]__ == 26 == __C) [wiki:common_functions Kernel Utility functions]__ == 29 27 30 28 Here are presented the utility functions that can be used by both the bootloader (in the boot phase), and by the kernel (in the execution phase). 31 29 32 == __E) [wiki:kernel_functions Kernel functions]__ == 30 == __D) [wiki:kernel_functions Kernel functions]__ == 31 32 Here are presented the main services provided by the GIET_VM in the execution phase: the syscall handler, the interrupt handler, the exception handler, and the context switch handler. 33 33 34 34 == __F) [wiki:library_stdio System calls]__ == 35 35 36 Here are presented all the C functions that can be used by an user application (in the execution phase) to require a service to the operating system. All these functions contain a ''syscall'' instruction that force the processor to enter the kernel mode. 37 36 38 == __G) [wiki:user_libraries User level libraries]__ == 39 40 Here are presented various libraries of C functions that can be used by an user application for synchronization, inter-task communications, or for dynamic memory allocation. 41 All these services are provided at user level, and do not require the processor to enter the kernel mode. 37 42 38 43 == __B) [wiki:peripherals_drivers Peripherals Drivers]__ == 39 44 45 This section defines the software drivers APIs for the peripherals supported by he GIET_VM. 46 47