armink / CmBacktrace

Advanced fault backtrace library for ARM Cortex-M series MCU | ARM Cortex-M 系列 MCU 错误追踪库
MIT License
1.58k stars 640 forks source link

文件后端模式的使用问题,希望增加对文件系统的支持 #66

Closed wdfk-prog closed 1 year ago

wdfk-prog commented 1 year ago
  1. 在RTTV4.10中使用,使用最新版本。 没有使用easyflash的文件后端去保存。

2.使用了文件系统。想使用cmb文件后端保存为文件使用。 已成功将ulog组件日志输出到文件系统中。

3.cmb_flash_log.c这个文件怎么在github中找不到了。从RTT软件包中还可以配置下载。

4.cmb文件后端的调用是不是只写了eaysflash的使用情况。 直接对fal分区进行操作了。 我如果使用文件系统,就读不出正确的len长度,导致错误。 ` fal_partition_read(cmb_log_part, addr, (uint8_t *)&len, sizeof(size_t)); if (len != 0xFFFFFFFF) { char log_buf[ULOG_LINE_BUF_SIZE];

        if (!has_read_log)
        {
            has_read_log = RT_TRUE;
            LOG_I("An CmBacktrace log was found on flash. Now will backup it to file ("CMB_LOG_FILE_PATH").");
            //TODO check the folder
            log_fd = open(CMB_LOG_FILE_PATH, O_WRONLY | O_CREAT | O_APPEND);
            if (log_fd < 0) {
                LOG_E("Open file ("CMB_LOG_FILE_PATH") failed.");
                break;
            }
        }
        addr += CMB_LOG_LEN_SIZE;
        /* read log content */
        fal_partition_read(cmb_log_part, addr, (uint8_t *)log_buf, MIN(ULOG_LINE_BUF_SIZE, len));
        addr += RT_ALIGN(len, CMB_FLASH_LOG_PART_WG);
        /* backup log to file */
        write(log_fd, log_buf, MIN(ULOG_LINE_BUF_SIZE, len));
    }`
  1. 希望增加文件系统的支持,而不是直接操作整个分区