diff --git a/CMakeLists.txt b/CMakeLists.txt index 858fcfd..589dd36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ if (HALST_STANDALONE) FetchContent_Declare( emil GIT_REPOSITORY https://github.com/embedded-pro/embedded-infra-lib.git - GIT_TAG 321a369d9ef75a41b212c38578aba774bd47bfb0 # Unreleased + GIT_TAG 8cd6166b45ad7671a5a41feacf7a8cb0b771d630 # Unreleased ) add_definitions(-DEMIL_ENABLE_TRACING=1) diff --git a/README.md b/README.md index b6c224c..f05a14b 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ target_link_libraries(myprogram PUBLIC ) halst_target_default_linker_scripts(myprogram) -halst_target_default_init(myprogram) +halst_target_bringup(myprogram) ``` diff --git a/hal_st/instantiations/CMakeLists.txt b/hal_st/instantiations/CMakeLists.txt index 53369e5..9cf7940 100644 --- a/hal_st/instantiations/CMakeLists.txt +++ b/hal_st/instantiations/CMakeLists.txt @@ -23,6 +23,4 @@ target_sources(hal_st.instantiations PRIVATE StmEventInfrastructure.hpp StmTracerInfrastructure.cpp StmTracerInfrastructure.hpp - TracingResetStm.cpp - TracingResetStm.hpp ) diff --git a/hal_st/instantiations/TracingResetStm.cpp b/hal_st/instantiations/TracingResetStm.cpp deleted file mode 100644 index 5970273..0000000 --- a/hal_st/instantiations/TracingResetStm.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "hal_st/instantiations/TracingResetStm.hpp" - -namespace main_ -{ - TracingResetStm::TracingResetStm(services::Tracer& tracer) - : reset(resetStm, tracer) - {} -} diff --git a/hal_st/instantiations/TracingResetStm.hpp b/hal_st/instantiations/TracingResetStm.hpp deleted file mode 100644 index 1808422..0000000 --- a/hal_st/instantiations/TracingResetStm.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef HAL_ST_TRACING_RESET_STM_HPP -#define HAL_ST_TRACING_RESET_STM_HPP - -#include "hal_st/stm32fxxx/ResetStm.hpp" -#include "services/tracer/TracingReset.hpp" - -namespace main_ -{ - struct TracingResetStm - { - private: - hal::ResetStm resetStm; - - public: - TracingResetStm(services::Tracer& tracer); - - services::TracingReset reset; - }; -} - -#endif diff --git a/hal_st/stm32fxxx/CMakeLists.txt b/hal_st/stm32fxxx/CMakeLists.txt index d530586..b8b3700 100644 --- a/hal_st/stm32fxxx/CMakeLists.txt +++ b/hal_st/stm32fxxx/CMakeLists.txt @@ -83,8 +83,6 @@ target_sources(hal_st.stm32fxxx PRIVATE $<$>:LpTimerPwmStm.hpp> RandomDataGeneratorStm.cpp RandomDataGeneratorStm.hpp - ResetStm.cpp - ResetStm.hpp SdRamStm.cpp SdRamStm.hpp SpiDataSizeConfiguratorStm.cpp @@ -97,8 +95,6 @@ target_sources(hal_st.stm32fxxx PRIVATE $<$>:SpiMasterStmDma.hpp> $<$>:SpiSlaveStmDma.cpp> $<$>:SpiSlaveStmDma.hpp> - SystemTickStm.cpp - SystemTickStm.hpp SystemTickTimerService.cpp SystemTickTimerService.hpp TimerPwmStm.cpp diff --git a/hal_st/stm32fxxx/ResetStm.cpp b/hal_st/stm32fxxx/ResetStm.cpp deleted file mode 100644 index ad0621d..0000000 --- a/hal_st/stm32fxxx/ResetStm.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "hal_st/stm32fxxx/ResetStm.hpp" -#include DEVICE_HEADER - -namespace hal -{ - void ResetStm::ResetModule(const char* resetReason) - { - NVIC_SystemReset(); - } -} diff --git a/hal_st/stm32fxxx/ResetStm.hpp b/hal_st/stm32fxxx/ResetStm.hpp deleted file mode 100644 index c1032cc..0000000 --- a/hal_st/stm32fxxx/ResetStm.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef HAL_RESET_STM_HPP -#define HAL_RESET_STM_HPP - -#include "hal/interfaces/Reset.hpp" - -namespace hal -{ - class ResetStm - : public Reset - { - public: - void ResetModule(const char* resetReason) override; - }; -} - -#endif diff --git a/hal_st/stm32fxxx/SystemTickStm.cpp b/hal_st/stm32fxxx/SystemTickStm.cpp deleted file mode 100644 index 00154c1..0000000 --- a/hal_st/stm32fxxx/SystemTickStm.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "hal_st/stm32fxxx/SystemTickStm.hpp" -#include DEVICE_HEADER -#include "hal/interfaces/Gpio.hpp" - -namespace hal -{ - SystemTickStm::SystemTickStm(const infra::Function& callback, infra::Duration tickDuration) - : callback(callback) - { - Register(SysTick_IRQn); - SysTick->LOAD = SystemCoreClock / (1000000000 / std::chrono::duration_cast(tickDuration).count()) - 1ul; - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; - SysTick->VAL = 0; - } - - void SystemTickStm::Invoke() - { - callback(); - } -} diff --git a/hal_st/stm32fxxx/SystemTickStm.hpp b/hal_st/stm32fxxx/SystemTickStm.hpp deleted file mode 100644 index bc5af9a..0000000 --- a/hal_st/stm32fxxx/SystemTickStm.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef HAL_ST_SYSTEM_TICK_STM_HPP -#define HAL_ST_SYSTEM_TICK_STM_HPP - -#include "hal/cortex_m/InterruptCortex.hpp" -#include "infra/timer/Timer.hpp" - -namespace hal -{ - class SystemTickStm - : private cortex::InterruptHandler - { - public: - SystemTickStm(const infra::Function& callback, infra::Duration tickDuration = std::chrono::milliseconds(1)); - - private: - void Invoke() override; - - private: - infra::Function callback; - }; -} - -#endif diff --git a/hal_st/stm32fxxx/SystemTickTimerService.cpp b/hal_st/stm32fxxx/SystemTickTimerService.cpp index 9cf6e02..4207fef 100644 --- a/hal_st/stm32fxxx/SystemTickTimerService.cpp +++ b/hal_st/stm32fxxx/SystemTickTimerService.cpp @@ -1,4 +1,5 @@ #include "hal_st/stm32fxxx/SystemTickTimerService.hpp" +#include "hal/cortex_m/SystemTick.hpp" #include "infra/timer/TickOnInterruptTimerService.hpp" #include "infra/timer/Timer.hpp" #include @@ -19,9 +20,7 @@ namespace hal void SystemTickTimerService::Reset() { - SysTick->LOAD = SystemCoreClock / (1000000000 / std::chrono::duration_cast(TickOnInterruptTimerService::Resolution()).count()) - 1UL; - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; - SysTick->VAL = 0; + cortex::SystemTick(SystemCoreClock, TickOnInterruptTimerService::Resolution()).Enable(); } infra::TimePoint SystemTickTimerService::Now() const diff --git a/hal_st/stm32fxxx/UartStmDuplexDma.hpp b/hal_st/stm32fxxx/UartStmDuplexDma.hpp index a21cb96..2a5791d 100644 --- a/hal_st/stm32fxxx/UartStmDuplexDma.hpp +++ b/hal_st/stm32fxxx/UartStmDuplexDma.hpp @@ -43,7 +43,6 @@ namespace hal void FullReceiveComplete(); void ReceiveComplete(size_t currentPosition); - // Implementation cortex::InterruptHandler void Invoke() override; private: diff --git a/hal_st/synchronous_stm32fxxx/CMakeLists.txt b/hal_st/synchronous_stm32fxxx/CMakeLists.txt index 94ecd91..51f8885 100644 --- a/hal_st/synchronous_stm32fxxx/CMakeLists.txt +++ b/hal_st/synchronous_stm32fxxx/CMakeLists.txt @@ -31,6 +31,4 @@ target_sources(hal_st.synchronous_stm32fxxx PRIVATE $<$>:SynchronousUartStm.hpp> $<$:SynchronousQuadSpiStm.cpp> $<$:SynchronousQuadSpiStm.hpp> - TimeKeeperStm.cpp - TimeKeeperStm.hpp ) diff --git a/hal_st/synchronous_stm32fxxx/TimeKeeperStm.cpp b/hal_st/synchronous_stm32fxxx/TimeKeeperStm.cpp deleted file mode 100644 index a48ba23..0000000 --- a/hal_st/synchronous_stm32fxxx/TimeKeeperStm.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "hal_st/synchronous_stm32fxxx/TimeKeeperStm.hpp" - -namespace hal -{ - TimeKeeperSt::TimeKeeperSt(infra::Duration duration, hal::SystemTickTimerService& timeService) - : duration(duration) - , timeService(timeService) - { - Reset(); - } - - bool TimeKeeperSt::Timeout() - { - return timeService.Now() > endTime; - } - - void TimeKeeperSt::Reset() - { - endTime = timeService.Now() + duration; - } -} diff --git a/hal_st/synchronous_stm32fxxx/TimeKeeperStm.hpp b/hal_st/synchronous_stm32fxxx/TimeKeeperStm.hpp deleted file mode 100644 index 3980d3c..0000000 --- a/hal_st/synchronous_stm32fxxx/TimeKeeperStm.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef SYNCHRONOUS_HAL_TIME_KEEPER_STM_HPP -#define SYNCHRONOUS_HAL_TIME_KEEPER_STM_HPP - -#include "hal/synchronous_interfaces/TimeKeeper.hpp" -#include "hal/synchronous_interfaces/TimeService.hpp" -#include "hal_st/stm32fxxx/SystemTickTimerService.hpp" - -namespace hal -{ - class TimeKeeperSt - : public TimeKeeper - { - public: - explicit TimeKeeperSt(infra::Duration duration, hal::SystemTickTimerService& timeService); - - bool Timeout() override; - void Reset() override; - - private: - const infra::Duration duration; - hal::SystemTickTimerService& timeService; - infra::TimePoint endTime; - }; -} - -#endif