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

 
 
> Запись во FLASH, STM32F303VC
Jenya7
сообщение Jan 22 2018, 09:54
Сообщение #1


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Делаю так
CODE
void WriteFlash(void* src, void* dst, int len)
{
uint32_t timeout = 0;
uint16_t* srcw = (uint16_t*)src;
volatile uint16_t* dstw = (uint16_t*)dst;

FLASH->CR |= FLASH_CR_PG; /* Programm the flash */

while (len)
{
*dstw = *srcw;
while ((FLASH->SR & FLASH_SR_BSY) != 0)
{
timeout++;
if (timeout > 100000) break;
}
if (*dstw != *srcw )
{
goto EndPrg;
}
dstw++;
srcw++;
len = len - sizeof(uint16_t);
}

EndPrg:
FLASH->CR &= ~FLASH_CR_PG; /* Reset the flag back !!!! */
}

void WriteToFlash(uint32_t flash_page)
{
uint32_t *addr;
uint32_t size;

FLASH_Status status;

//flash unlock
if((FLASH->CR & FLASH_CR_LOCK) != RESET)
{
/* Authorize the FLASH Registers access */
FLASH->KEYR = FLASH_KEY1;
FLASH->KEYR = FLASH_KEY2;
}

status = FLASH_ErasePage(flash_page);

if (status == FLASH_COMPLETE)
{
addr = (uint32_t *)flash_page;
size = sizeof(MOTOR_SYS_PARAMS);
WriteFlash(&motor_sys_params, addr, size);
}

//flash lock
FLASH->CR |= FLASH_CR_LOCK;
}

На строчке while ((FLASH->SR & FLASH_SR_BSY) != 0) вылетает в HardFault_Handler.
Я этот код выдернул из старого проекта, он работал на том же STM32F3.

Сообщение отредактировал IgorKossak - Jan 22 2018, 20:22
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Запись во FLASH   Jan 22 2018, 09:54
- - Сергей Борщ   QUOTE (Jenya7 @ Jan 22 2018, 11:54) Делаю...   Jan 22 2018, 10:33
|- - Jenya7   Цитата(Сергей Борщ @ Jan 22 2018, 15:33) ...   Jan 22 2018, 10:46
|- - Сергей Борщ   QUOTE (Jenya7 @ Jan 22 2018, 12:46) ничег...   Jan 22 2018, 12:44
- - AHTOXA   Цитата(Jenya7 @ Jan 22 2018, 14:54) Делаю...   Jan 22 2018, 12:53
|- - Jenya7   Цитата(AHTOXA @ Jan 22 2018, 17:53) Может...   Jan 22 2018, 13:30
|- - Сергей Борщ   QUOTE (Jenya7 @ Jan 22 2018, 15:30) да вр...   Jan 22 2018, 13:35
|- - Jenya7   Цитата(Сергей Борщ @ Jan 22 2018, 18:35) ...   Jan 22 2018, 13:40
|- - scifi   Цитата(Jenya7 @ Jan 22 2018, 16:40) так я...   Jan 22 2018, 13:43
|- - Jenya7   Цитата(scifi @ Jan 22 2018, 18:43) Вероят...   Jan 22 2018, 13:47
|- - scifi   Цитата(Jenya7 @ Jan 22 2018, 16:47) R1 = ...   Jan 22 2018, 13:48
|- - Jenya7   Цитата(scifi @ Jan 22 2018, 18:48) Это за...   Jan 22 2018, 13:54
|- - scifi   Цитата(Jenya7 @ Jan 22 2018, 16:54) R1 - ...   Jan 22 2018, 13:58
|- - Jenya7   Цитата(scifi @ Jan 22 2018, 18:58) Ну и? ...   Jan 22 2018, 14:02
|- - scifi   Цитата(Jenya7 @ Jan 22 2018, 17:02) 62-я....   Jan 22 2018, 14:07
|- - Jenya7   Цитата(scifi @ Jan 22 2018, 19:07) Конечн...   Jan 22 2018, 14:16
|- - scifi   Цитата(Jenya7 @ Jan 22 2018, 17:16) ой. ч...   Jan 22 2018, 14:21
|- - Jenya7   Цитата(scifi @ Jan 22 2018, 19:21) Мой ка...   Jan 22 2018, 14:25
- - scifi   Цитата(AHTOXA @ Jan 22 2018, 15:53) Может...   Jan 22 2018, 13:38
- - Aleksandr Baranov   На всякий случай хочу напомнить: Any attempt to r...   Jan 22 2018, 14:00


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

 


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


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