реклама на сайте
подробности

 
 
> STM32F2xx, запись во флеш
esaulenka
сообщение Sep 16 2013, 08:31
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Приветствую!

При написании загрузчика столкнулся с непонятными граблями. Пользуюсь стандартной библиотекой
Код
  * @file    stm32f2xx_flash.c
  * @version V1.0.0
  * @date    18-April-2011


Вызываю
FLASH_Unlock ()
FLASH_EraseSector () - возвращает complete
FLASH_Unlock ()
FLASH_ProgramByte ()

ProgramByte выпадает в hardfault на команде branch на FLASH_WaitForLastOperation()

Код
    /* if the previous operation is completed, proceed to program the new data */
    FLASH->CR &= CR_PSIZE_MASK;
    FLASH->CR |= FLASH_PSIZE_BYTE;
    FLASH->CR |= FLASH_CR_PG;
  
    *(__IO uint8_t*)Address = Data;
        
    /* Wait for last operation to be completed */
    status = FLASH_WaitForLastOperation();

Пробовал перемещать весь модуль stm32f2xx_flash в ОЗУ, не помогло. (а надо ли? в reference manual сказано, что к flash нельзя обращаться в момент записи, но в примерах EEPROM Emulation ничего для этого не предпринимается).

Кто-нибудь вообще запись во флеш делал?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016