Jump to content

    
KoGIch

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
24 минуты назад, VladislavS сказал:

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

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

Share this post


Link to post
Share on other sites
43 минуты назад, x893 сказал:

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

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

Share this post


Link to post
Share on other sites
10 часов назад, VladislavS сказал:

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

- Прибор 14!

- Что 14?

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

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

Share this post


Link to post
Share on other sites
2 часа назад, KoGIch сказал:

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
2 часа назад, VladislavS сказал:

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

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.