Чтение и запись файла в конец флеш-памяти в устройстве STM32

У меня есть работающая прошивка, которую я развертываю в части STM32 с 64 КБ флэш-памяти (начиная с адреса 0x8000000). Я хочу использовать некоторый объем этой памяти ближе к концу пространства флеш-памяти для хранения сжатого файла в самой части STM32.

Как лучше всего записать этот файл во флэш-память с помощью openOCD? Стоит как-то вшить в прошивку ELF? Должен ли я прошить прошивку, а затем выполнить другую команду флеш-памяти, чтобы записать файл в определенную часть флеш-памяти?

После написания, как мне использовать openOCD, чтобы вытащить файл из этого места и вернуть его в формате, который gzip может распаковать?


person Taako    schedule 30.09.2019    source источник


Ответы (1)


По первому вопросу: этот поток обсуждает, как встраивать некоторые ресурсы в исполняемый файл.

Вероятно, было бы проще напрямую загрузить двоичный файл с помощью openOCD в командной строке.

По второму вопросу у вас будет прямой доступ к двоичному содержимому вашего файла во Flash. Сложность в том, что вам нужно реализовать распаковщик, чтобы распаковать его. Для этого, вероятно, есть много исходного кода, но, возможно, вы захотите оценить, является ли это лучшим решением: вы бы сэкономили память, сохранив заархивированный файл, но вы бы «потратили» немного на код, чтобы разархивировать его?

person Guillaume Petitjean    schedule 01.10.2019
comment
Я думаю, что лучший способ - действительно openOCD загрузить его с помощью flash write_image, мне на самом деле не нужно распаковывать на устройстве, ему просто нужно сбросить шестнадцатеричный код, и внешнее устройство заархивирует его с помощью tar / gunzip. - person Taako; 02.10.2019