Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ulog
文件系统
ulog保存日志文件,如何在掉电时把缓存区内容保存起来?
发布于 2022-11-07 09:50:19 浏览:214
订阅该版
[tocm] # ulog保存日志文件,如何在掉电时把缓存区内容保存起来? ## 原因 ### 打印ULOG日志文件时发现,有些日志文件被截断 - 分析发现可能为掉电时,有部分数据还是缓冲区内,缓冲区没满不会把当前缓冲区内容保存至文件中。 - 这就导致掉电时的数据不正常或者被截断。 ### 正常运行时,使用“cat”命令查看文件 - 发现文件末尾的日志缺失的,原因和上述一样。缓冲区没满,没有把当前数据保存起来 ## 如何解决 ### 1.如何判断掉电? - ULOG组件有这部分功能吗? - 没有的话,如何判断掉电?RTT有相关驱动吗? ### 2.掉电的时候,时间足够保存文件吗? - 硬件上是否要加入电容? - 缓冲区改小点?
查看更多
crystal266
2022-11-07
这家伙很懒,什么也没写!
用的什么文件系统?fatfs是不支持掉电保护的,littlefs是支持掉电保护的。 ulog是没有掉电保护的,可以使用 STM32 的 PVD 机制来进行掉电检测,检测到电压低于一定值的时候就刷缓冲区把日志写入到文件系统中。如果使用 PVD 机制进行掉电检测硬件上最好加一个大电容(超级电容),这样掉电的过程会慢一些,检测到掉电之后可以做的事情多一些。 可以测试一下 PVD 的功能,看看不加电容时能做多少事情。 使用方法参考 [STM32 PVD的使用(掉电检测)](https://blog.csdn.net/qq_27575841/article/details/107602983 "STM32 PVD的使用(掉电检测)") [STM32F407中PVD实现掉电检测](https://blog.csdn.net/janson_24/article/details/108137986?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-108137986-blog-107602983.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.2&utm_relevant_index=4 "STM32F407中PVD实现掉电检测")
2
个回答
默认排序
按发布时间排序
用户名由3_15位
2022-11-09
这家伙很懒,什么也没写!
# 问题描述有地方判断不对了。 ## 我现在重新分析一遍发现。 ### 日志使用时开启异步输出后 - 有个异步线程会去判断当前是否有日志正在输出,当日志输出结束后,会等待两秒时间,判断日志是否输出完成。 - 若未完成,继续等待完成。 - 若完成,刷新缓冲区数据至文件后端中 ```c rt_err_t ulog_async_waiting_log(rt_int32_t time) { rt_sem_control(&ulog.async_notice, RT_IPC_CMD_RESET, RT_NULL); return rt_sem_take(&ulog.async_notice, time); } static void async_output_thread_entry(void *param) { ulog_async_output(); while (1) { ulog_async_waiting_log(RT_WAITING_FOREVER); while (1) { ulog_async_output(); if (ulog_async_waiting_log(RT_TICK_PER_SECOND * 2) == RT_EOK) { continue; } else { ulog_flush(); break; } } } } ```
撰写答案
登录
注册新账号
关注者
0
被浏览
214
关于作者
用户名由3_15位
这家伙很懒,什么也没写!
提问
48
回答
73
被采纳
5
关注TA
发私信
相关问题
1
【文件系统】目录查询
2
文件系统Posix 接口 的close API疑问
3
文件系统挂载断言机制
4
文件系统是否支持挂载NFS网络文件系统
5
文件系统挂载失败!!!
6
webnet 是否可以做全动态网页,使用内存池来加快速度
7
“文件系统装在表”报错
8
spiflash建立的elm文件系统如何加入外部的文件
9
文件系统的O_APPEND属性
10
使能工作目录存在定时器断言错误
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
五分钟玩转RT-Thread新社区
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
国产MCU移植系列教程汇总,欢迎查看!
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RS485驱动包的使用
2
当做一件事,坚持到第二十年 ——Open-SkyEye强势回归!
3
stm32f407zgt6新建工程
4
【github】rt-thread BSP 目录所有支持开发板整理展示
5
使用 D1s (RDC2022 纪念版) 连接 thingspeak
热门标签
RT-Thread Studio
串口
LWIP
SPI
Env
AT
FinSH
ART-Pi
Bootloader
CAN总线
Hardfault
文件系统
USB
DMA
RT-Thread
线程
stm32
RT-Thread Nano
SCons
MQTT
ESP8266
ota
packages_软件包
UART
rtthread
I2C
RTC
freemodbus
flash
cubemx
rt-smart
W5500
定时器
FAL
PWM
ADC
BSP
SDIO
msh
AB32VG1
Debug
C++_cpp
socket
SFUD
中断
编译报错
MicroPython
keil
LVGL
dfs
本月问答贡献
RTT_逍遥
3
个答案
2
次被采纳
crystal266
4
个答案
1
次被采纳
用户名由3_15位
4
个答案
1
次被采纳
xiaorui
3
个答案
1
次被采纳
小小李sunny
1
个答案
1
次被采纳
本月文章贡献
出出啊
4
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
crystal266
1
篇文章
1
次点赞
whj467467222
2
篇文章
2
次点赞
张世争
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部