Nut/OS  5.0.5
API Reference
cortex_init.c File Reference
#include <cfg/os.h>
#include <cfg/clock.h>
#include <cfg/arch.h>
#include <cfg/memory.h>
#include <arch/cm3.h>
#include <dev/rtc.h>
#include <sys/heap.h>
#include <arch/cm3/cortexM3.h>
#include <arch/cm3/cortex_interrupt.h>
Include dependency graph for cortex_init.c:

Defines

#define MSP_STACK_SIZE   128
#define PSP_STACK_SIZE   32
#define NUT_BOOT_FUNCTION   NutInit

Functions

void NUT_BOOT_FUNCTION (void *)
void Cortex_MemInit (void)
 CortexM3 Initialization.
void Cortex_Start (void)
 CortexM3 Startup.

Variables

void(*const g_pfnVectors [])(void *)
 CortexM3 memory pointers.
void * _etext
 CortexM3 memory pointers.
void * _sidata
void * _sdata
void * _edata
void * _sbss
void * _ebss
void * _pspstack_start
void * _pspstack_end
void * _stack_start
void * _stack_end

Define Documentation

#define MSP_STACK_SIZE   128
#define PSP_STACK_SIZE   32
#define NUT_BOOT_FUNCTION   NutInit

Function Documentation

void NUT_BOOT_FUNCTION ( void *  )
void Cortex_MemInit ( void  )

CortexM3 Initialization.

This function copies over the data segment from flash to ram and fills the bss segment with 0.

References __set_PSP().

Referenced by Cortex_Start().

Here is the call graph for this function:

void Cortex_Start ( void  )

CortexM3 Startup.

This function runs the basic cpu initialization.

References Cortex_IntInit(), and Cortex_MemInit().

Here is the call graph for this function:


Variable Documentation

void(* const g_pfnVectors[])(void *)
Initial value:

{
    (void (*)(void *))((uint32_t)mspStack + sizeof(mspStack)), 
    NUT_BOOT_FUNCTION, 
    IntDefaultHandler, 
    IntDefaultHandler, 
    IntDefaultHandler, 
    IntDefaultHandler, 
    IntDefaultHandler, 
    0,                 
    0,                 
    0,                 
    0,                 
}

CortexM3 memory pointers.

These pointers are provided by the linker, controlled by the linker script. The list is shrinked to the two basic entries of the initial stack pointer address and the reset vector. All other interrupt vectors are set up dynamically later after system start.

Referenced by Cortex_IntInit().

void* _etext

CortexM3 memory pointers.

These pointers are provided by the linker, controlled by the linker script.

void* _sidata
void* _sdata
void* _edata
void* _sbss
void* _ebss
void* _stack_start
void* _stack_end