Tryed to implment delay class on main header. without optimization it kates 1100 b wihtoptimisation. the -O1 optimisation flags helps a lot

interrupts
atomega 4 years ago
parent 20a517a18b
commit cc65038957

@ -33,6 +33,7 @@ set(CSL_INCLUDES
set(C_FLAGS set(C_FLAGS
${CPU_MCU} ${CPU_MCU}
-mthumb #Instruction set : https://stackoverflow.com/questions/10638130/what-is-the-arm-thumb-instruction-set -mthumb #Instruction set : https://stackoverflow.com/questions/10638130/what-is-the-arm-thumb-instruction-set
## -O1
-Wall #Error : If you don't know this one please chek basical compiling -Wall #Error : If you don't know this one please chek basical compiling
-fdata-sections #Optimization : Linker can perform optimizations to improve locality of reference in the instruction space. -fdata-sections #Optimization : Linker can perform optimizations to improve locality of reference in the instruction space.
-fdiagnostics-color=always -fdiagnostics-color=always

@ -33,8 +33,6 @@ struct STM_Hal_Delay : Delay
}; };
int main() int main()
{ {
FreeRTOS_Delay dly; FreeRTOS_Delay dly;

@ -11,6 +11,8 @@ int main(int argc, char *argv[])
stmStart(); stmStart();
delayInitMs(8000000, 1000); delayInitMs(8000000, 1000);
// FreeRTOS_Delay dly;
// dly.wait();
pinConfig(pinB3, output, pushPull, def_res, def_speed); pinConfig(pinB3, output, pushPull, def_res, def_speed);
pinConfig(pinA0, input, def_stage, pullDown, def_speed); pinConfig(pinA0, input, def_stage, pullDown, def_speed);
@ -30,9 +32,9 @@ int main(int argc, char *argv[])
//blinks 10 times to indicate the sicsessfull init if the device //blinks 10 times to indicate the sicsessfull init if the device
for(i = 0 ; i < 10 ; i++) for(i = 0 ; i < 10 ; i++)
{ {
delayMs(100); // delayMs(100);
pinToggle(pinB3); pinToggle(pinB3);
delayMs(100); // delayMs(100);
} }
pinWrite(pinB3,0); pinWrite(pinB3,0);
@ -60,7 +62,7 @@ int main(int argc, char *argv[])
{ {
pinWrite(pinB3,0); pinWrite(pinB3,0);
} }
delayMs(100); // delayMs(100);
} }
return 1; return 1;
} }

@ -9,4 +9,40 @@
#include "bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp" #include "bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp"
#endif #endif
struct Delay
{
virtual void wait() = 0;
};
struct FreeRTOS_Delay : Delay
{
void wait() override
{
_wait();
}
private:
static void _wait()
{
for(volatile int i = 0; i < 10; i++);
}
};
struct STM_Hal_Delay : Delay
{
void wait() override
{
_wait();
}
private:
static void _wait()
{
// systick stuff here
for(volatile int i = 0; i < 1000; i++);
}
};
#endif /* MAIN_H */ #endif /* MAIN_H */

@ -1,10 +1,48 @@
/**
**************************************************************************************************
* @file menu.h
* @author Kerem Yollu & Edwin Koch
* @date 08.11.2021
* @version 1.0
**************************************************************************************************
* @brief Basic menu implementation for diefferent use cases
**************************************************************************************************
*/
#ifndef _MENU_H
#define _MENU_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
void menuGoUp();
void menuGoDown();
void menuGoLeft();
void menuGoRight();
uint8_t menuGetEnter();
uint8_t menuGetEscape();
uint8_t menuGetReturn();
uint8_t menuGetClear();
void menuSendEnter();
void menuGetEscape();
void menuGetReturn();
void menuGetClear();
void menuPrintChar(uint8_t char);
void menuMainMenu();
#ifdef __cplusplus
}
#endif
#endif // _MENU_H

Loading…
Cancel
Save