From 5d34207134307630fe8cbb5128ceee16604cba0f Mon Sep 17 00:00:00 2001 From: Danny <179722984+DanielProano@users.noreply.github.com> Date: Fri, 10 Jul 2026 23:20:29 -0400 Subject: [PATCH 1/3] Better gpio init --- examples/blinky/main.c | 1 - examples/rtos_demo/main.c | 1 - src/hal/stm32f401/src/gpio.c | 4 ++++ src/hal/stm32f401/src/rcc.c | 4 ---- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/blinky/main.c b/examples/blinky/main.c index 7ca982b..7939657 100644 --- a/examples/blinky/main.c +++ b/examples/blinky/main.c @@ -5,7 +5,6 @@ int main(void) { fpu_init(); rcc_init(); - rcc_enable_gpioc(); gpio_init_pc13(); nvic_init(); diff --git a/examples/rtos_demo/main.c b/examples/rtos_demo/main.c index 345b5b7..8928a7d 100644 --- a/examples/rtos_demo/main.c +++ b/examples/rtos_demo/main.c @@ -11,7 +11,6 @@ void task_two(void); int main(void) { fpu_init(); rcc_init(); - rcc_enable_gpioc(); gpio_init_pc13(); task_create(&task_one, 1, "task one"); 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 From 01cb99710a40e143cc2cc0dcb8eefb738a1fd267 Mon Sep 17 00:00:00 2001 From: Danny <179722984+DanielProano@users.noreply.github.com> Date: Fri, 10 Jul 2026 23:31:30 -0400 Subject: [PATCH 2/3] nvic --- examples/rtos_demo/main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/rtos_demo/main.c b/examples/rtos_demo/main.c index 8928a7d..0a195ad 100644 --- a/examples/rtos_demo/main.c +++ b/examples/rtos_demo/main.c @@ -1,5 +1,6 @@ #include "gpio.h" #include "hal.h" +#include "nvic.h" #include "task.h" #include "scheduler.h" #include "fault_indicator.h" @@ -12,6 +13,7 @@ int main(void) { fpu_init(); rcc_init(); gpio_init_pc13(); + nvic_init(); task_create(&task_one, 1, "task one"); task_create(&task_two, 2, "task two"); From cf04976793f187c766577abacf3479c05e147936 Mon Sep 17 00:00:00 2001 From: Danny <179722984+DanielProano@users.noreply.github.com> Date: Fri, 10 Jul 2026 23:38:12 -0400 Subject: [PATCH 3/3] fix names --- examples/blinky/CMakeLists.txt | 2 +- examples/rtos_demo/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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/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