From 2f42cd5e73827707c1a918ecf4164c3bcacbeb3c Mon Sep 17 00:00:00 2001 From: Mateusz Piesta Date: Tue, 29 Mar 2022 11:59:27 +0200 Subject: [PATCH] [BH-1424] FreeRTOS update Updated FreeRTOS source code to 10.4.6. Moved FreeRTOS sources to the third-party directory. Added necessary changes to the CMake configuration. Split FreeRTOSConfig.h. From now, each board has its own. Added missing log headers. Minor refactor of the module-os cmake. Fixed stack overflows in bell application main and time service. --- .gitmodules | 4 + CMakeLists.txt | 2 +- Target_RT1051.cmake | 8 - board/rt1051/ldscripts/sections.ld | 1 + module-audio/Audio/StreamFactory.cpp | 1 + .../Audio/StreamQueuedEventsListener.cpp | 1 + module-audio/board/rt1051/SAIAudioDevice.cpp | 1 + .../hal/battery_charger/BatteryCharger.cpp | 1 + .../board/linux/hal/key_input/KeyInput.cpp | 2 + module-bsp/board/linux/torch/torch.cpp | 1 + .../bsp/rotary_encoder/rotary_encoder.cpp | 1 + .../hal/battery_charger/BatteryCharger.cpp | 1 + .../board/rt1051/bsp/audio/CodecMAX98090.hpp | 2 - module-bsp/board/rt1051/bsp/eink/ED028TC1.cpp | 4 +- .../board/rt1051/bsp/headset/headset.cpp | 2 + module-bsp/board/rt1051/bsp/pit/pit.hpp | 2 +- module-bsp/board/rt1051/bsp/rtc/rtc.cpp | 1 + module-bsp/board/rt1051/bsp/torch/torch.cpp | 1 + .../rt1051/drivers/RT1051DriverDMAMux.cpp | 2 + .../hal/battery_charger/BatteryCharger.cpp | 2 +- .../CurrentMeasurementScope.cpp | 4 +- module-bsp/board/rt1051/puretx/irq_gpio.cpp | 1 + module-bsp/bsp/cellular/bsp_cellular.hpp | 2 +- module-bsp/devices/power/CW2015.cpp | 2 + module-os/CMakeLists.txt | 79 +- module-os/FreeRTOS/croutine.c | 353 -- module-os/FreeRTOS/event_groups.c | 753 --- module-os/FreeRTOS/heap_4.c | 531 -- module-os/FreeRTOS/include/FreeRTOS.h | 1274 ---- module-os/FreeRTOS/include/StackMacros.h | 133 - module-os/FreeRTOS/include/croutine.h | 720 --- .../FreeRTOS/include/deprecated_definitions.h | 279 - module-os/FreeRTOS/include/event_groups.h | 757 --- .../include/freertos_tasks_c_additions.h | 129 - module-os/FreeRTOS/include/list.h | 412 -- module-os/FreeRTOS/include/message_buffer.h | 798 --- module-os/FreeRTOS/include/mpu_prototypes.h | 157 - module-os/FreeRTOS/include/mpu_wrappers.h | 186 - module-os/FreeRTOS/include/portable.h | 173 - module-os/FreeRTOS/include/projdefs.h | 124 - module-os/FreeRTOS/include/queue.h | 1655 ----- module-os/FreeRTOS/include/semphr.h | 1140 ---- module-os/FreeRTOS/include/stack_macros.h | 129 - module-os/FreeRTOS/include/stream_buffer.h | 855 --- module-os/FreeRTOS/include/task.h | 2423 -------- module-os/FreeRTOS/include/timers.h | 1295 ---- module-os/FreeRTOS/list.c | 198 - module-os/FreeRTOS/queue.c | 2941 --------- module-os/FreeRTOS/stream_buffer.c | 1263 ---- module-os/FreeRTOS/tasks.c | 5323 ----------------- module-os/FreeRTOS/timers.c | 1102 ---- module-os/LockGuard.cpp | 17 +- module-os/{FreeRTOS => }/application.c | 9 +- module-os/board/linux/CMakeLists.txt | 21 +- .../include => board/linux}/FreeRTOSConfig.h | 17 +- module-os/board/linux/fsl_runtimestat_gpt.c | 59 - module-os/board/linux/macros.h | 9 - module-os/board/linux/port.c | 928 --- module-os/board/linux/portmacro.h | 190 - module-os/board/rt1051/CMakeLists.txt | 31 +- module-os/board/rt1051/fsl_tickless_systick.c | 254 - .../{systemview => include}/FreeRTOSConfig.h | 27 +- module-os/board/rt1051/include/macros.h | 8 - module-os/board/rt1051/port.c | 540 -- module-os/board/rt1051/portmacro.h | 242 - module-os/board/rt1051/systemview/FreeRTOS.h | 1315 ---- module-os/board/rt1051/systemview/port.c | 549 -- module-os/board/rt1051/systemview/portmacro.h | 251 - module-os/board/rt1051/systemview/task.h | 2444 -------- module-os/board/rt1051/systemview/tasks.c | 5248 ---------------- module-os/{FreeRTOS => prof}/prof.c | 0 module-os/{FreeRTOS => prof}/prof.h | 0 module-platform/rt1051/src/disk_emmc.cpp | 2 +- .../include/service-antenna/ServiceState.hpp | 1 + .../BluetoothDevicesModel.cpp | 1 + .../service-db/ServiceDBCommon.cpp | 1 + .../agents/settings/SettingsAgent.cpp | 1 + .../service-desktop/endpoints/Endpoint.cpp | 1 + .../endpoints/backup/BackupEndpoint.cpp | 1 + .../endpoints/bluetooth/BluetoothHelper.cpp | 2 + .../filesystem/FilesystemEndpoint.cpp | 1 + .../endpoints/nullEndpoint/NullEndpoint.cpp | 1 + .../endpoints/restore/RestoreEndpoint.cpp | 2 +- .../endpoints/security/SecurityEndpoint.cpp | 1 + module-services/service-eink/EinkDisplay.cpp | 1 + .../battery/BatteryBrownoutDetector.cpp | 1 + .../service-fileindexer/StartupIndexer.cpp | 1 + module-services/service-time/ServiceTime.hpp | 2 +- module-sys/PhoneModes/Observer.cpp | 1 + module-sys/PhoneModes/Subject.cpp | 1 + module-sys/Service/Worker.cpp | 7 +- module-sys/Service/details/bus/Bus.cpp | 1 + module-sys/SystemManager/CpuLogPrinter.cpp | 3 + .../include/SystemManager/CpuStatistics.hpp | 3 - .../include/SystemWatchdog/SystemWatchdog.hpp | 4 - .../drivers/src/thirdparty/fatfs/ff_glue.cpp | 1 + .../drivers/src/thirdparty/reedgefs/glue.cpp | 1 + products/BellHybrid/BellHybridMain.cpp | 7 + products/BellHybrid/CMakeLists.txt | 2 +- .../ApplicationBellMain.hpp | 2 +- products/BellHybrid/init_prof.cpp | 26 + products/BellHybrid/init_prof.hpp | 9 + .../desktop/endpoints/EndpointFactoryBell.cpp | 1 + products/PurePhone/PurePhoneMain.cpp | 4 + third-party/CMakeLists.txt | 1 + third-party/freeRTOS-kernel/CMakeLists.txt | 7 + third-party/freeRTOS-kernel/freeRTOS-kernel | 1 + third-party/usb_stack | 2 +- 108 files changed, 191 insertions(+), 37303 deletions(-) delete mode 100644 module-os/FreeRTOS/croutine.c delete mode 100644 module-os/FreeRTOS/event_groups.c delete mode 100644 module-os/FreeRTOS/heap_4.c delete mode 100644 module-os/FreeRTOS/include/FreeRTOS.h delete mode 100644 module-os/FreeRTOS/include/StackMacros.h delete mode 100644 module-os/FreeRTOS/include/croutine.h delete mode 100644 module-os/FreeRTOS/include/deprecated_definitions.h delete mode 100644 module-os/FreeRTOS/include/event_groups.h delete mode 100644 module-os/FreeRTOS/include/freertos_tasks_c_additions.h delete mode 100644 module-os/FreeRTOS/include/list.h delete mode 100644 module-os/FreeRTOS/include/message_buffer.h delete mode 100644 module-os/FreeRTOS/include/mpu_prototypes.h delete mode 100644 module-os/FreeRTOS/include/mpu_wrappers.h delete mode 100644 module-os/FreeRTOS/include/portable.h delete mode 100644 module-os/FreeRTOS/include/projdefs.h delete mode 100644 module-os/FreeRTOS/include/queue.h delete mode 100644 module-os/FreeRTOS/include/semphr.h delete mode 100644 module-os/FreeRTOS/include/stack_macros.h delete mode 100644 module-os/FreeRTOS/include/stream_buffer.h delete mode 100644 module-os/FreeRTOS/include/task.h delete mode 100644 module-os/FreeRTOS/include/timers.h delete mode 100644 module-os/FreeRTOS/list.c delete mode 100644 module-os/FreeRTOS/queue.c delete mode 100644 module-os/FreeRTOS/stream_buffer.c delete mode 100644 module-os/FreeRTOS/tasks.c delete mode 100644 module-os/FreeRTOS/timers.c rename module-os/{FreeRTOS => }/application.c (93%) rename module-os/{FreeRTOS/include => board/linux}/FreeRTOSConfig.h (92%) delete mode 100644 module-os/board/linux/fsl_runtimestat_gpt.c delete mode 100644 module-os/board/linux/port.c delete mode 100644 module-os/board/linux/portmacro.h delete mode 100644 module-os/board/rt1051/fsl_tickless_systick.c rename module-os/board/rt1051/{systemview => include}/FreeRTOSConfig.h (87%) delete mode 100644 module-os/board/rt1051/port.c delete mode 100644 module-os/board/rt1051/portmacro.h delete mode 100644 module-os/board/rt1051/systemview/FreeRTOS.h delete mode 100644 module-os/board/rt1051/systemview/port.c delete mode 100644 module-os/board/rt1051/systemview/portmacro.h delete mode 100644 module-os/board/rt1051/systemview/task.h delete mode 100644 module-os/board/rt1051/systemview/tasks.c rename module-os/{FreeRTOS => prof}/prof.c (100%) rename module-os/{FreeRTOS => prof}/prof.h (100%) create mode 100644 products/BellHybrid/init_prof.cpp create mode 100644 products/BellHybrid/init_prof.hpp create mode 100644 third-party/freeRTOS-kernel/CMakeLists.txt create mode 160000 third-party/freeRTOS-kernel/freeRTOS-kernel diff --git a/.gitmodules b/.gitmodules index c32ea71f4df5077896ab6da86e1f4148b07f21f4..0b016b7c1067a22c10ca637d08ba3ae535bcb881 100644 --- a/.gitmodules +++ b/.gitmodules @@ -109,3 +109,7 @@ [submodule "third-party/msgpack11/msgpack11"] path = third-party/msgpack11/msgpack11 url = https://github.com/ar90n/msgpack11.git +[submodule "third-party/freeRTOS-kernel/freeRTOS-kernel"] + path = third-party/freeRTOS-kernel/freeRTOS-kernel + url = ../FreeRTOS-Kernel.git + branch = mudita diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a7450eb853cde0ae4541161f044d0ffa13e5a23..eca5f22dfc72b919dcb18255cd64acc88c8727f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,7 +121,6 @@ if (NOT ENABLE_SECURE_BOOT) ) endif () -add_subdirectory(third-party) add_subdirectory(board) add_subdirectory(source) add_subdirectory(module-platform) @@ -139,6 +138,7 @@ add_subdirectory(module-apps) add_subdirectory(module-bluetooth) add_subdirectory(image) add_subdirectory(host-tools) +add_subdirectory(third-party) include(tools/clang-tidy.cmake) diff --git a/Target_RT1051.cmake b/Target_RT1051.cmake index 4ed517caad9c6189ce4b1802e1b95b42a27bb15a..6fe795ca27fa9b4314b6daa9f3ba8d6494d010d9 100644 --- a/Target_RT1051.cmake +++ b/Target_RT1051.cmake @@ -57,14 +57,6 @@ add_compile_options( $<$:-Wno-literal-suffix> ) -set(TARGET_SOURCES - - ${CMAKE_CURRENT_LIST_DIR}/module-os/board/rt1051/_exit.cpp - ${CMAKE_CURRENT_LIST_DIR}/module-os/board/rt1051/__atexit.c - ${CMAKE_CURRENT_LIST_DIR}/module-os/board/rt1051/__call_atexit.c - CACHE INTERNAL "" -) - # where is the target environment SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PATH}/${TOOLCHAIN_PREFIX}) # search for programs in the build host directories diff --git a/board/rt1051/ldscripts/sections.ld b/board/rt1051/ldscripts/sections.ld index 817fdcd0494bb8803933b7e1cc5bfd39cfffc3b7..d8eb843a4aa282ca04f1f056777d23c8b5d14030 100644 --- a/board/rt1051/ldscripts/sections.ld +++ b/board/rt1051/ldscripts/sections.ld @@ -87,6 +87,7 @@ SECTIONS { *(NonCacheable) *(COMMON) + *libfreertos_kernel.a:*(.bss*) *libmodule-os.a:*(.bss*) *libmodule-sys.a:*(.bss*) *libmodule-bsp.a:*(.bss*) diff --git a/module-audio/Audio/StreamFactory.cpp b/module-audio/Audio/StreamFactory.cpp index bc2e48bfe6a755b36390b56f76086308590afd45..55d8f93a21a172f305547d123e7d4d5aa6ef74fd 100644 --- a/module-audio/Audio/StreamFactory.cpp +++ b/module-audio/Audio/StreamFactory.cpp @@ -7,6 +7,7 @@ #include "transcode/TransformFactory.hpp" #include +#include #include #include diff --git a/module-audio/Audio/StreamQueuedEventsListener.cpp b/module-audio/Audio/StreamQueuedEventsListener.cpp index 4dbfc7315d8a8b77fd4b49ba4f7279daf94462f7..4a72c36b4cf5dad1c4db754dd34e9569710944aa 100644 --- a/module-audio/Audio/StreamQueuedEventsListener.cpp +++ b/module-audio/Audio/StreamQueuedEventsListener.cpp @@ -4,6 +4,7 @@ #include "StreamQueuedEventsListener.hpp" #include +#include #include diff --git a/module-audio/board/rt1051/SAIAudioDevice.cpp b/module-audio/board/rt1051/SAIAudioDevice.cpp index 68f44e0cc6b475978d8b29603c894a31a0501fb8..fc96edd0cd65c638e3685c6a95650d3294c06268 100644 --- a/module-audio/board/rt1051/SAIAudioDevice.cpp +++ b/module-audio/board/rt1051/SAIAudioDevice.cpp @@ -4,6 +4,7 @@ #include "SAIAudioDevice.hpp" #include