Выполнение кода из ОЗУ в STM32

Недавно я начал программировать на ядерной плате STM32F4. Я только что понял, что программирование во флеш-память возможно только ограниченное количество раз (хотя это немало, но это оценочная плата, и ее можно будет программировать снова и снова для разработки различных проектов). После этого я где-то читал, что можно напрямую программировать в ОЗУ вместо флэш-памяти, но не смог найти никакой технической информации об этом.

Кто-нибудь знает, как изменить компоновщик / make-файл, чтобы скомпилировать и связать программу, которая будет выполняться с начального адреса ОЗУ, а не с флэш-памяти?

ps: я использую сгенерированные коды STM32CubeMX для системной рабочей среды и скрипт для создания make-файла для проекта.

Более серьезная проблема заключается в том, как вы ожидаете, что код попадет в оперативную память. Вам потребуется какое-то соединение с другим устройством, которое предоставляет код после сброса (или загрузить код в ОЗУ из флэш-памяти, но это не дает цели (хотя вы можете уменьшить количество операций записи во флэш-память, сжав код во флэш-памяти)).   —  person Nixmd    schedule 05.03.2017

Флэш-программирование, вероятно, исчисляется многими тысячами, если не десятками тысяч, вы уже достигли этого?   —  person Nixmd    schedule 05.03.2017

Помимо отличного ответа @FreddieChopin, два других момента о выполнении из ОЗУ на STM32; 1) Для большинства частей размер ОЗУ намного меньше, чем у флэш-памяти, поэтому вы должны ограничить размер своего приложения. 2) При работе с флэш-памятью доступ к данным и инструкциям для чтения и записи осуществляется по отдельным шинам, а флэш-память имеет ускоритель, что обеспечивает полную указанную производительность 1,25DMIPS / МГц. Запуск из оперативной памяти вызывает конкуренцию на шине за доступ к данным и инструкциям и значительно замедляет выполнение.   —  person Nixmd    schedule 05.03.2017

В том маловероятном случае, если износ вспышки станет проблемой до того, как произойдет какое-то другое бедствие, такое как просто неправильная установка платы или повреждение электростатическим разрядом, просто купите другую плату — относитесь к ней как к расходному материалу. Кроме того, как вы думаете, как долго вы будете использовать это поколение STM32 в будущих проектах? Технологии развиваются, затраты падают, а поставщики заменяют устаревшие детали, так что вы, вероятно, выберете другой процессор для будущих проектов.   —  person Nixmd    schedule 05.03.2017

Какое максимальное количество операций записи и сколько стоит новый микроконтроллер и / или плата оценки? Вероятно, имеет смысл просто не беспокоиться об этом и либо заменить микроконтроллер, либо просто купить новую плату, если вы когда-нибудь дойдете до этого.   —  person Nixmd    schedule 06.03.2017

Я программировал stm32 flash снова и снова больше года, и он до сих пор работает. Сколько работы вы планируете делать над одной конкретной доской? Как только вы закончите с ним работать, он многократно окупился.   —  person Nixmd    schedule 01.08.2018

Просто комментарий к призракам в комнате, но я наткнулся на этот вопрос через Google, так как мне нужна была та же информация, что и OP; но в моем случае я планирую динамически перезагружать STM32 с главного контроллера (ESP32) в зависимости от требований к работе в реальном времени во время выполнения (следовательно, потенциально многие тысячи перепрограмм в течение срока службы) — в то время как точки скептиков были совершенно справедливы для ОП. Я, со своей стороны, благодарен исходному вопросу, и, следовательно, ответы никогда не исчезли из-за предыстории постановки вопроса.   —  person Nixmd    schedule 13.10.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!