Pull to refresh

Comments 25

Или можно использвать 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.

Круто! Тот самый патч наложили, про который где-то в упомянутых тут ветках сахары упоминался? Если там не слишком сложно, то GCC 14.2 вышел:) Думаю, все будут рады и благодарны.

Не знаю как там на сахаре, крайне редко там бываю. Реализацию WCH-Interrupt-fast для xpack брал отсюда. Пересобирать последний xpack лениво и не так тривиально и быстро как ванильный gnu gcc. С multilib на моём 3800x во все потоки с нуля оно собиралось часа 4 (включая время на скачивание) и съедало около 80 ГБ дискового пространства. Но может быть когда-нибудь и займусь ...

Здорово! В телеграме лайкнул тоже:) Улыбнулся от неизбежного небольшого виндолинуксового холивара

Help!
Поясните поподробнее пункт Установка Ninja.
По ссылке я скачиваю ninja-win.zip, распаковываю его, и запускаю на выполнение находящейся там .exe файл. И ничего не происходет. Открывается какое-то окно и мгновенно закрывается. Что я делаю не так?

Так ведь это консольная программа, при запуске в без аргументов выведет в консоль сообщение (usage скорее всего) и завершится.

Попробуйте её из командной строки запустить, увидите. Но вообще стоит прописать путь до директории с исполняемым файлом в переменную PATH, чтобы cmake обнаружил. Знаю, можно в отдельной сессии командной оболочки добавлять пути но ИМХО это мазохизм какой-то в данном случае.

У WCH появилась MounRiver Studio 2, она уже на базе VSCode

Sign up to leave a comment.

Articles