FreeRTOS port on GAP8/RISC-V
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
system_gap9.c File Reference

Functions

void system_init (void)
 Setup the microcontroller system. More...
 
void system_setup_systick (uint32_t tick_rate_hz)
 Setup timer used for SysTick. More...
 
void system_core_clock_update (uint32_t new_freq)
 Update the SystemCoreClock variable. More...
 
uint32_t system_core_clock_get (void)
 Get current SystemCoreClock value. More...
 
void system_usermode_entry (void *arg)
 Prologue for usermode thread. More...
 
void system_exit (int32_t code)
 Stop execution. More...
 

Variables

char __heapfcram_start
 
char __heapfcram_size
 
char __heapl2ram_start
 
char __heapl2ram_size
 
volatile uint32_t SystemCoreClock
 System clock frequency (core clock) More...
 
static volatile uint32_t tick_rate
 

Function Documentation

uint32_t system_core_clock_get ( void  )
void system_core_clock_update ( uint32_t  new_freq)

It must be called whenever the CPU frequency is changed during execution. This function updates SystemCoreClock variable according to current CPU frequency.

Parameters
new_freqNew SoC frequence.

References timer_cfg_u::enable, timer_cfg_u::field, timer_cfg_u::irq_en, timer_cfg_u::mode, pi_timer_conf_init(), pi_timer_init(), pi_timer_stop(), timer_cfg_u::reset, SYS_TIMER, SystemCoreClock, and tick_rate.

Referenced by pi_fll_frequency_set().

void system_exit ( int32_t  code)
void system_init ( void  )
void system_setup_systick ( uint32_t  tick_rate_hz)

This function sets up low timer for a given tick rate.

Parameters
tick_rate_hzTick rate of SysTick timer.

References timer_cfg_u::enable, timer_cfg_u::field, timer_cfg_u::irq_en, timer_cfg_u::mode, NVIC_EnableIRQ, pi_timer_conf_init(), pi_timer_init(), timer_cfg_u::reset, SYS_TIMER, SystemCoreClock, SYSTICK_IRQN, and tick_rate.

Referenced by prvSetupTimerInterrupt().

void system_usermode_entry ( void *  arg)

This function is called at the beginig of user threads. It harvest arguments to launch the user thread, free temp structs and drop privileges before executing the actual user thread.

References pi_user_task_arg_t::arg, ECALL_PRIV_DROP, pi_user_task_arg_t::entry, hal_compiler_barrier(), pi_fc_l1_free(), and syscall().

Referenced by __os_native_api_create_user_task().

Variable Documentation

char __heapfcram_size
char __heapfcram_start
char __heapl2ram_size
char __heapl2ram_start
volatile uint32_t SystemCoreClock

The system clock frequency supplied to the SysTick timer and the processor core clock. This variable can be used by the user application to setup the SysTick timer or configure other parameters. It may also be used by debugger to query the frequency of the debug timer or configure the trace clock speed SystemCoreClock is initialized with a correct predefined value.

Referenced by system_core_clock_get(), system_core_clock_update(), and system_setup_systick().

volatile uint32_t tick_rate
static