在闪烁uC时更新STM32F4上的RTC

问题描述 投票:3回答:3

当程序上传到STM32F4时,有没有办法用计算机信息更新RTC?例如,计算机上的日期和小时信息是:12h40 11/09/2018,当我用IAR / AC6刷新微控制器时,RTC是否设置了这些信息?

stm32 iar
3个回答
0
投票

我的想法是制作一个你在闪存后运行的脚本(我不熟悉IAR,但希望可以在FLASH之后运行一些东西),这个脚本将设置调试端口RTC寄存器的当前时间。

如果您使用ST-Link / V2硬件进行闪存并且您有使用python的经验,则可以使用该pyswd库。很容易,只需在python脚本中获取实际时间并在连接的MCU中设置适当的寄存器。


0
投票

据我所知,您有两种选择:

  1. 将PC时间记入固件。为此,您可以使用某些内存区域构建固件,或者实际上构建专用于实时值的Makefile,这些值在构建期间由脚本填充。当固件首次运行时,它将从这些位置读取并更新RTC。如果您采用这种方法,那么您的时间总会超出一定量,具体取决于构建和下载固件到设备所需的时间。
  2. 首次开机时写入PC时间。要做到这一点,您需要PC和设备之间的接口,以及PC上运行的应用程序。将命令应用程序获得当前PC时间并通过接口(例如,串行电缆)将其发送到设备,然后将更新RTC。这是一种更好的方法,因为设备时间将更紧密地耦合到PC时间,您也可以编写脚本。这里的缺点是你必须构建界面。

另外,请考虑您的应用程序是否确实需要“实时”。许多嵌入式设备可以利用相对时间,例如,自上电以来经过的毫秒数。


-2
投票

IMO最简单的方法是修改openOCD TCL脚本上传(闪烁后)小程序,它将更新RTC。 15分钟的工作

© www.soinside.com 2019 - 2024. All rights reserved.