Skip to content

Commit 58eea69

Browse files
fpistmcparata
authored andcommitted
refactor(error handler): save space when core logs are not enabled
When core logs are not enable, NDEBUG is defined and used to prevent print from Error_Handler thanks to core_debug. Remove CORE_DEBUG usage. Signed-off-by: Frederic Pillon <[email protected]>
1 parent a33b95e commit 58eea69

File tree

6 files changed

+200
-68
lines changed

6 files changed

+200
-68
lines changed

boards.txt

+175-59
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ menu.xusb=USB speed (if available)
88
menu.virtio=Virtual serial support
99

1010
menu.opt=Optimize
11-
menu.dbg=Debug symbols
11+
menu.dbg=Debug symbols and core logs
1212
menu.rtlib=C Runtime Library
1313
menu.upload_method=Upload method
1414

@@ -7553,120 +7553,236 @@ Midatronics.menu.opt.o0std.build.flags.optimize=-O0
75537553

75547554
# Debug information
75557555
Nucleo_144.menu.dbg.none=None
7556-
Nucleo_144.menu.dbg.enable=Enabled (-g)
7557-
Nucleo_144.menu.dbg.enable.build.flags.debug=-g
7556+
Nucleo_144.menu.dbg.enable_sym=Symbols Enabled (-g)
7557+
Nucleo_144.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7558+
Nucleo_144.menu.dbg.enable_log=Core logs Enabled
7559+
Nucleo_144.menu.dbg.enable_log.build.flags.debug=
7560+
Nucleo_144.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7561+
Nucleo_144.menu.dbg.enable_all.build.flags.debug=-g
75587562

75597563
Nucleo_64.menu.dbg.none=None
7560-
Nucleo_64.menu.dbg.enable=Enabled (-g)
7561-
Nucleo_64.menu.dbg.enable.build.flags.debug=-g
7564+
Nucleo_64.menu.dbg.enable_sym=Symbols Enabled (-g)
7565+
Nucleo_64.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7566+
Nucleo_64.menu.dbg.enable_log=Core logs Enabled
7567+
Nucleo_64.menu.dbg.enable_log.build.flags.debug=
7568+
Nucleo_64.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7569+
Nucleo_64.menu.dbg.enable_all.build.flags.debug=-g
75627570

75637571
Nucleo_32.menu.dbg.none=None
7564-
Nucleo_32.menu.dbg.enable=Enabled (-g)
7565-
Nucleo_32.menu.dbg.enable.build.flags.debug=-g
7572+
Nucleo_32.menu.dbg.enable_sym=Symbols Enabled (-g)
7573+
Nucleo_32.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7574+
Nucleo_32.menu.dbg.enable_log=Core logs Enabled
7575+
Nucleo_32.menu.dbg.enable_log.build.flags.debug=
7576+
Nucleo_32.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7577+
Nucleo_32.menu.dbg.enable_all.build.flags.debug=-g
75667578

75677579
Disco.menu.dbg.none=None
7568-
Disco.menu.dbg.enable=Enabled (-g)
7569-
Disco.menu.dbg.enable.build.flags.debug=-g
7580+
Disco.menu.dbg.enable_sym=Symbols Enabled (-g)
7581+
Disco.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7582+
Disco.menu.dbg.enable_log=Core logs Enabled
7583+
Disco.menu.dbg.enable_log.build.flags.debug=
7584+
Disco.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7585+
Disco.menu.dbg.enable_all.build.flags.debug=-g
75707586

75717587
Eval.menu.dbg.none=None
7572-
Eval.menu.dbg.enable=Enabled (-g)
7573-
Eval.menu.dbg.enable.build.flags.debug=-g
7588+
Eval.menu.dbg.enable_sym=Symbols Enabled (-g)
7589+
Eval.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7590+
Eval.menu.dbg.enable_log=Core logs Enabled
7591+
Eval.menu.dbg.enable_log.build.flags.debug=
7592+
Eval.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7593+
Eval.menu.dbg.enable_all.build.flags.debug=-g
75747594

