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

 
 
> Доступ к flash памяти STM32 из программы, Дописать незаписанный байт в слово
Eskimos
сообщение Feb 7 2017, 13:18
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 19-11-10
Пользователь №: 61 022



Добрый день!
Занимаюсь разработкой загрузчика для STM32F105R8T6.
Согласно документации на семейство микроконтроллеров запись во флеш память осуществляется 16-битными полусловами.
У меня появилась необходимость записать в ячейку памяти с четным адресом 1 байт, а затем(то есть не одновременно 2 байта, а 1 за 1, в общем случае между этими записями могут быть еще какие-то операции) с последующим нечетным адресом еще 1 байт. Перед записью все используемые ячейки памяти стерты. Поскольку писать можно только 16-битными полусловами, приходится сделать следующее для записи(привожу 2 варианта в разном порядке):
Код
    uint32_t address = 0x08006040;
    FLASH_ProgramWord_16(address,0xFF22);
    FLASH_ProgramWord_16(address,0x11FF);


Код
    uint32_t address = 0x08006040;
    FLASH_ProgramWord_16(address,0x11FF);
    FLASH_ProgramWord_16(address,0xFF22);


Сама процедура записи(но вряд ли дело в ней):
Код
void FLASH_ProgramWord_16_was(uint32_t Address, uint16_t Data)
{
   /*Разблокировать flash*/
   if((FLASH->CR & FLASH_CR_LOCK) != RESET)
   {
       FLASH->KEYR = (uint32_t)0x45670123;
       FLASH->KEYR = (uint32_t)0xCDEF89AB;
   }
    
   /* Ожидание последняя операция должна быть завершена */
   while (FLASH->SR & FLASH_SR_BSY);
   if (FLASH->SR & FLASH_SR_EOP)
   {
        FLASH->SR = FLASH_SR_EOP;
   }
    
   FLASH->CR |= FLASH_CR_PG;
   *(uint16_t*)Address = Data;
   while (FLASH->SR & FLASH_SR_BSY);
}


В 1 варианте получаю FF22, во втором 11FF, желанные 1122 получить не удается.
Возможно ли реализовать такую запись во флеш именно на таком микроконтроллере? И если возможно, то что я не так делаю? Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Eskimos   Доступ к flash памяти STM32 из программы   Feb 7 2017, 13:18
- - ViKo   А если вторая команда будет КодFLASH_ProgramWord_1...   Feb 7 2017, 13:27
|- - Eskimos   Цитата(ViKo @ Feb 7 2017, 16:27) А если в...   Feb 7 2017, 13:32
- - Сергей Борщ   QUOTE (Eskimos @ Feb 7 2017, 15:18) Возмо...   Feb 7 2017, 15:03
|- - jcxz   Цитата(Сергей Борщ @ Feb 7 2017, 17:03) ч...   Feb 7 2017, 22:19
|- - ViKo   Цитата(jcxz @ Feb 8 2017, 01:19) А флешь-...   Feb 8 2017, 05:42
||- - makc   Цитата(ViKo @ Feb 8 2017, 08:42) А разве ...   Feb 8 2017, 06:04
||- - aaarrr   Цитата(ViKo @ Feb 8 2017, 08:42) А разве ...   Feb 8 2017, 07:08
||- - jcxz   Цитата(ViKo @ Feb 8 2017, 07:42) А разве ...   Feb 8 2017, 14:03
|- - Сергей Борщ   QUOTE (jcxz @ Feb 8 2017, 00:19) А флешь-...   Feb 8 2017, 06:56
- - KRS   Причем у LPC вообще на флешу шина 128 бит - так чт...   Feb 8 2017, 08:14
- - Eskimos   Спасибо за ответы. Видимо такая запись не осуществ...   Feb 8 2017, 08:19
|- - Сергей Борщ   QUOTE (Eskimos @ Feb 8 2017, 10:19) Видим...   Feb 8 2017, 09:53
- - Genadi Zawidowski   ЦитатаЗанимаюсь разработкой загрузчика для STM32F1...   Feb 8 2017, 21:12
|- - ViKo   Цитата(Genadi Zawidowski @ Feb 9 2017, 00...   Feb 9 2017, 04:59
- - Genadi Zawidowski   Встроенный flash 105-го не корректируется (DocID13...   Feb 9 2017, 09:46
|- - scifi   Цитата(Genadi Zawidowski @ Feb 9 2017, 12...   Feb 9 2017, 10:33
|- - Сергей Борщ   QUOTE (scifi @ Feb 9 2017, 12:33) Это сра...   Feb 9 2017, 10:40
|- - scifi   Цитата(Сергей Борщ @ Feb 9 2017, 13:40) и...   Feb 9 2017, 11:01
|- - Сергей Борщ   QUOTE (scifi @ Feb 9 2017, 13:01) Код ECC...   Feb 9 2017, 12:21
|- - scifi   Цитата(Сергей Борщ @ Feb 9 2017, 15:21) П...   Feb 9 2017, 12:49
- - Obam   Если мне не изменяет память, то (да, не F105) у L1...   Feb 9 2017, 10:49
- - ViKo   Вот что написано в datasheet Reference manual на у...   Feb 9 2017, 11:38
- - umup   а нельзя писать в 2 разных слова ? [CENSORED], или...   Feb 13 2017, 12:11
- - esaulenka   Цитата(umup @ Feb 13 2017, 15:11) а нельз...   Feb 14 2017, 07:14


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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 08:17
Рейтинг@Mail.ru


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