控制台日志实现迁出HAL生成文件至App/log并新增设计说明;defaultTask任务体迁至App/task,freertos.c恢复纯CubeMX接线形态

This commit is contained in:
2026-09-25 01:32:09 +08:00
parent e7d6318250
commit d0cbeb6b5b
20 changed files with 4343 additions and 3151 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ void lftpd_log_internal(const char* level, const char* format, ...) {
if (err >= sizeof(buffer)) {
return;
}
/* 走控制台单写者(Src/usart.c):整行一次入缓冲,避免逐字符 fputc 交错 */
/* 走控制台单写者(App/log/console_log.c):整行一次入缓冲,避免逐字符 fputc 交错 */
int n = snprintf(line, sizeof(line), "%s %s\r\n", level, buffer);
if (n > 0) {
if (n > (int)sizeof(line) - 1) {
+4 -17
View File
@@ -30,22 +30,9 @@ extern "C" {
#include "sys_clock.h"
#endif
/*
* 单写者控制台 API(实现见 Src/usart.c;与 DBG_ENABLE 无关,任何构建都必须可见):
* dbg_console_write_line - 生产者入口:调用方已格式化好的整行文本一次入环形缓冲
* (刻意**不用**自研可变参数函数——规范 S12 7.6 禁止;格式化在
* DBG_PRINT 宏内用库 snprintf 完成)
* dbg_console_write_raw - 异常/早期路径:有界单次直发(不加锁)
* dbg_console_writer_attach- 写者任务(defaultTask)注册自己为唯一发送者
* dbg_console_drain - 写者任务排空缓冲并发送
* dbg_console_dropped - 因缓冲满丢弃的行数(诊断)
*/
#define DBG_CON_LINE_MAX 192U /* 单行文本上限(与 Src/usart.c 内部口径一致) */
int dbg_console_write_line(const char *line, unsigned len);
void dbg_console_write_raw(const char *buf, unsigned len);
void dbg_console_writer_attach(void);
void dbg_console_drain(void);
uint32_t dbg_console_dropped(void);
/* 单写者控制台 API:实现见 App/log/console_log.c(2026-09-24 自 HAL 生成文件
* Src/usart.c 迁出);与 DBG_ENABLE 无关,任何构建都必须可见 */
#include "console_log.h"
/*
* 总开关:DBG_ENABLE
@@ -59,7 +46,7 @@ uint32_t dbg_console_dropped(void);
* 可重定向的打印函数,用户可在编译选项或 net_config.h 中预定义
* #define DBG_PRINT(...) my_printf(__VA_ARGS__)
*
* 默认走单写者控制台(Src/usart.c):
* 默认走单写者控制台(App/log/console_log.c):
* DBG_PRINT 在调用点用库 snprintf 有界格式化整行,再一次性交给 dbg_console_write_line
* 入环形缓冲,由 defaultTask 唯一发送——
* ① 行与行不会字符级交错(旧 printf→fputc 每字符一次 HAL_UART_Transmit 会交错);