aboutsummaryrefslogtreecommitdiff
path: root/lib/stm32
diff options
context:
space:
mode:
authorTomaz Solc2012-03-16 10:14:00 +0100
committerPiotr Esden-Tempski2012-04-24 09:06:32 +0200
commit5510e1fe3b68708e0b539cf615833fea52d389eb (patch)
tree80120bc7391b50ee389c0414312a6880783e43a4 /lib/stm32
parent0d50b97ed5c61bd7c3936407656a5c70c3cdfa23 (diff)
Wait for writes to finish upon exiting RTC config
This fixes race condition when rtc_get_counter_val() call immediately follows rtc_set_counter_val().
Diffstat (limited to 'lib/stm32')
-rw-r--r--lib/stm32/f1/rtc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/stm32/f1/rtc.c b/lib/stm32/f1/rtc.c
index 0b7769e..08a4953 100644
--- a/lib/stm32/f1/rtc.c
+++ b/lib/stm32/f1/rtc.c
@@ -99,14 +99,13 @@ void rtc_enter_config_mode(void)
void rtc_exit_config_mode(void)
{
- /* u32 reg32; */
+ u32 reg32;
/* Exit configuration mode. */
RTC_CRL &= ~RTC_CRL_CNF;
/* Wait until the RTOFF bit is 1 (our RTC register write finished). */
- /* while ((reg32 = (RTC_CRL & RTC_CRL_RTOFF)) == 0); */
- /* TODO: Unnecessary since we poll the bit on config entry(?) */
+ while ((reg32 = (RTC_CRL & RTC_CRL_RTOFF)) == 0);
}
void rtc_set_alarm_time(u32 alarm_time)