Перейти к содержанию
    

Как залить прошивку в ОЗУ STM32F105RBT6 для отладки?

Как залить прошивку в ОЗУ STM32F105RBT6 для отладки, т.е. что бы не трогать ресурсограниченый флеш на время отладки,

в среде Keil 5.26, под китайский ST-link v2?

Тут кое что объяснили:

https://radiokot.ru/forum/viewtopic.php?f=59&t=159164

но нужна более подробная пошаговая инструкция для сильно начинающего кодера под STM32.

Изменено пользователем Donker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, Donker said:

 не трогать ресурсограниченый флеш на время отладки,

Вы шутите? :mda:Ушатать флэш отладкой??  Да еще и медленным st-линком? :laugh1: 

На это потребуется полжизни 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моим прикидкам, я его буду ушатывать каждые 2 месяца.

В любом случае, в будущем может потребоваться подгружать модули прошивки c SD карточки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 minutes ago, Donker said:

По моим прикидкам, я его буду ушатывать каждые 2 месяца.

Покажите свои прикидки.

У нас в отделе полно отладочных плат, которые пользовали все кому ни лень и "в хвост и в гриву" уже много-много лет.

За все это время ни одна не умерла по причине якобы "износа" флэш.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня тут проект под STM8S003 (для хобби-девайса), в этом МК ресурс Flash всего 100 циклов. 100 циклов, а не 100 000:ok:

И я, в общем-то, не сильно переживаю на этот счет - запустить и отладить почти всю периферию, что есть в этом МК, мне видится возможным за эти 100 циклов. Как убить память в десятки тысяч (а то и сотни!) - надо каждую минуту перепрошивать, сидя беспросветно 7 дней за ПК. Так что, думаю, опасения напрасны. Другое дело, если хочется побыстрее загружать прошивку в МК для отладки...

Но если так хочется, вот ссылочка, можете почерпнуть оттуда много интересного: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=75331

 

Изменено пользователем Arlleex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Quote

Как убить память в десятки тысяч (а то и сотни!) - надо каждую минуту перепрошивать, сидя беспросветно 7 дней за ПК. Так что, думаю, опасения напрасны.

Вот и я о том же! :big_boss:

Quote

Другое дело, если хочется побыстрее загружать прошивку в МК для отладки...

Сначала отдать все st-link бедным студентам и купить себе нормальный отладчик, если еще этого не сделали конечно 

А чтобы не шить каждый раз весь проект целиком, отлаживать его кусками, отключая (комментируя) уже отлаженные модули/блоки. При разумном построении проекта это очень упрощает работу ))

Также можно заранее залить во флэш те ресурсы, которые почти не изменяются: картинки/графику например.

Я так делал, создавая разные исполнения для одного и того же проекта (помимо "классических" DEBUG/RELEASE).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, Donker said:

бы не трогать ресурсограниченый флеш на время отладки

Сейчас не начало 90-х, флешку угробить надо очень постараться. Присоединяюсь к коллегам -- не волнуйтесь напрасно. В любом случае заменить микроконтроллер на плате или купить новый кит будет дешевле, чем искать баги после переноса программы из ОЗУ в ПЗУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот вы смеётесь, а у меня так у SPI-флешки ножка отвалилась. Из-за перетыкания между кроваткой, подпаянной к плате и программатором. Правда, она для одноканального режима и не нужна была, но всё же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, haker_fox сказал:

Сейчас не начало 90-х, флешку угробить надо очень постараться. Присоединяюсь к коллегам -- не волнуйтесь напрасно. В любом случае заменить микроконтроллер на плате или купить новый кит будет дешевле, чем искать баги после переноса программы из ОЗУ в ПЗУ.

Если при таком переносе проявляются какие-то баги, то это уже хорошо, что они проявились - их надо искать и устранять. Только из-за одного этого стоит переносить туда-сюда. 

Нормально написанное ПО как правило не перестаёт работать при переносе в разные области памяти. А сам перенос настолько прост, что сам по себе не должен создавать дополнительных ошибок.

Я сам активно использую отладку в RAM или SDRAM почти во всех проектах. И везде у меня ПО работает одинаково и в FLASH и в RAM и в SDRAM. Изменяется только загрузка CPU и скорость загрузки отладчиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, jcxz said:

Я сам активно использую отладку в RAM или SDRAM почти во всех проектах.

А с какой целью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё же это тема - как перенести отладку  в RAM в Keil 5 + китайский ST-link v2, а не целисообразно ли это делать.

Общая концепция мне понятна - указать новый адрес начала и размер прошивки в оперативной памяти,

а также новый стартовый адрес и размер стэка, ещё как то подправить адрес прерываний, проблема

в куче далей, какие галочки куда ставить, где не перепутать двоеточее с тоской запятой, какие файлы

с какими названиями надо создавать и куда их класть и т.п.

Например:

file.php?id=320096

Зачем нужно столько полей ROM1, ROM2, ROM3?

Что означает "off-chip" "on-chip"?

Допустим я хочу выделить под флэш в памяти первые 32кб из 64кб RAM, мне надо вместо 0x20000 прописать 0x8000 в том же поле
а стартовый адрес 0x8000000 заменить на 0x20000000, потом сместить начало и размер стека, вместо 0x20000000 написать
0x20008000, а в место 0x10000 написать 0x8000, правильно?

 

============================

На другом форуме есть некоторая движуха http://kazus.ru/forums/showthread.php?p=1233188&posted=1#post1233188

Изменено пользователем Donker

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, Donker said:

Всё же это тема - как перенести отладку  в RAM в Keil 5

Ну коли вам нужно все разжевать и в рот положить, то вот ссылка: ТЫНЦ   :acute:

Далее следует открыть даташит на контроллер, где указано, как заставить его при сбросе стартовать из RAM (подсказка: см пины BOOTx).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, Forger said:

Далее следует открыть даташит на контроллер, где указано, как заставить его при сбросе стартовать из RAM (подсказка: см пины BOOTx).

При запуске под отладчиком это неважно. Всё можно настроить хотя бы в скрипте инициализации отладчика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, scifi said:

При запуске под отладчиком это неважно. Всё можно настроить хотя бы в скрипте инициализации отладчика.

Это - следующий этап, только для настоящих профи :dirol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Donker said:

Всё же это тема - как перенести отладку 

Просто ваш вопрос уж очень сильно звучал как страх за ресурс флеши. Вот мы и решили вас успокоить)))

С келйом не работаю, но думаю принцип один: указываете в настройках линкера стартовый и конечный адрес в ОЗУ для кода, оставшуюся часть ОЗУ как обычно под rw, stack, heap и т.п. В документации на МК читаете, что нужно поднастроить, возможно отмаппировать вектора прерываний из ПЗУ в ОЗУ. В LPC4337 вроде именно так и делали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...