Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ulog
文件系统
ulog保存日志文件,如何在掉电时把缓存区内容保存起来?
发布于 2022-11-07 09:50:19 浏览:810
订阅该版
[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
被浏览
810
关于作者
用户名由3_15位
这家伙很懒,什么也没写!
提问
62
回答
231
被采纳
32
关注TA
发私信
相关问题
1
【文件系统】目录查询
2
文件系统Posix 接口 的close API疑问
3
dfs_mount挂载文件系统路径的路径必须为‘/’才能成功
4
SD卡连续读写文件报错
5
文件系统挂载断言机制
6
文件系统是否支持挂载NFS网络文件系统
7
文件系统挂载失败!!!
8
dfs_filesystem_lookup() 返回NULL
9
webnet 是否可以做全动态网页,使用内存池来加快速度
10
“文件系统装在表”报错
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
2
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
3
RT-Thread EtherKit开源以太网硬件正式发布
4
如何在master上的BSP中添加配置yml文件
5
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
19
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
6
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部