75757595
STM32MP1.menu.dbg.none=None
7576-
STM32MP1.menu.dbg.enable=Enabled (-g)
7577-
STM32MP1.menu.dbg.enable.build.flags.debug=-g
7596+
STM32MP1.menu.dbg.enable_sym=Symbols Enabled (-g)
7597+
STM32MP1.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7598+
STM32MP1.menu.dbg.enable_log=Core logs Enabled
7599+
STM32MP1.menu.dbg.enable_log.build.flags.debug=
7600+
STM32MP1.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7601+
STM32MP1.menu.dbg.enable_all.build.flags.debug=-g
75787602

75797603
GenF0.menu.dbg.none=None
7580-
GenF0.menu.dbg.enable=Enabled (-g)
7581-
GenF0.menu.dbg.enable.build.flags.debug=-g
7604+
GenF0.menu.dbg.enable_sym=Symbols Enabled (-g)
7605+
GenF0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7606+
GenF0.menu.dbg.enable_log=Core logs Enabled
7607+
GenF0.menu.dbg.enable_log.build.flags.debug=
7608+
GenF0.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7609+
GenF0.menu.dbg.enable_all.build.flags.debug=-g
75827610

75837611
GenF1.menu.dbg.none=None
7584-
GenF1.menu.dbg.enable=Enabled (-g)
7585-
GenF1.menu.dbg.enable.build.flags.debug=-g
7612+
GenF1.menu.dbg.enable_sym=Symbols Enabled (-g)
7613+
GenF1.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7614+
GenF1.menu.dbg.enable_log=Core logs Enabled
7615+
GenF1.menu.dbg.enable_log.build.flags.debug=
7616+
GenF1.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7617+
GenF1.menu.dbg.enable_all.build.flags.debug=-g
75867618

75877619
GenF2.menu.dbg.none=None
7588-
GenF2.menu.dbg.enable=Enabled (-g)
7589-
GenF2.menu.dbg.enable.build.flags.debug=-g
7620+
GenF2.menu.dbg.enable_sym=Symbols Enabled (-g)
7621+
GenF2.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7622+
GenF2.menu.dbg.enable_log=Core logs Enabled
7623+
GenF2.menu.dbg.enable_log.build.flags.debug=
7624+
GenF2.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7625+
GenF2.menu.dbg.enable_all.build.flags.debug=-g
75907626

75917627
GenF3.menu.dbg.none=None
7592-
GenF3.menu.dbg.enable=Enabled (-g)
7593-
GenF3.menu.dbg.enable.build.flags.debug=-g
7628+
GenF3.menu.dbg.enable_sym=Symbols Enabled (-g)
7629+
GenF3.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7630+
GenF3.menu.dbg.enable_log=Core logs Enabled
7631+
GenF3.menu.dbg.enable_log.build.flags.debug=
7632+
GenF3.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7633+
GenF3.menu.dbg.enable_all.build.flags.debug=-g
75947634

75957635
GenF4.menu.dbg.none=None
7596-
GenF4.menu.dbg.enable=Enabled (-g)
7597-
GenF4.menu.dbg.enable.build.flags.debug=-g
7636+
GenF4.menu.dbg.enable_sym=Symbols Enabled (-g)
7637+
GenF4.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7638+
GenF4.menu.dbg.enable_log=Core logs Enabled
7639+
GenF4.menu.dbg.enable_log.build.flags.debug=
7640+
GenF4.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7641+
GenF4.menu.dbg.enable_all.build.flags.debug=-g
75987642

75997643
GenF7.menu.dbg.none=None
7600-
GenF7.menu.dbg.enable=Enabled (-g)
7601-
GenF7.menu.dbg.enable.build.flags.debug=-g
7644+
GenF7.menu.dbg.enable_sym=Symbols Enabled (-g)
7645+
GenF7.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7646+
GenF7.menu.dbg.enable_log=Core logs Enabled
7647+
GenF7.menu.dbg.enable_log.build.flags.debug=
7648+
GenF7.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7649+
GenF7.menu.dbg.enable_all.build.flags.debug=-g
76027650

