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

Проблема при отладке на связке Visual Studio + STM32 + openocd + GDB

Здравствуйте! Вся эта связка крутится на 20й убунте. Набросал проект руками и завернул в Makefile. При сборке прошивки обнаружил, что некоторые участки, которые в бинарнике или в elf файле заполнены нулями, при генерации hex файла пропускаются, и получается что после очистки контроллера и заливки этого hex'a с пропущенными участками в местах где должны лежать нули остаются 0xFFFFFFFF и для меня это критично.

Вылечил это опцией --gap-fill 0, но столкнулся с тем что при запуске отладки прошивка собирается заново и уже не из моего Makefile, стирается контроллер, заливается прошивка и потом только запускается отладка. Так вот эта отладочная прошивка имеет тот же косяк с пропусками как при генерации hex без опции gap-fill.

Я перерыл весь гугл, поковырял исходники, но не смог найти где происходит сборка перед отладкой или как ее отключить. Очень прошу помощи.

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


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

Вы не то лечить пытаетесь. Лучше объясните зачем в бинарнике, эльфе или хексе вам нули понадобились? Иницализация нулями секций данных, предполагающих такую инициализацию, происходит при старте контроллера в стартапе. Придумать зачем пихать секции с нулями во флэшь с ходу не получается.

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


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

24 минуты назад, VladislavS сказал:

Вы не то лечить пытаетесь. Лучше объясните зачем в бинарнике, эльфе или хексе вам нули понадобились? Иницализация нулями секций данных, предполагающих такую инициализацию, происходит при старте контроллера в стартапе. Придумать зачем пихать секции с нулями во флэшь с ходу не получается.

Я не инициализирую нулями. Они появляются даже не в секции а фрагментами по 320 байт в результате сборки.

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


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

43 минуты назад, x893 сказал:

Смотрите map файл

У меня ld файл. Там все нормально. В терминале я вижу что вызывается команда make. Такое впечатление, что создается свой временный Makefile вот только не пойму кем и как его сконфигурировать.

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


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

10 часов назад, VladislavS сказал:

- Петька, прибор? 

- Прибор 14!

- Что 14?

- А что прибор?

Сарказм оценил, но я не могу рассказать накой мне сдались эти нули. Просто поверьте эти нули там нужны. Если можете помогите разобраться где прописаны правила сборки при отладке.

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


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

2 часа назад, KoGIch сказал:

но я не могу рассказать накой мне сдались эти нули. Просто поверьте эти нули там нужны.

Всё больше убеждаюсь, что они там даром не нужны. Скорее всего, между данными есть промежутки. В бинарнике эти места забиты нулями, ибо нет механизма сделать в нём дырки. А в хексе их просто не пишут. Вам же советовали map-файл смотреть. Присоединяюсь к совету.

 

2 часа назад, KoGIch сказал:

Если можете помогите разобраться где прописаны правила сборки при отладке

Извини, с VS Code не работаю. 

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


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

2 часа назад, VladislavS сказал:

Всё больше убеждаюсь, что они там даром не нужны. Скорее всего, между данными есть промежутки. В бинарнике эти места забиты нулями, ибо нет механизма сделать в нём дырки. А в хексе их просто не пишут. Вам же советовали map-файл смотреть. Присоединяюсь к совету.

 

Извини, с VS Code не работаю. 

Вот теперь я всё понял! Спасибо!

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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