From aeda7542d37178107d94e38d1a75ea42010e2ad6 Mon Sep 17 00:00:00 2001 From: key Date: Sun, 31 Oct 2021 22:32:24 +0100 Subject: [PATCH] I have changed delay() from a class to a simple C and saved 5kB we need to look why classes are taking so much place --- bsl/csl/interfaces/delay.h | 16 ++++++++++++++++ bsl/csl/interfaces/delay.hpp | 16 ---------------- bsl/csl/stm32f042/Src/CMakeLists.txt | 4 ++-- bsl/csl/stm32f042/Src/delay.c | 7 +++++++ bsl/csl/stm32f042/Src/delay.cpp | 17 ----------------- bsl/csl/stm32f042/Src/stm32f0xx_csl.c | 10 +++++----- bsl/nucleo_f042k6/bsl_nucleo_f042k6.cpp | 3 --- bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp | 2 -- main.cpp | 9 +++------ 9 files changed, 33 insertions(+), 51 deletions(-) create mode 100644 bsl/csl/interfaces/delay.h delete mode 100644 bsl/csl/interfaces/delay.hpp create mode 100644 bsl/csl/stm32f042/Src/delay.c delete mode 100644 bsl/csl/stm32f042/Src/delay.cpp diff --git a/bsl/csl/interfaces/delay.h b/bsl/csl/interfaces/delay.h new file mode 100644 index 0000000..b1b08d1 --- /dev/null +++ b/bsl/csl/interfaces/delay.h @@ -0,0 +1,16 @@ +#ifndef _DELAY_H_ +#define _DELAY_H_ + +#ifdef __cplusplus +extern "C" { +#endif +#include + +void delayMs(uint16_t delay); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/bsl/csl/interfaces/delay.hpp b/bsl/csl/interfaces/delay.hpp deleted file mode 100644 index 165a27b..0000000 --- a/bsl/csl/interfaces/delay.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _DELAY_H_ -#define _DELAY_H_ - -#include - -class Delay -{ - public: - Delay(); - ~Delay(); - void ms(uint16_t delay); - private: -}; - -#endif - diff --git a/bsl/csl/stm32f042/Src/CMakeLists.txt b/bsl/csl/stm32f042/Src/CMakeLists.txt index 9b1e9be..af01af2 100644 --- a/bsl/csl/stm32f042/Src/CMakeLists.txt +++ b/bsl/csl/stm32f042/Src/CMakeLists.txt @@ -4,7 +4,7 @@ set (STMSRC_INCLUDES set(STMSRC_SOURCES stm32f0xx_csl.c - stm32f0xx_it.c + #stm32f0xx_it.c system_stm32f0xx.c ) @@ -15,7 +15,7 @@ target_include_directories(stmSources PUBLIC ${STMSRC_INCLUDES}) target_link_libraries(stmSources sub::drivers) add_library(sub::sources ALIAS stmSources) -add_library(stmDelay delay.cpp) +add_library(stmDelay delay.c) target_compile_options(stmDelay PRIVATE ${C_FLAGS}) target_compile_definitions(stmDelay PRIVATE ${C_DEFS}) target_include_directories(stmDelay PUBLIC ${INTERFACES_DIR} ${CSL_INCLUDES}) diff --git a/bsl/csl/stm32f042/Src/delay.c b/bsl/csl/stm32f042/Src/delay.c new file mode 100644 index 0000000..9df730f --- /dev/null +++ b/bsl/csl/stm32f042/Src/delay.c @@ -0,0 +1,7 @@ +#include "delay.h" +#include "../Inc/stm32f0xx_csl.h" + +void delayMs(uint16_t delay) +{ + LL_mDelay(delay); +} diff --git a/bsl/csl/stm32f042/Src/delay.cpp b/bsl/csl/stm32f042/Src/delay.cpp deleted file mode 100644 index a178edd..0000000 --- a/bsl/csl/stm32f042/Src/delay.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "delay.hpp" -#include "../Inc/stm32f0xx_csl.h" - -Delay::Delay() -{ - -} - -Delay::~Delay() -{ - -} - -void Delay::ms(uint16_t delay) -{ - LL_mDelay(delay); -} diff --git a/bsl/csl/stm32f042/Src/stm32f0xx_csl.c b/bsl/csl/stm32f042/Src/stm32f0xx_csl.c index 5029e8b..071f545 100644 --- a/bsl/csl/stm32f042/Src/stm32f0xx_csl.c +++ b/bsl/csl/stm32f042/Src/stm32f0xx_csl.c @@ -76,7 +76,7 @@ int stmStart() /* System interrupt init*/ /* SysTick_IRQn interrupt configuration */ - NVIC_SetPriority(SysTick_IRQn, 3); + // NVIC_SetPriority(SysTick_IRQn, 3); /* USER CODE BEGIN Init */ @@ -171,7 +171,7 @@ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ - __disable_irq(); +// __disable_irq(); while (1) { } @@ -186,13 +186,13 @@ void Error_Handler(void) * @param line: assert_param error line source number * @retval None */ -void assert_failed(uint8_t *file, uint32_t line) -{ +//void assert_failed(uint8_t *file, uint32_t line) +//{ /* USER CODE BEGIN 6 */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ -} +//} #endif /* USE_FULL_ASSERT */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsl/nucleo_f042k6/bsl_nucleo_f042k6.cpp b/bsl/nucleo_f042k6/bsl_nucleo_f042k6.cpp index df3175b..e08e086 100644 --- a/bsl/nucleo_f042k6/bsl_nucleo_f042k6.cpp +++ b/bsl/nucleo_f042k6/bsl_nucleo_f042k6.cpp @@ -1,5 +1,4 @@ #include "bsl_nucleo_f042k6.hpp" -//#include"bsl/csl/interfaces/delay.hpp" Nucleo_f042k6::Nucleo_f042k6() { @@ -15,7 +14,5 @@ void Nucleo_f042k6::init() void Nucleo_f042k6::running() { - delay.ms(1000); - delay.ms(1000); } diff --git a/bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp b/bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp index 8d98c25..b54e442 100644 --- a/bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp +++ b/bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp @@ -2,7 +2,6 @@ #define BSL_NUCLEO_F042K6_H #include "../csl/interfaces/pin.h" -#include "../csl/interfaces/delay.hpp" #include "stm32f0xx_csl.h" class Nucleo_f042k6 @@ -17,7 +16,6 @@ class Nucleo_f042k6 private : - Delay delay; }; #endif /* BSL_NUCLEO_F042K6_H */ diff --git a/main.cpp b/main.cpp index 615220f..7f7b4d5 100644 --- a/main.cpp +++ b/main.cpp @@ -1,13 +1,10 @@ #include"main.hpp" -#include"bsl/csl/interfaces/delay.hpp" +#include"bsl/csl/interfaces/delay.h" #include"stm32f0xx_csl.h" int main(int argc, char *argv[]) { - Delay delay; - - uint8_t i = 0; stmStart(); @@ -17,9 +14,9 @@ int main(int argc, char *argv[]) for(i = 0 ; i < 10 ; i++) { - delay.ms(100); + delayMs(100); pinToggle(pinB3); - delay.ms(100); + delayMs(100); } pinWrite(pinB3,0);