Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ulog
文件系统
ulog保存日志文件,如何在掉电时把缓存区内容保存起来?
发布于 2022-11-07 09:50:19 浏览:568
订阅该版
[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
被浏览
568
关于作者
用户名由3_15位
这家伙很懒,什么也没写!
提问
53
回答
115
被采纳
16
关注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
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
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系统调度
2
FRDM-MCXN947 Flash实践--W25Q64
3
NXP MCXN947测评(一)开箱+环境配置
4
stm32f103的adc+dma多通道采集数据
5
恩智浦FRDM-MCX947上的 IIC(硬件) 实践
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
CAN总线
Hardfault
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
WIZnet_W5500
ota在线升级
cubemx
I2C
flash
UART
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
BSP
ADC
keil_MDK
socket
中断
编译报错
MicroPython
GD32
Debug
ulog
SDIO总线
msh
rt_mq_消息队列_msg_queue
C++_cpp
SFUD
本月问答贡献
xiaorui
20
个答案
3
次被采纳
Juggernaut
12
个答案
3
次被采纳
踩姑娘的小蘑菇
12
个答案
2
次被采纳
小小李sunny
10
个答案
2
次被采纳
crystal266
4
个答案
2
次被采纳
本月文章贡献
ZVML_9668
4
篇文章
6
次点赞
Lu_盼盼
4
篇文章
3
次点赞
Z_Y
3
篇文章
5
次点赞
ThinkCode
2
篇文章
2
次点赞
oxlm
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部