76037651
GenG0.menu.dbg.none=None
7604-
GenG0.menu.dbg.enable=Enabled (-g)
7605-
GenG0.menu.dbg.enable.build.flags.debug=-g
7652+
GenG0.menu.dbg.enable_sym=Symbols Enabled (-g)
7653+
GenG0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7654+
GenG0.menu.dbg.enable_log=Core logs Enabled
7655+
GenG0.menu.dbg.enable_log.build.flags.debug=
7656+
GenG0.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7657+
GenG0.menu.dbg.enable_all.build.flags.debug=-g
76067658

76077659
GenG4.menu.dbg.none=None
7608-
GenG4.menu.dbg.enable=Enabled (-g)
7609-
GenG4.menu.dbg.enable.build.flags.debug=-g
7660+
GenG4.menu.dbg.enable_sym=Symbols Enabled (-g)
7661+
GenG4.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7662+
GenG4.menu.dbg.enable_log=Core logs Enabled
7663+
GenG4.menu.dbg.enable_log.build.flags.debug=
7664+
GenG4.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7665+
GenG4.menu.dbg.enable_all.build.flags.debug=-g
76107666

76117667
GenH7.menu.dbg.none=None
7612-
GenH7.menu.dbg.enable=Enabled (-g)
7613-
GenH7.menu.dbg.enable.build.flags.debug=-g
7668+
GenH7.menu.dbg.enable_sym=Symbols Enabled (-g)
7669+
GenH7.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7670+
GenH7.menu.dbg.enable_log=Core logs Enabled
7671+
GenH7.menu.dbg.enable_log.build.flags.debug=
7672+
GenH7.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7673+
GenH7.menu.dbg.enable_all.build.flags.debug=-g
76147674

76157675
GenL0.menu.dbg.none=None
7616-
GenL0.menu.dbg.enable=Enabled (-g)
7617-
GenL0.menu.dbg.enable.build.flags.debug=-g
7676+
GenL0.menu.dbg.enable_sym=Symbols Enabled (-g)
7677+
GenL0.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7678+
GenL0.menu.dbg.enable_log=Core logs Enabled
7679+
GenL0.menu.dbg.enable_log.build.flags.debug=
7680+
GenL0.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7681+
GenL0.menu.dbg.enable_all.build.flags.debug=-g
76187682

76197683
GenL1.menu.dbg.none=None
7620-
GenL1.menu.dbg.enable=Enabled (-g)
7621-
GenL1.menu.dbg.enable.build.flags.debug=-g
7684+
GenL1.menu.dbg.enable_sym=Symbols Enabled (-g)
7685+
GenL1.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7686+
GenL1.menu.dbg.enable_log=Core logs Enabled
7687+
GenL1.menu.dbg.enable_log.build.flags.debug=
7688+
GenL1.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7689+
GenL1.menu.dbg.enable_all.build.flags.debug=-g
76227690

76237691
GenL4.menu.dbg.none=None
7624-
GenL4.menu.dbg.enable=Enabled (-g)
7625-
GenL4.menu.dbg.enable.build.flags.debug=-g
7692+
GenL4.menu.dbg.enable_sym=Symbols Enabled (-g)
7693+
GenL4.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7694+
GenL4.menu.dbg.enable_log=Core logs Enabled
7695+
GenL4.menu.dbg.enable_log.build.flags.debug=
7696+
GenL4.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7697+
GenL4.menu.dbg.enable_all.build.flags.debug=-g
76267698

76277699
GenL5.menu.dbg.none=None
7628-
GenL5.menu.dbg.enable=Enabled (-g)
7629-
GenL5.menu.dbg.enable.build.flags.debug=-g
7700+
GenL5.menu.dbg.enable_sym=Symbols Enabled (-g)
7701+
GenL5.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7702+
GenL5.menu.dbg.enable_log=Core logs Enabled
7703+
GenL5.menu.dbg.enable_log.build.flags.debug=
7704+
GenL5.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7705+
GenL5.menu.dbg.enable_all.build.flags.debug=-g
76307706

76317707
GenWB.menu.dbg.none=None
7632-
GenWB.menu.dbg.enable=Enabled (-g)
7633-
GenWB.menu.dbg.enable.build.flags.debug=-g
7708+
GenWB.menu.dbg.enable_sym=Symbols Enabled (-g)
7709+
GenWB.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7710+
GenWB.menu.dbg.enable_log=Core logs Enabled
7711+
GenWB.menu.dbg.enable_log.build.flags.debug=
7712+
GenWB.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7713+
GenWB.menu.dbg.enable_all.build.flags.debug=-g
76347714

