FLASH_SIZE macro definition is not defined.
Mculover666 opened this issue · 1 comments
Mculover666 commented
Hi,i am a st mcu developer from china , and i have meet some trouble in stm32l4xx_hal_driver lib, lib version is the code on the master branch of this repo.
The FLASH_SIZE
macro definition is not defined but it is used in stm32l4xx_hal_flash.h(842 line) file:
#if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || \
defined (STM32L496xx) || defined (STM32L4A6xx) || defined (STM32L4P5xx) || defined (STM32L4Q5xx) || defined (STM32L4R5xx) || \
defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined (STM32L4S9xx)
#define FLASH_BANK_SIZE (FLASH_SIZE >> 1U)
#else
#define FLASH_BANK_SIZE (FLASH_SIZE)
#endif
In addition,i have found this defintion code in the v0.3.0(14-Jan-2015) version:
#define FLASH_SIZE_DATA_REGISTER ((uint32_t)0x1FFF75E0)
#define FLASH_SIZE ((((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) == 0xFFFF)) ? (0x400 << 10) : \
(((*((uint16_t *)FLASH_SIZE_DATA_REGISTER)) & (0x0FFF)) << 10))
so, i want to know why these code is removed in the latest version, and how can i solve this problem?
Thanks!
TOUNSTM commented
Hello @Mculover666,
Let me inform you that these macros has been moved to cmsis_device_l4.
For example @lines 1425 & 1427 in stm32l4q5xx.h file you'll find these definitions:
#define FLASH_SIZE_DATA_REGISTER ((uint32_t)0x1FFF75E0)
#define FLASH_SIZE (((((*((uint32_t *)FLASH_SIZE_DATA_REGISTER)) & (0x0000FFFFU))== 0x0000FFFFU)) ? (0x400U << 10U) : \
(((*((uint32_t *)FLASH_SIZE_DATA_REGISTER)) & (0x0000FFFFU)) << 10U))
Best Regards