Проблема 2000h (или как собрать GCC-ARM-embedded линкером большой проект)

Тема в первую очередь будет интересна пользователям среды Eclipse IDE/GNU ARM plugin/GCC ARM compiler под Windows.

Всякий уважающий себя эмбеддер рано или поздно вырастает из светодиодных моргалок, забрасывает авр-ки на полку, и пересаживается на более продвинутые чипы. С ростом возможностей микроконтроллера увеличивается и сложность встроенных программ. Мегабайты и Мегамипсы так и просят прикрутить к проекту графический ЖКИ, стек TCP/IP, файловую систему, а для полного счастья — конечно ещё и фриртоску.

И вот в один прекрасный момент проект перестаёт собираться. А виноват в этом может быть (ну конечно же, Билл Гейтс) лимит на длину командной строки в 8192 символа. Что же делать?


Читать дальше

Makefile для IAR + CodeBlocks

Открыл для себя Code::Blocks, чего и всем желаю.
Преднастроенных в ней компиляторов для STM8 нету, попытался добавить туда EWSTM8 но плюнул на эту затею.
Случайно попал на Atomthreads и обратил внимание, что там есть мейкфайлы под иар и космик.
Взял и причесал под себя иаровский, с космиком пока не срослось.
Полученный мейкфайл успешно испольую с CB.
Я понимаю, что тут нет нормальной отладки, но при особой нужде недолго поднять иаровский проект.
Вобщем — выкладываю, авось кому пригодится.
Конструктивная критика приветствуется.

Автоматическая проверка стиля кодирования

Когда над одним проектом работает несколько человек, то использование каждым программистом своего стиля кодирования затрудняет чтение, поддержку и слияние кода. Хороший вариант — принудительное использование единого стиля кодирования, например: JSF Air Vehicle — C++ Coding Standards, Google C++ Style Guide, Стандарты программирования на C++" от Александреску.
Однако каждый программист ленив и старые привычки написания кода искоренить совсем непросто.

Читать дальше

Не так страшен makefile

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

Итак, makefile — сценарий сборки для процедуры GNU make, являющейся неотъемлемой частью любого GCC-тулчейна.

Я мог бы цитировать главы из документации по GNU make или пересказать своими словами замечательную статью Владимира Игнатова, однако не хочу да и не вижу особого смысла, ибо все это любой заинтересованный читатель может изучить самостоятельно. Вместо этого я по пунктам разберу мой рабочий makefile, который с небольшими вариациями служит мне верой и правдой около 5 лет во многих проектах.

Поехали.


Читать дальше

Еще один makefile

MakefileДоброго времени суток!
Сколько уже про makefile говорено и писано — и все равно хочется отчебучить что-нибудь свое! Видят мои глаза отсутствие идеала, а пальцы стремятся это дело исправить.
Так что внесу и я свои 5 центов в это дело — опишу я идеальный makefile!
P. S. Все найденные ошибки, реализованные пожелания и изменения я буду здесь выкладывать. Так что здесь будет всегда актуальное состояние. Ну… так я планирую…


Читать дальше
  • +3
  • 25 марта 2014, 14:57
  • PICC
  • 1

Как запустить makefile под WINDOWS.

Не так давно я пересел на AtmelStudio6 с AVRStudio4. Есть у меня классный программатор клон STK500. Который просто прекрасно работает с 4й версией. Вот и получается, что пишу я теперь проги под 6й версией, а программатором пользуюсь из под 4ой. Неудобно как то. Попробовал подключить программатор к 6й. Работает через пень колоду. То работает, то не работает. Решил я сделать новый, чтоб работал по 6й версией и не пукал. Решил что это будет AVRISP mkII.

Читать дальше

Удобное использование libmaple в Eclipse CDT

Библиотека libmaple для работы с stm32 уже упоминалась здесь. Для начинающих осваивать stm32 она представляет собой значительно более высокоуровневую, простую и понятную альтернативу CMSIS+SPL.


Читать дальше

Sublime Text 2 как IDE для STM32

Уже несколько месяцев прошло, как я писал топик-ссылку про относительно новый текстовый редактор Sublime Text 2 (далее — ST). Первое впечатление от него — что это гламурный продвинутый блокнот, даже себя процитирую: "Это просто продвинутый блокнот, а не какая-нибудь IDE". Тред там развернулся неслабый.

Но я ошибался, и рад этому. Его можно и нужно использовать как IDE, в полном смысле этого слова: парсинг, контекстное автодополнение, сборка, прошивка, отладка. Всё это доступно, и я расскажу как. Только один нюанс: я использую Ubuntu, так что пользователям Windows придётся переложить всё на свой лад.


Читать дальше

Еще один шаблон проекта под STM32 на gcc

Вдруг пригодиться кому… Ну и критику гуру хотелось бы услышать.


Читать дальше

Ключики компилятора avr-gcc для уменьшения бинарника

AVR
Смысл в том, что те функции которые не вызываются, не включаются в исходный бинарник.
Добавляем в свой makefile строчки для компилятора -ffunction-sections и -fdata-sections
makefile + -ffunction-sections и -fdata-sections

Добавляем -Wl,-gc-sections для линкера:
makefile + -Wl,-gc-sections

Проверка:


Читать дальше