Skip to content

Commit 60cf01a

Browse files
Jacob Abramssatur9nine
Jacob Abrams
authored andcommitted
Let firmware info be optional to save RAM
Many projects already have another mechanism for getting firmware info or want to save RAM and do not need firmware info of CmBacktrace. With this change user can pass NULL for name and version after setting the define CMB_NOT_USING_FIRMWARE_INFO.
1 parent 6013293 commit 60cf01a

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

cm_backtrace/cm_backtrace.c

+12-3
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,14 @@ static const char * const print_info[] = {
119119
#endif
120120
};
121121

122-
static char fw_name[CMB_NAME_MAX + 1] = {0};
123-
static char hw_ver[CMB_NAME_MAX + 1] = {0};
124-
static char sw_ver[CMB_NAME_MAX + 1] = {0};
122+
#ifdef CMB_NOT_USING_FIRMWARE_INFO
123+
static const char * const fw_name = "x";
124+
#else
125+
static char fw_name[CMB_NAME_MAX + 1] = {0};
126+
static char hw_ver[CMB_NAME_MAX + 1] = {0};
127+
static char sw_ver[CMB_NAME_MAX + 1] = {0};
128+
#endif
129+
125130
static uint32_t main_stack_start_addr = 0;
126131
static size_t main_stack_size = 0;
127132
static uint32_t code_start_addr = 0;
@@ -143,9 +148,11 @@ static bool on_thread_before_fault = false;
143148
* library initialize
144149
*/
145150
void cm_backtrace_init(const char *firmware_name, const char *hardware_ver, const char *software_ver) {
151+
#ifndef CMB_NOT_USING_FIRMWARE_INFO
146152
strncpy(fw_name, firmware_name, CMB_NAME_MAX);
147153
strncpy(hw_ver, hardware_ver, CMB_NAME_MAX);
148154
strncpy(sw_ver, software_ver, CMB_NAME_MAX);
155+
#endif
149156

150157
#if defined(__ARMCC_VERSION)
151158
main_stack_start_addr = (uint32_t)&CSTACK_BLOCK_START(CMB_CSTACK_BLOCK_NAME);
@@ -174,12 +181,14 @@ void cm_backtrace_init(const char *firmware_name, const char *hardware_ver, cons
174181
init_ok = true;
175182
}
176183

184+
#ifndef CMB_NOT_USING_FIRMWARE_INFO
177185
/**
178186
* print firmware information, such as: firmware name, hardware version, software version
179187
*/
180188
void cm_backtrace_firmware_info(void) {
181189
cmb_println(print_info[PRINT_FIRMWARE_INFO], fw_name, hw_ver, sw_ver);
182190
}
191+
#endif /* CMB_NOT_USING_FIRMWARE_INFO */
183192

184193
#ifdef CMB_USING_OS_PLATFORM
185194
/**

cm_backtrace/cmb_cfg.h

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
/* #define CMB_USING_DUMP_STACK_INFO */
4747
/* language of print information */
4848
/* #define CMB_PRINT_LANGUAGE CMB_PRINT_LANGUAGE_ENGLISH(default) or CMB_PRINT_LANGUAGE_CHINESE or CMB_PRINT_LANGUAGE_CHINESE_UTF8 */
49+
/* disable storing and printing firmware information */
50+
/* #define CMB_NOT_USING_FIRMWARE_INFO */
4951
#endif
5052

5153
#endif /* _CMB_CFG_H_ */

0 commit comments

Comments
 (0)