Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmb_cfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ extern void cmb_flash_log_println(const char *fmt, ...);
#else
#include <ulog.h>
#define CMB_LOG_TAG "cmb"
#define cmb_println(...) ulog_e(CMB_LOG_TAG, __VA_ARGS__);ulog_flush()
#define cmb_println(...) ulog_e(CMB_LOG_TAG, __VA_ARGS__);ulog_emergency_flush()
#endif /* RT_USING_ULOG */

/* enable bare metal(no OS) platform */
Expand Down
22 changes: 15 additions & 7 deletions cmb_flash_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,23 @@
#include <stdio.h>
#include <cm_backtrace.h>

//#define CMB_USING_FAL_FLASH_LOG
//#define CMB_USING_FAL_BACKUP_LOG_TO_FILE

#if defined(CMB_USING_FAL_FLASH_LOG)

#include <fal.h>

#if RT_VER_NUM < 0x40100
#include <dfs_posix.h>
#if !defined(PKG_USING_FAL) || !defined(RT_USING_DFS)
#error "please enable the FAL package and DFS component"
#endif
#else
#if !defined(RT_USING_FAL) || !defined(RT_USING_DFS)
#error "please enable the FAL package and DFS component"
#endif
#include <dfs_file.h>
#include <unistd.h>
#endif /* RT_VER_NUM check */

#include <fal.h>
#include <dfs_posix.h>

#ifndef CMB_FAL_FLASH_LOG_PART
#define CMB_FAL_FLASH_LOG_PART "cmb_log"
Expand Down Expand Up @@ -109,9 +115,11 @@ int ulog_cmb_flash_log_backend_init(void)

ulog_backend_register(&backend, "cmb_flash_log", RT_FALSE);

backend.is_emergency_backend = RT_TRUE;

return 0;
}
INIT_APP_EXPORT(ulog_cmb_flash_log_backend_init);
INIT_FS_EXPORT(ulog_cmb_flash_log_backend_init);

#else
void cmb_flash_log_println(const char *fmt, ...)
Expand Down Expand Up @@ -200,7 +208,7 @@ int cmb_backup_flash_log_to_file(void)

return 0;
}
INIT_APP_EXPORT(cmb_backup_flash_log_to_file);
INIT_FS_EXPORT(cmb_backup_flash_log_to_file);
#endif /* CMB_USING_FAL_BACKUP_LOG_TO_FILE */

#endif /* defined(CMB_USING_FLASH_LOG_BACKUP) */
18 changes: 16 additions & 2 deletions cmb_port.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,18 @@
#include <cm_backtrace.h>
#include <string.h>

#ifndef CMBACKTRACE_FIRMWARE_NAME
#define CMBACKTRACE_FIRMWARE_NAME "rt-thread"
#endif // !CMBACKTRACE_FIRMWARE_NAME

#ifndef CMBACKTRACE_HARDWARE_VER
#define CMBACKTRACE_HARDWARE_VER "1.0"
#endif // !CMBACKTRACE_HARDWARE_VER

#ifndef CMBACKTRACE_SOFTWARE_VER
#define CMBACKTRACE_SOFTWARE_VER "1.0"
#endif // !CMBACKTRACE_SOFTWARE_VER

#if defined(__CC_ARM)
#pragma O1
#elif defined(__CLANG_ARM)
Expand Down Expand Up @@ -282,8 +294,8 @@ int rt_cm_backtrace_init(void) {
return 0;
}

cm_backtrace_init("rt-thread","1.0","1.0");
cm_backtrace_init(CMBACKTRACE_FIRMWARE_NAME, CMBACKTRACE_HARDWARE_VER, CMBACKTRACE_SOFTWARE_VER);

rt_hw_exception_install(exception_hook);

rt_assert_set_hook(assert_hook);
Expand All @@ -293,6 +305,7 @@ int rt_cm_backtrace_init(void) {
}
INIT_DEVICE_EXPORT(rt_cm_backtrace_init);

#if defined(RT_USING_FINSH) && defined(PKG_CMBACKTRACE_ENABLE_TEST)
long cmb_test(int argc, char **argv) {
volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
int x, y, z;
Expand Down Expand Up @@ -340,3 +353,4 @@ long cmb_test(int argc, char **argv) {
return 0;
}
MSH_CMD_EXPORT(cmb_test, cm_backtrace_test: cmb_test <DIVBYZERO|UNALIGNED|ASSERT> );
#endif /* defined(RT_USING_FINSH) && defined(PKG_CMBACKTRACE_ENABLE_TEST) */