@@ -547,6 +547,7 @@ int hal_flash_otp_write(uint32_t flashAddress, const void* data, uint16_t length
547547{
548548 volatile uint16_t tmp ;
549549 uint16_t idx = 0 ;
550+ const uint16_t * pdata = (const uint16_t * )data ;
550551 if (!(flashAddress >= FLASH_OTP_BASE && flashAddress <= FLASH_OTP_END )) {
551552 return -1 ;
552553 }
@@ -569,13 +570,11 @@ int hal_flash_otp_write(uint32_t flashAddress, const void* data, uint16_t length
569570 DSB ();
570571
571572 /* Program an OTP word (16 bits) */
572- * (volatile uint16_t * )flashAddress = * ( const uint16_t * ) data ;
573+ * (volatile uint16_t * )flashAddress = * pdata ;
573574
574- #if 0
575575 /* Read it back */
576576 tmp = * (volatile uint16_t * )flashAddress ;
577577 (void )tmp ; /* avoid unused warnings */
578- #endif
579578
580579 /* Wait for last operation to be completed */
581580 flash_otp_wait ();
@@ -584,7 +583,7 @@ int hal_flash_otp_write(uint32_t flashAddress, const void* data, uint16_t length
584583 FLASH_OPTCR &= ~FLASH_OPTCR_PG_OTP ;
585584
586585 flashAddress += sizeof (uint16_t );
587- data ++ ;
586+ pdata ++ ;
588587 idx += sizeof (uint16_t );
589588 }
590589
@@ -596,16 +595,17 @@ int hal_flash_otp_write(uint32_t flashAddress, const void* data, uint16_t length
596595int hal_flash_otp_read (uint32_t flashAddress , void * data , uint32_t length )
597596{
598597 uint32_t i ;
598+ uint16_t * pdata = (uint16_t * )data ;
599599 if (!(flashAddress >= FLASH_OTP_BASE && flashAddress <= FLASH_OTP_END )) {
600600 return -1 ;
601601 }
602602 for (i = 0 ;
603603 (i < length ) && (flashAddress <= (FLASH_OTP_END - 1 ));
604604 i += sizeof (uint16_t ))
605605 {
606- * ( uint16_t * ) data = * (volatile uint16_t * )flashAddress ;
606+ * pdata = * (volatile uint16_t * )flashAddress ;
607607 flashAddress += sizeof (uint16_t );
608- data ++ ;
608+ pdata ++ ;
609609 }
610610 return 0 ;
611611}
0 commit comments