, поэтому у меня есть вопрос относительно пользовательского файла Scatter, который я собираюсь использовать.
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00008000 { ; load region size_region
ER_IROM1 0x08000000 0x00008000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00002000 { ; RW data
.ANY (+RW +ZI)
}
}
ПЗУ хранится в 0x08000000 ~ 0x08008000
.Можно ли было бы установить для него некоторое пространство, скажем, например, 0x08007C00 ~ 0x08007FFF
, и задать для него область чтения и записи?Давайте возьмем этот диапазон адресов памяти как «Данные пользователя»
Я бы использовал область «Данные пользователя» в моей программе как сегмент, где данные могут быть записаны во время работы моей основной программы и когда я выключаю питаниеи включив устройство, я могу загрузить данные, которые были ранее записаны в этот сегмент.
Я использую цикл и HAL_Flash_Program
для записи данных на начальный адрес памяти 0x08007C00
.Какие изменения я должен внести в файл Scatter и, возможно, в мой C-файл, чтобы разрешить запись данных в указанную область памяти во время работы моей основной программы?
Спасибо
* Я используюSTM32F051
микроконтроллер.