SAME54P20A Test Project
core.c
1 #include "core.h"
2 #include "clocks.h"
3 #include "memory.h"
4 
5 void mcu_init(void)
6 {
7  // nvm init
8  mem_nvm_init();
9  // osc32k init
10  clock_osc32k_init();
11 
12  // osc init
13  clock_osc_init();
14 
15  clock_dfll_init();
16 
17  clock_dpll_init();
18 
19  // master clock init
20  clock_mclk_init();
21 
22  // generators init
23  clock_gclk_init();
24 
25  // dma init
26  mem_dma_init();
27 
28  // port event init
29 
30  // cache init
31  mem_cache_init();
32 }
33 
34 void atomic_enter_critical(uint32_t volatile* atomic)
35 {
36  *atomic = __get_PRIMASK();
37  __disable_irq();
38  __DMB();
39 }
40 
41 void atomic_leave_critical(uint32_t volatile* atomic)
42 {
43  __DMB();
44  __set_PRIMASK(*atomic);
45 }