76357715
GenWL.menu.dbg.none=None
7636-
GenWL.menu.dbg.enable=Enabled (-g)
7637-
GenWL.menu.dbg.enable.build.flags.debug=-g
7716+
GenWL.menu.dbg.enable_sym=Symbols Enabled (-g)
7717+
GenWL.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7718+
GenWL.menu.dbg.enable_log=Core logs Enabled
7719+
GenWL.menu.dbg.enable_log.build.flags.debug=
7720+
GenWL.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7721+
GenWL.menu.dbg.enable_all.build.flags.debug=-g
76387722

76397723
3dprinter.menu.dbg.none=None
7640-
3dprinter.menu.dbg.enable=Enabled (-g)
7641-
3dprinter.menu.dbg.enable.build.flags.debug=-g
7724+
3dprinter.menu.dbg.enable_sym=Symbols Enabled (-g)
7725+
3dprinter.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7726+
3dprinter.menu.dbg.enable_log=Core logs Enabled
7727+
3dprinter.menu.dbg.enable_log.build.flags.debug=
7728+
3dprinter.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7729+
3dprinter.menu.dbg.enable_all.build.flags.debug=-g
76427730

76437731
BluesW.menu.dbg.none=None
7644-
BluesW.menu.dbg.enable=Enabled (-g)
7645-
BluesW.menu.dbg.enable.build.flags.debug=-g
7732+
BluesW.menu.dbg.enable_sym=Symbols Enabled (-g)
7733+
BluesW.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7734+
BluesW.menu.dbg.enable_log=Core logs Enabled
7735+
BluesW.menu.dbg.enable_log.build.flags.debug=
7736+
BluesW.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7737+
BluesW.menu.dbg.enable_all.build.flags.debug=-g
76467738

76477739
Elecgator.menu.dbg.none=None
7648-
Elecgator.menu.dbg.enable=Enabled (-g)
7649-
Elecgator.menu.dbg.enable.build.flags.debug=-g
7740+
Elecgator.menu.dbg.enable_sym=Symbols Enabled (-g)
7741+
Elecgator.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7742+
Elecgator.menu.dbg.enable_log=Core logs Enabled
7743+
Elecgator.menu.dbg.enable_log.build.flags.debug=
7744+
Elecgator.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7745+
Elecgator.menu.dbg.enable_all.build.flags.debug=-g
76507746

76517747
ESC_board.menu.dbg.none=None
7652-
ESC_board.menu.dbg.enable=Enabled (-g)
7653-
ESC_board.menu.dbg.enable.build.flags.debug=-g
7748+
ESC_board.menu.dbg.enable_sym=Symbols Enabled (-g)
7749+
ESC_board.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7750+
ESC_board.menu.dbg.enable_log=Core logs Enabled
7751+
ESC_board.menu.dbg.enable_log.build.flags.debug=
7752+
ESC_board.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7753+
ESC_board.menu.dbg.enable_all.build.flags.debug=-g
76547754

76557755
Garatronic.menu.dbg.none=None
7656-
Garatronic.menu.dbg.enable=Enabled (-g)
7657-
Garatronic.menu.dbg.enable.build.flags.debug=-g
7756+
Garatronic.menu.dbg.enable_sym=Symbols Enabled (-g)
7757+
Garatronic.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7758+
Garatronic.menu.dbg.enable_log=Core logs Enabled
7759+
Garatronic.menu.dbg.enable_log.build.flags.debug=
7760+
Garatronic.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7761+
Garatronic.menu.dbg.enable_all.build.flags.debug=-g
76587762

76597763
GenFlight.menu.dbg.none=None
7660-
GenFlight.menu.dbg.enable=Enabled (-g)
7661-
GenFlight.menu.dbg.enable.build.flags.debug=-g
7764+
GenFlight.menu.dbg.enable_sym=Symbols Enabled (-g)
7765+
GenFlight.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7766+
GenFlight.menu.dbg.enable_log=Core logs Enabled
7767+
GenFlight.menu.dbg.enable_log.build.flags.debug=
7768+
GenFlight.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7769+
GenFlight.menu.dbg.enable_all.build.flags.debug=-g
76627770

