diff --git a/boards/pic32-clicker/clicker.c b/boards/pic32-clicker/clicker.c index f67273e860ca90c4f4cc4471d46119982ffe2286..1146ff79b23e261388236374f5afe6f9c678001a 100644 --- a/boards/pic32-clicker/clicker.c +++ b/boards/pic32-clicker/clicker.c @@ -13,6 +13,7 @@ #include "periph/uart.h" #include "bitarithm.h" #include "board.h" +#include "cpu.h" extern void dummy(void); @@ -36,6 +37,9 @@ void board_init(void) LED1_OFF; LED2_OFF; + /* initialize the CPU */ + cpu_init(); + /* Stop the linker from throwing away the PIC32 config register settings */ dummy(); } diff --git a/boards/pic32-wifire/wifire.c b/boards/pic32-wifire/wifire.c index e373a34249e589891f5f371bd129f76ffb539ade..9fe3b221a8bf30925d579528b19831efa5ea6d8f 100644 --- a/boards/pic32-wifire/wifire.c +++ b/boards/pic32-wifire/wifire.c @@ -15,6 +15,7 @@ #include "periph/uart.h" #include "bitarithm.h" #include "board.h" +#include "cpu.h" extern void dummy(void); @@ -32,8 +33,6 @@ void board_init(void) uart_init(DEBUG_VIA_UART, DEBUG_UART_BAUD, NULL, 0); #endif - hwrng_init(); - /* Turn off all LED's */ gpio_init(LED1_PIN, GPIO_OUT); gpio_init(LED2_PIN, GPIO_OUT); @@ -44,6 +43,9 @@ void board_init(void) LED3_OFF; LED4_OFF; + /* initialize the CPU */ + cpu_init(); + /* Stop the linker from throwing away the PIC32 config register settings */ dummy(); } diff --git a/cpu/mips32r2_common/cpu.c b/cpu/mips32r2_common/cpu.c index 2cef4c9c404a2aee43f7f2e03def9bb62e0eb009..d2483cbc1cea4230564a6a208b0d871b4baa124c 100644 --- a/cpu/mips32r2_common/cpu.c +++ b/cpu/mips32r2_common/cpu.c @@ -15,11 +15,13 @@ #include "periph/uart.h" #include "periph/timer.h" +#include "periph/init.h" #include "panic.h" #include "kernel_init.h" #include "cpu.h" #include "board.h" + void mips_start(void); extern void _fini(void); @@ -71,3 +73,9 @@ void panic_arch(void) while (1) { } } + +void cpu_init(void) +{ + /* trigger static peripheral initialization */ + periph_init(); +} diff --git a/cpu/mips_pic32_common/Makefile.include b/cpu/mips_pic32_common/Makefile.include index 7d26555c6731ab74f39c7496d9848a0a388223a2..e0582db5dd7edd4b17a2e72d2f32b2b82f47614f 100644 --- a/cpu/mips_pic32_common/Makefile.include +++ b/cpu/mips_pic32_common/Makefile.include @@ -6,4 +6,3 @@ USEMODULE += mips_pic32_common USEMODULE += mips_pic32_common_periph USEMODULE += periph_common -USEMODULE += periph_hwrng diff --git a/cpu/mips_pic32mx/include/cpu.h b/cpu/mips_pic32mx/include/cpu.h index 45e64c4dbcec17f0e284aa467ec95eb1facc4a1c..3ebc445ed4d9948f3241de236a52997e7fd671f5 100644 --- a/cpu/mips_pic32mx/include/cpu.h +++ b/cpu/mips_pic32mx/include/cpu.h @@ -47,6 +47,11 @@ static inline void cpu_print_last_instruction(void) /* This function must exist else RIOT won't compile */ } +/** + * @brief Initialize the CPU, set IRQ priorities + */ +void cpu_init(void); + #ifdef __cplusplus } #endif diff --git a/cpu/mips_pic32mz/include/cpu.h b/cpu/mips_pic32mz/include/cpu.h index e2ca23db66bcbdee59da10e7b2acaa342fcd0134..963398c7ece5cb1d01a77dcd33c2850a26c57859 100644 --- a/cpu/mips_pic32mz/include/cpu.h +++ b/cpu/mips_pic32mz/include/cpu.h @@ -47,6 +47,11 @@ static inline void cpu_print_last_instruction(void) /* This function must exist else RIOT won't compile */ } +/** + * @brief Initialize the CPU, set IRQ priorities + */ +void cpu_init(void); + #ifdef __cplusplus } #endif