硬汉嵌入式论坛

 找回密码
 立即注册
查看: 172|回复: 2
收起左侧

[Cache] 开启DCache,RTC读取不准

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2025-9-12 20:45:54 | 显示全部楼层 |阅读模式
各位大佬,你们有试过吗?开启DCache,存在RTC误差,大概5分钟误差5秒左右,这也太大了,关闭DCache,就好了,是什么原因导致的啊?
读取RCT的方式是cpu轮循使用的是HAL库

变量的地址定义在D1域

RTC_TimeTypeDef timeStruct;
RTC_DateTypeDef dateStruct;



HAL_RTC_GetTime(&hrtc, &timeStruct, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &dateStruct, RTC_FORMAT_BIN);


MPU配置的4中策略均测试过,只要开启DCache,就会产生误差
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118331
QQ
发表于 2025-9-13 08:37:33 | 显示全部楼层
正常情况下,Cache不会影响这个。因为这个RTC没有多主访问的问题。

不过为了验证,可以试试将你的这两个变量放在DTCM试试。

RTC_TimeTypeDef timeStruct;
RTC_DateTypeDef dateStruct;

-=---------------------------------------
使用RTC只遇到过这个问题

使用STM32H7的RTC依然要先读时间,再读日期,这个老毛病在F4上就有
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=89912
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2025-9-13 09:19:50 | 显示全部楼层
发现问题了,开启DCache,导致温度过高,90多度,甚至有时候到110多度,降频了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 16:32 , Processed in 0.038880 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表