Использую STM32L152VBT6A , при попытке откатится к его "предшественнику" STM32L152VBT6 , обнаружились проблемы с записью во внутреннюю ЕЕPRОМ, а точнее оказалось, что стирание\запись слова (32) бит происходит нормально, но полуслово или байт вешают шину намертво. Понижение частот, эксклюзивный доступ из критической секции, выравнивание памяти -не помогает..
Хоть программа и сдефайнена на STM32L152VBT6,на STM32L152VBT6A всё нормально, а на искомом обращение в
HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Erase(uint32_t TypeErase, uint32_t Address)
*(__IO uint32_t *) Address = 0x00000000; // -работает......
*(__IO uint16_t *) Address = (uint16_t)0x0000; // *(__IO uint8_t *) Address = (uint8_t)0x00; // -HEТ!!
Подскажите пожалуйста, куда копать ..
UPD: -поборол, выравнивание по границе слов -таки помогает! т.е. расход ЕЕПРОМа увеличился соответственно
П.С. может кто-то подскажет, почему ВЕЗДЕ (дигикей, маузер, т.д. и даже у китайских подрядчиков) пропали STM32L152VBT6A?
Сообщение отредактировал dimone - Jun 22 2017, 13:10
|