Как стать автором
Обновить

Комментарии 17

Или можно использвать PlatformIO, там уже добавлена поддержка ch32.

Можно, конечно, я во вступлении написал об этом. Но это же то же самое, по сути, что взять MounRiver - собственный формат проекта, что мне не нравится.

Ну и бывают некоторые околополитические вопросы и проблемы использования тех или иных инструментов.

Ясно, спасибо!

Кажется там только один мк - ch559 (с ядром 8051)? Как туда добавить ch582f?

Я там только ch32v003 использовал, про остальные не знаю.

Добрый день, я работаю в компании как раз над оборудованием с ch32 в основе. Вы не пробовали настроить vscode под c++? Moun river это позволяет, но там достаточно древний стандарт, и поднять его, по крайней мере, до 11 проблемно. Vscode было бы лучшим решением

Добрый, в CMakeLists прописано, что используются ASM, C и C++, так что просто создавайте cpp-шный файл и будет собрано под C++. Хотя странно, что древний - в последней версии GCC 12.2, он C++20 во многом поддерживает.

Собственно, проделанная работа - это подготовка к тому, чтобы сделать порт библиотечки zhele под ch32, а она "плюсовее" некуда.

Ну и можно set (CMAKE_CXX_STANDARD 23) добавить

П. С. Нашел в properties проекта настройку для смены стандарта

В MounRiver? Это ж эклипс, у всех таких IDE настройка компилятора (и версии стандарта) в одном месте: C/C++ Build -> Settings -> GNU XXX Compiler -> Optimization -> Language standart.

Тоже пришел к подобной связке, только вместо CMake->Make, один раз написал файл и он сам ищет все .c .cpp .h .hpp в желаемых папках.
И расширение для отладки Native Debug, оно более общее.

Мне нравятся подобные решения, так как имея минимальный набор инструментов можно собирать проекты для любых чипов, любой конфигурации на бесплатных обновляемых инструментах (Для меня это критично, так как использую некоторые фичи С++20, для чистого С обновляемость компилятора не так важна).

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

А так да, "бесплатное" обновление до самых свежих версий тулчейна, под stm даже C++23 кое-где уже использую (статический оператор [])

Например, для контроллеров STM32 существует замечательный проект ObKo/stm32-cmake

Я в своей ленности, завёл cmake stm32duino и QtC.

Работают ли прерывания с 13й версией GCC? Там ведь надо использовать специальный атрибут от WCH __attribute__((interrupt("WCH-Interrupt-fast"))) По крайней мере в их версии компилятора.

Я что-то такое видел, но не могу ответить, к сожалению. Если правильно понял RM, то у контроллеров кроме V0, по сути, два набора векторов и вопрос в том, к какому из двух возможных компоновщик слинкует определенный обработки, верно?

Надо изучить, конечно. Возможно, рано порадовался возможности использовать GCC 13.

Могу быть не прав, но из ЭТОГО сделал вывод, что в корректном случае не должно быть пролога/эпилога (naked), но должна быть инструкция mret в конце. MounRiver так сделал.

Потыкал в атрибуты, действительно, GCC из рассмотренного в статье тулчейна не сгенерировал правильный ассемблерный код, к сожалению.

Видимо, нужно брать версию из MRS или как-то патчить, если сильно нужна свежая версия (патчить, наверно, по мотивам ЭТОГО репо).

Да, можно взять PATH из mounriver ide и добавить в PATH в одной из целей make, таким образом, обращаться не к глобальному gcc, а к тому, который прилагается к MRS

Конечно, это один из очевидных вариантов - использовать GCC из MRS.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории