diff --git a/examples/blinky/CMakeLists.txt b/examples/blinky/CMakeLists.txt index 15fbdf4..fa5730a 100644 --- a/examples/blinky/CMakeLists.txt +++ b/examples/blinky/CMakeLists.txt @@ -1,4 +1,4 @@ -add_executable(blinky main.c ${CMAKE_SOURCE_DIR}/startup/startup_stm32f401.c) +add_executable(blinky main.c ${CMAKE_SOURCE_DIR}/startup/stm32f401.c) target_link_libraries(blinky hal_stm32f401 diff --git a/examples/blinky/main.c b/examples/blinky/main.c index cb853fe..797403a 100644 --- a/examples/blinky/main.c +++ b/examples/blinky/main.c @@ -7,7 +7,6 @@ int main(void) { fpu_init(); rcc_init(); - rcc_enable_gpioc(); gpio_init_pc13(); while (1) { diff --git a/examples/rtos_demo/CMakeLists.txt b/examples/rtos_demo/CMakeLists.txt index b5b25d1..b081b64 100644 --- a/examples/rtos_demo/CMakeLists.txt +++ b/examples/rtos_demo/CMakeLists.txt @@ -1,4 +1,4 @@ -add_executable(rtos_demo main.c ${CMAKE_SOURCE_DIR}/startup/startup_stm32f401.c) +add_executable(rtos_demo main.c ${CMAKE_SOURCE_DIR}/startup/stm32f401.c) target_link_libraries(rtos_demo hal_stm32f401 diff --git a/examples/rtos_demo/main.c b/examples/rtos_demo/main.c index 140432d..42b9724 100644 --- a/examples/rtos_demo/main.c +++ b/examples/rtos_demo/main.c @@ -1,6 +1,7 @@ #include "gpio.h" #include "rcc.h" #include "fpu.h" +#include "nvic.h" #include "scheduler.h" #include "fault_indicator.h" #include @@ -11,8 +12,8 @@ void task_two(void); int main(void) { fpu_init(); rcc_init(); - rcc_enable_gpioc(); gpio_init_pc13(); + nvic_init(); task_create(&task_one, 1, "task one"); task_create(&task_two, 2, "task two"); diff --git a/src/hal/stm32f401/src/gpio.c b/src/hal/stm32f401/src/gpio.c index e24f121..2538faf 100644 --- a/src/hal/stm32f401/src/gpio.c +++ b/src/hal/stm32f401/src/gpio.c @@ -6,9 +6,13 @@ Moder configs whether pin is input, output, ect. */ void gpio_init_pc13(void) { + /*Turn on the clock for the GPIO C port*/ + RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; + /* Reset */ GPIOC->MODER &= ~(3U << 26); + /* Configure pin functionality (in this case as output) */ uint32_t enable_output_mode = 1U << 26; GPIOC->MODER |= enable_output_mode; } diff --git a/src/hal/stm32f401/src/rcc.c b/src/hal/stm32f401/src/rcc.c index 2c66ddd..e806a3e 100644 --- a/src/hal/stm32f401/src/rcc.c +++ b/src/hal/stm32f401/src/rcc.c @@ -60,8 +60,4 @@ void rcc_init(void) { /* Wait for System Clock Switch*/ while((RCC->CFGR & RCC_CFGR_SWS_Msk) != (2U << RCC_CFGR_SWS_Pos)); -} - -void rcc_enable_gpioc(void) { - RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; } \ No newline at end of file