ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
224896
vmp (02.12.2010 22:01, просмотров: 755)
STM32F10x (XL series): Похоже нашел багу во флеш-контроллере. Не сбрасывается бит STRT. В описании (PM0068 Programming manual STM32F10xxx XL-density Flash programming) сказано про бит старта операции стирания в Flash control register (FLASH_CR): Bit 6 STRT: Start This bit triggers an ERASE operation when set. This bit is set only by software and reset when the BSY bit is reset. Так вот, он в действительности не снимается после операции стирания памяти опций (The option byte erase sequence) и остается взведенным. Когда я после программирования option bytes перехожу к стиранию памяти с кодом инициализации, этот бит остается взведенным. Поэтому последовательность стирания страницы: - Set the PER bit in the FLASH_CR register - Program the FLASH_AR register to select a page to erase - Set the STRT bit in the FLASH_CR register срабатывает слишком рано, сразу после установки бита PER, еще до момента занесения адреса страницы в регистр адреса. При этом стирается страница с кодом выполняющейся программы и все рассыпается. Эту ошибку удалось обойти принудительным сбросом бита STRT после операции стирания опций.