76637771
LoRa.menu.dbg.none=None
7664-
LoRa.menu.dbg.enable=Enabled (-g)
7665-
LoRa.menu.dbg.enable.build.flags.debug=-g
7772+
LoRa.menu.dbg.enable_sym=Symbols Enabled (-g)
7773+
LoRa.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7774+
LoRa.menu.dbg.enable_log=Core logs Enabled
7775+
LoRa.menu.dbg.enable_log.build.flags.debug=
7776+
LoRa.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7777+
LoRa.menu.dbg.enable_all.build.flags.debug=-g
76667778

76677779
Midatronics.menu.dbg.none=None
7668-
Midatronics.menu.dbg.enable=Enabled (-g)
7669-
Midatronics.menu.dbg.enable.build.flags.debug=-g
7780+
Midatronics.menu.dbg.enable_sym=Symbols Enabled (-g)
7781+
Midatronics.menu.dbg.enable_sym.build.flags.debug=-g -DNDEBUG
7782+
Midatronics.menu.dbg.enable_log=Core logs Enabled
7783+
Midatronics.menu.dbg.enable_log.build.flags.debug=
7784+
Midatronics.menu.dbg.enable_all=Core Logs and Symbols Enabled (-g)
7785+
Midatronics.menu.dbg.enable_all.build.flags.debug=-g
76707786

76717787
# C Runtime Library
76727788
Nucleo_144.menu.rtlib.nano=Newlib Nano (default)

cores/arduino/core_debug.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#ifndef _CORE_DEBUG_H
22
#define _CORE_DEBUG_H
3-
#ifdef CORE_DEBUG
3+
#if !defined(NDEBUG)
44
#include <stdio.h>
55
#include <stdarg.h>
6-
#endif /* CORE_DEBUG */
6+
#endif /* NDEBUG */
77

88
#ifdef __cplusplus
99
extern "C" {
@@ -18,14 +18,14 @@ extern "C" {
1818
*/
1919
static inline void core_debug(const char *format, ...)
2020
{
21-
#ifdef CORE_DEBUG
21+
#if !defined(NDEBUG)
2222
va_list args;
2323
va_start(args, format);
2424
vfprintf(stderr, format, args);
2525
va_end(args);
2626
#else
2727
(void)(format);
28-
#endif /* CORE_DEBUG */
28+
#endif /* NDEBUG */
2929
}
3030

3131
#ifdef __cplusplus

cores/arduino/stm32/stm32_def.h

+13
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,22 @@ extern "C" {
104104
// weaked functions declaration
105105
void SystemClock_Config(void);
106106

107+
#if defined(NDEBUG)
108+
#if !defined(_Error_Handler)
109+
#define _Error_Handler(str, value) \
110+
while (1) {\
111+
}
112+
#endif
113+
#if !defined(Error_Handler)
114+
#define Error_Handler() \
115+
while (1) {\
116+
}
117+
#endif
118+
#else
107119
void _Error_Handler(const char *, int);
108120

109121
#define Error_Handler() _Error_Handler(__FILE__, __LINE__)
122+
#endif
110123

111124
#ifdef __cplusplus
112125
} // extern "C"

libraries/SrcWrapper/src/stm32/stm32_def.c

+2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ extern "C" {
1010
* @param None
1111
* @retval None
1212
*/
13+
#if !defined(NDEBUG)
1314
WEAK void _Error_Handler(const char *msg, int val)
1415
{
1516
/* User can add his own implementation to report the HAL error return state */
1617
core_debug("Error: %s (%i)\n", msg, val);
1718
while (1) {
1819
}
1920
}
21+
#endif
2022

2123
#ifdef __cplusplus
2224
}

platform.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ build.peripheral_pins=
110110
build.startup_file=
111111
build.flags.fp=
112112
build.flags.optimize=-Os
113-
build.flags.debug=
113+
build.flags.debug=-DNDEBUG
114114
build.flags.ldspecs=--specs=nano.specs
115115
build.flash_offset=0
116116

0 commit comments

Comments
 (0)