Компилятор mikroC для процессоров ARM представляет собой законченную среду программирования, поддерживающую большое число процессоров Stellaris и STM32. Простота установки и большое количество встроенных библиотек выделяют его из ряда подобных программ. Большим достоинством mikroC является поддержка STLink, что позволяет программировать такие платы как STM32 Discovery.
Но при всех достоинствах, mikroC не лишен недостатков. Главный из них не совместимость с библиотеками STMicroectronics. Это не позволяет использовать весь богатый арсенал готовых решений для STM32. Проблема заключается в том, что Mikroelektronika создала свое описание регистров, а прямое подключение стандартных CMSIS не возможно, по причине отсутствия некоторых определений. Конечно можно вручную переопределить все имена регистров, но это достаточно трудоемкая задача. Второй вариант - адаптация CMSIS, требует хороших знаний библиотеки. Попытка решить эту задачу в лоб не прошла.
В процессе подключения пока CMSIS были обнаружены следующие проблемы:
1. Отсутствие файла stdint.h, который можно найти в поставке какого-либо другого компилятора. После его записи в папку библиотеки проявилась следующая ошибка.
2. Не определенность константы _I. В microC определено только _IO и _О. Удаление данного типа привело к продолжению компиляции, но вылезли новые ошибки.
Далее пока нет сил разбираться и есть большое желание перейти на другой компилятор, что опять же не хорошо. Радует, что разработчики знают о проблеме и обещали выпустить новую версию компилятора до конца года. Правда год уже почти кончился, а результатов пока нет, хотя для других процессоров новые компиляторы появляются. В общем остается пытаться разбираться и ждать.
Но при всех достоинствах, mikroC не лишен недостатков. Главный из них не совместимость с библиотеками STMicroectronics. Это не позволяет использовать весь богатый арсенал готовых решений для STM32. Проблема заключается в том, что Mikroelektronika создала свое описание регистров, а прямое подключение стандартных CMSIS не возможно, по причине отсутствия некоторых определений. Конечно можно вручную переопределить все имена регистров, но это достаточно трудоемкая задача. Второй вариант - адаптация CMSIS, требует хороших знаний библиотеки. Попытка решить эту задачу в лоб не прошла.
В процессе подключения пока CMSIS были обнаружены следующие проблемы:
1. Отсутствие файла stdint.h, который можно найти в поставке какого-либо другого компилятора. После его записи в папку библиотеки проявилась следующая ошибка.
2. Не определенность константы _I. В microC определено только _IO и _О. Удаление данного типа привело к продолжению компиляции, но вылезли новые ошибки.
Далее пока нет сил разбираться и есть большое желание перейти на другой компилятор, что опять же не хорошо. Радует, что разработчики знают о проблеме и обещали выпустить новую версию компилятора до конца года. Правда год уже почти кончился, а результатов пока нет, хотя для других процессоров новые компиляторы появляются. В общем остается пытаться разбираться и ждать.