воскресенье, 13 декабря 2015 г.

Кубический генератор проектов

Не так давно я заинтересовался разработкой для архитектуры ARM. Обзавелся замечательной платкой STM32F4Discovery и понеслась. Благо для плат от STMicroelectronics нет необходимости паять программаторы. Это не AVR. Тут все для людей. Начиная от юзабилити и до прайса.

Методом тщательного перекапывания гугла, рерференсов и даташитов был выбран вариант Eclipse + GNU ARM Toolchain + OpenOCD. Муки выбора IDE - отдельная песня и как-нибудь расскажу об этом.

А также была выбрана очень полезная тулза от самой STMicroelectronics - STM32CubeMX (далее просто - куб). Это существенно освеженный MicroXplorer с генератором проектов под Keil uVision отдельно для 4-й и 5-й версий, IAR EWARM, TrueSTUDIO и System Workbench (который и есть Эклипс с некоторыми доработками французов из Ac6).

Куб - весчь в хозяйстве нужная и полезная. Вот только проект он генерирует несколько специфически. К имени проекта, заданного при сохранении (пусть будет TestProject), в эклипс-проект к названию артефакта будет добавлено " Configuration". После сборки будет сгенерирована прошивка с именем "TestProject Configuration.elf". А в процессор не зальется, т.к.  OpenOCD будет искать файл "TestProject.elf", по имени материнского проекта куба.

Меня порядком достало после каждой перегенерации проекта лезть в конфигурацию и менять имя артефакта и я решил решить (а как иначе решать?)... Вобщем, лень - двигатель прогресса. Пришлось перелопатить все файлы куба, чтобы понять где порылась собака. Об чем я и расскажу, авось кому-то пригодится.

В папке с установленным кубом, а у меня это C:\STM32Toolbox\STM32Cube\STM32CubeMX\, я нашел файлик \db\plugins\projectmanager\fileConfig.ftl и заменил в нем секцию <name>${Configuration} Configuration</name> на <name>${Configuration}</name>.

Voila!

Немного лирики. Куб для генерации исходников и проектов использует шаблонизатор FreeMarker. Собственно, при большом желании и знании FreeMarker'а, можно перелопатить все шаблоны и заточить под себя. Но мне такие кардинальные меры пока не нужны. 

В общем, именно в этом файле и задается название артефакта. В этом файле еще много чего важного и глобального задается. Он общий для генератора проекта под все поддерживаемых IDE. 

Следующим этапом будет запуск куба под линуксом, т.к. плагин для эклипса STMicroelectronics больше отдельно не делает и дистрибутив куба есть только под винду, что ИМХО некошерно для матерого с/с++ девелопера.

Комментариев нет:

Отправить комментарий