Cube2Block - конвертер проектов из STM32CubeMX в Em::Blocks

Авторы: 

Один знакомый радиолюбитель попросил меня починить конвертер проектов написанный на C#. Код конвертера оказался мягко говоря не очень качественным, исправил с десяток косяков, надоело - сел и сделал свой - консольный на С++.

Про микроконтроллеры STM32 думаю никому рассказывать не нужно, а вот про STM32CubeMX и Em::Blocks стоит рассказать подробней.

Начнем с Em::Blocks - сайт его вечно недоступен, кроме как через Тор. С чем это связанно непонятно, то ли его в России залочили, то ли им мстят конкуренты, то ли лицензию Code::Blocks нарушили и им опять же мстят, то ли сами себе злобные буратины, но сайт недоступен - это факт и вместо него вылетает что-то левое. Собственно сам проект неплох, удобен и приятней чем всякие эклипсы, имхо. STM32CubeMX - относительно новый продукт, позволяющий визуально настраивать периферию контроллера и создавать болванку проекта для последующей разработки, что по идее должно экономить не мало времени.

Проблема в том, что Em::Blocks и STM32CubeMX совершенно не дружат. Поэтому поизучав структуру проекта Em::Blocks и проектные файлы MicroXplorer, написал утилиту, которой в качестве параметра скармливается директория с созданным проектом STM32CubeMX.

 CubeToBlock.exe "d:\\project\\"

Важное примечание: в директорию с проектом необходимо поместить код скрипта загрузки микроконтроллера (*.ld), утилита сама найдет файл, если же файла не будет - ничего страшного - вы сможете добавить его позже.

Изменения в версии 0.03

  1. Добавлено диалоговое окно выбора директории, при простом запуске утилиты
  2. Исправлена ошибка в генерации списка файлов проекта с расширением *.S (ассемблер)

Файлы: