FreeRTOS port on GAP8/RISC-V
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
system_gap9.h 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

volatile uint32_t SystemCoreClock
 System clock frequency (core clock) More...
 

Function Documentation

uint32_t system_core_clock_get ( void  )
Returns
Current core frequency.

References SystemCoreClock.

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.

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.

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().

Variable Documentation

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.