KoGIch 0 Posted December 4, 2021 · Report post Здравствуйте! Вся эта связка крутится на 20й убунте. Набросал проект руками и завернул в Makefile. При сборке прошивки обнаружил, что некоторые участки, которые в бинарнике или в elf файле заполнены нулями, при генерации hex файла пропускаются, и получается что после очистки контроллера и заливки этого hex'a с пропущенными участками в местах где должны лежать нули остаются 0xFFFFFFFF и для меня это критично. Вылечил это опцией --gap-fill 0, но столкнулся с тем что при запуске отладки прошивка собирается заново и уже не из моего Makefile, стирается контроллер, заливается прошивка и потом только запускается отладка. Так вот эта отладочная прошивка имеет тот же косяк с пропусками как при генерации hex без опции gap-fill. Я перерыл весь гугл, поковырял исходники, но не смог найти где происходит сборка перед отладкой или как ее отключить. Очень прошу помощи. Quote Ответить с цитированием Share this post Link to post Share on other sites
VladislavS 0 Posted December 4, 2021 · Report post Вы не то лечить пытаетесь. Лучше объясните зачем в бинарнике, эльфе или хексе вам нули понадобились? Иницализация нулями секций данных, предполагающих такую инициализацию, происходит при старте контроллера в стартапе. Придумать зачем пихать секции с нулями во флэшь с ходу не получается. Quote Ответить с цитированием Share this post Link to post Share on other sites
KoGIch 0 Posted December 4, 2021 · Report post 24 минуты назад, VladislavS сказал: Вы не то лечить пытаетесь. Лучше объясните зачем в бинарнике, эльфе или хексе вам нули понадобились? Иницализация нулями секций данных, предполагающих такую инициализацию, происходит при старте контроллера в стартапе. Придумать зачем пихать секции с нулями во флэшь с ходу не получается. Я не инициализирую нулями. Они появляются даже не в секции а фрагментами по 320 байт в результате сборки. Quote Ответить с цитированием Share this post Link to post Share on other sites
x893 0 Posted December 4, 2021 · Report post Смотрите map файл Quote Ответить с цитированием Share this post Link to post Share on other sites
KoGIch 0 Posted December 4, 2021 · Report post 43 минуты назад, x893 сказал: Смотрите map файл У меня ld файл. Там все нормально. В терминале я вижу что вызывается команда make. Такое впечатление, что создается свой временный Makefile вот только не пойму кем и как его сконфигурировать. Quote Ответить с цитированием Share this post Link to post Share on other sites
VladislavS 0 Posted December 4, 2021 · Report post - Петька, прибор? - Прибор 14! - Что 14? - А что прибор? Quote Ответить с цитированием Share this post Link to post Share on other sites
KoGIch 0 Posted December 5, 2021 · Report post 10 часов назад, VladislavS сказал: - Петька, прибор? - Прибор 14! - Что 14? - А что прибор? Сарказм оценил, но я не могу рассказать накой мне сдались эти нули. Просто поверьте эти нули там нужны. Если можете помогите разобраться где прописаны правила сборки при отладке. Quote Ответить с цитированием Share this post Link to post Share on other sites
VladislavS 0 Posted December 5, 2021 · Report post 2 часа назад, KoGIch сказал: но я не могу рассказать накой мне сдались эти нули. Просто поверьте эти нули там нужны. Всё больше убеждаюсь, что они там даром не нужны. Скорее всего, между данными есть промежутки. В бинарнике эти места забиты нулями, ибо нет механизма сделать в нём дырки. А в хексе их просто не пишут. Вам же советовали map-файл смотреть. Присоединяюсь к совету. 2 часа назад, KoGIch сказал: Если можете помогите разобраться где прописаны правила сборки при отладке Извини, с VS Code не работаю. Quote Ответить с цитированием Share this post Link to post Share on other sites
KoGIch 0 Posted December 5, 2021 · Report post 2 часа назад, VladislavS сказал: Всё больше убеждаюсь, что они там даром не нужны. Скорее всего, между данными есть промежутки. В бинарнике эти места забиты нулями, ибо нет механизма сделать в нём дырки. А в хексе их просто не пишут. Вам же советовали map-файл смотреть. Присоединяюсь к совету. Извини, с VS Code не работаю. Вот теперь я всё понял! Спасибо! Quote Ответить с цитированием Share this post Link to post Share on other sites