From eaf0b686aba29f548761575d1903e7bb2a2935a8 Mon Sep 17 00:00:00 2001 From: NaifBanana <30419422+NaifBanana@users.noreply.github.com> Date: Wed, 21 Oct 2026 08:02:20 -0500 Subject: [PATCH] Finally got FreeRTOS working thank FUCK! --- .gitignore | 3 +++ Blinky/CMakeLists.txt | 8 ------- Blinky/main.c | 6 ++--- CMakeLists.txt | 51 ++++++++++++++++++++++++----------------- Listener/CMakeLists.txt | 3 ++- Listener/main.cpp | 5 ++-- Yeller/CMakeLists.txt | 3 ++- Yeller/main.cpp | 4 ++-- 8 files changed, 44 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index 9785597..7d09426 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ build .cache +.nvim +.git +!.git/hooks diff --git a/Blinky/CMakeLists.txt b/Blinky/CMakeLists.txt index e689e7a..b490f95 100644 --- a/Blinky/CMakeLists.txt +++ b/Blinky/CMakeLists.txt @@ -6,20 +6,12 @@ add_executable(${APP_NAME} ./main.c ) -target_include_directories(Blinky - PUBLIC ${FREERTOS_ROOT}/include/ -) - target_link_libraries(Blinky LINK_PUBLIC pico_stdlib FreeRTOS-Kernel FreeRTOS-Kernel-Heap4 ) -get_test_property(FUCKASS Blinky INCLUDE_DIRECTORIES) - -message(STATUS "Includes are ${FUCKASS}") - pico_enable_stdio_usb(${APP_NAME} 1) pico_enable_stdio_uart(${APP_NAME} 0) diff --git a/Blinky/main.c b/Blinky/main.c index 7f1d822..6fbcfa3 100644 --- a/Blinky/main.c +++ b/Blinky/main.c @@ -1,11 +1,11 @@ #include -#include +#include "FreeRTOS.h" #include -void vBlinkTask() { +void vBlinkTask(void* x) { for (;;) { gpio_put(PICO_DEFAULT_LED_PIN, 1); - vTaskDelay(250); + vTaskDelay(500); gpio_put(PICO_DEFAULT_LED_PIN, 0); vTaskDelay(250); } diff --git a/CMakeLists.txt b/CMakeLists.txt index fc38801..405ae10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,43 +5,52 @@ set(PROJECT_NAME "GateOpener") set(PICO_SDK_PATH "C:/Users/naifa/Documents/Projects/Hardware/Microcontroller/SDK/PicoC++/pico-sdk") set(PICO_TOOLCHAIN_PATH "C:/Users/naifa/Documents/Projects/Hardware/Microcontroller/SDK/arm-gnu-toolchain-15.3.rel2-mingw-w64-x86_64-arm-none-eabi" ) -set(FREERTOS_ROOT "C:/Users/naifa/Documents/Projects/Hardware/FreeRTOS-Kernel") +set(FREERTOS_KERNEL_PATH "C:/Users/naifa/Documents/Projects/Hardware/FreeRTOS-Kernel") set(FREERTOS_CFG_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/Config") set(RADIOLIB_PATH "C:/Program Files (x86)/radiolib") -include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake) -include(${FREERTOS_ROOT}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake) set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} - ${FREERTOS_ROOT} + ${FREERTOS_KERNEL_PATH} ${RADIOLIB_PATH} ) +set(FREERTOS_PICO ${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040) + +include(./pico_sdk_import.cmake) -# include(${FREERTOS_ROOT}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake) project(${PROJECT_NAME} VERSION ${VERSION} LANGUAGES CXX C ASM) +include(./FreeRTOS_Kernel_import.cmake) pico_sdk_init() message(STATUS "Pico SDK dir is ${PICO_SDK_PATH}") -message(STATUS "FreeRTOS root is ${FREERTOS_ROOT}") +message(STATUS "FreeRTOS root is ${FREERTOS_KERNEL_PATH}") -# add_library(FreeRTOS STATIC -# ${FREERTOS_ROOT}/event_groups.c -# ${FREERTOS_ROOT}/list.c -# ${FREERTOS_ROOT}/queue.c -# ${FREERTOS_ROOT}/stream_buffer.c -# ${FREERTOS_ROOT}/tasks.c -# ${FREERTOS_ROOT}/timers.c -# ${FREERTOS_ROOT}/portable/MemMang/heap_3.c -# ${FREERTOS_ROOT}/portable/GCC/ARM_CM0/port.c -# ) -# -include_directories(PUBLIC - ${FREERTOS_CFG_DIRECTORY} - ${FREERTOS_ROOT}/include/ - ${FREERTOS_ROOT}/portable/GCC/ARM_CM0/ +include_directories(${FREERTOS_CFG_DIRECTORY}/) +include_directories(SYSTEM AFTER + # ${FREERTOS_PICO} + ${FREERTOS_PICO}/include + ${FREERTOS_KERNEL_PATH}/include + ${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM0 + ${RADIOLIB_PATH}/include ) +add_compile_definitions(configTICK_CORE=0) + +# include(${FREERTOS_PICO}/FreeRTOS_Kernel_import.cmake) +# add_library(FreeRTOS STATIC +# ${FREERTOS_KERNEL_PATH}/event_groups.c +# ${FREERTOS_KERNEL_PATH}/list.c +# ${FREERTOS_KERNEL_PATH}/queue.c +# ${FREERTOS_KERNEL_PATH}/stream_buffer.c +# ${FREERTOS_KERNEL_PATH}/tasks.c +# ${FREERTOS_KERNEL_PATH}/timers.c +# ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_3.c +# # ${FREERTOS_SRC_DIRECTORY}/portable/GCC/ARM_CM0/port.c +# ${FREERTOS_PICO}/port.c +# ) + + add_subdirectory(./Blinky) add_subdirectory(./Listener) add_subdirectory(./Yeller) diff --git a/Listener/CMakeLists.txt b/Listener/CMakeLists.txt index 3fed9d5..8ea7641 100644 --- a/Listener/CMakeLists.txt +++ b/Listener/CMakeLists.txt @@ -8,7 +8,8 @@ add_executable(${APP_NAME} target_link_libraries(${APP_NAME} LINK_PUBLIC pico_stdlib - FreeRTOS + FreeRTOS-Kernel + FreeRTOS-Kernel-Heap4 ) pico_enable_stdio_usb(${APP_NAME} 1) diff --git a/Listener/main.cpp b/Listener/main.cpp index f9234f3..1e0c34f 100644 --- a/Listener/main.cpp +++ b/Listener/main.cpp @@ -1,10 +1,9 @@ -#include "Config/FreeRTOSConfig.h" +#include "FreeRTOSConfig.h" #include "FreeRTOS.h" #include #include #include #include -#include const char NULLCHAR = '\0'; @@ -53,7 +52,7 @@ int main() { stdio_init_all(); int num; int len; - read_buffer = malloc(256 * sizeof(char)); + read_buffer = (char*)malloc(256 * sizeof(char)); while(true) { printf("Give a number: \n"); sleep_ms(50); diff --git a/Yeller/CMakeLists.txt b/Yeller/CMakeLists.txt index 7a4b6e1..296c96a 100644 --- a/Yeller/CMakeLists.txt +++ b/Yeller/CMakeLists.txt @@ -8,7 +8,8 @@ add_executable(${APP_NAME} target_link_libraries(${APP_NAME} LINK_PUBLIC pico_stdlib - FreeRTOS + FreeRTOS-Kernel + FreeRTOS-Kernel-Heap4 ) pico_enable_stdio_usb(${APP_NAME} 1) diff --git a/Yeller/main.cpp b/Yeller/main.cpp index e80280c..8e58418 100644 --- a/Yeller/main.cpp +++ b/Yeller/main.cpp @@ -1,8 +1,8 @@ -#include "Config/FreeRTOSConfig.h" +#include "FreeRTOSConfig.h" #include "FreeRTOS.h" #include #include -#include > +#include int main() { // Currently written as numbered 1-40th pin on Pico