Pull to refresh

Comments 13

С таким подходом можно было уже взять NuttX и ложить "изменяемую часть" в файловую систему.

Сейчас отрабатываю вариант с Lua. Пробрасываю интерфейсы аппаратки к машине и вообще из консоли пишу логику. Данным методом решил поделиться, чтобы ни у кого не возникало желания попробовать самому. Или по крайней мере знали, к чему может привести. По сути — поделился опытом.
Может имеет смысл написать свой bootloader, который будет делать IAP только изменившихся секций?
Как раз напротив, когда проект пересобирается полностью, то зачастую приходиться шить заново все разделы;

т.е. после пересборки если код для раздела не менялся, то бинарный код для раздела каждый раз получается разным?
Не всегда, но случается. Быстрый анализ по разделу показал, что при -g3 иногда добавляется отладочная информация о функциях, расположенных в соседних разделах. На -g2 такого уже не наблюдал. А про загрузчик — я уже описал выше свое решение. Ресурсы процессора позволяют.
Подскажите, а есть какое-нить хорошее руководство по линкеру gcc?
Сарказм? Не до конца понимаю, на что вы пытаетесь указать. Если вы про тег, то проект на С и С++. Правда цель статьи не разбор использования языка, а того, что «после него выходит».
Да. Сарказм. Просто ожидал увидеть хоть немного Си или C++ кода.
UFO just landed and posted this here
Нормальный отладчик грузит 512 кб кода во внутреннюю флэш за пару секунд.

Можно уточнить, какой? Конкретно stm32f405rgt6 с помощью официального st-link v2 на «4000» шьет порядка 10 секунд (на отладочной можно в режиме «9000» шить, но почему-то на моем конкретном чипе не прокатывает). J-link с AliExpres шьет примерно так же. Причем я сейчас говорю про скорость по JTAG порту, а не по SWD.
Решительно не вижу никакой необходимости тратить свои силы и время на оптимизацию этого процесса.

В принципе, согласен. Теперь уже. Когда сделал и понял, что больше проблем, чем плюсов.
Тем более, что отладка зачастую затрагивает сразу несколько изменений и требует на порядки больше времени.

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

Предпочитаю, если есть возможность, ставить что-то типа micro-sd или, если недопустимо по требованиям вибрационной устойчивости или прочего, то на flash на плате накатывать fat и использовать файловую систему для всяких картинок и прочего. Это дает не сильные накладные расходы, зато удобно сопровождать.
UFO just landed and posted this here
У меня uLink2 был

Не работал. Возьму на заметку. Попробую достать. А какой контроллер шили?
но потеря скорости очень существенная

SDIO интерфейс использовали? Или по SPI? Я стараюсь первый использовать. 4 бита. В проекта что разбирал в статье — это избыточно. Но вот например когда идет запись видео, хотя бы 480p, то уже критично.
да и апдейтить такие устройства гораздо сложнее

Спорный вопрос. Если вы храните пакет на git, то вам нет труда отследить соответствие.
Sign up to leave a comment.

Articles