Комментарии 9
… Обновление
влечёт ряд изменений, наиболее важное из которых — поддержка AVR...
Под AVR имеется в виду семейство восьмибитных микроконтроллеров фирмы Atmel?
Ардуину можно будет на Rust программировать?
Да, это семейство. Только уже не Atmel, а Microchip.
Судя по состоянию задачи прямо сейчас изкоробки сборка под AVR все еще не работает — там есть ряд других сложностей, которые надо будет решить.
Но есть форк компилятора ржавчины, который может собирать код под AVR (не пробовал, но так написано). У них есть какие-то демки — avr-rust/blink — и какая-то горстка удобств для ардуины — avr-rust/ruduino.
Я так понимаю что план состоит в постепенном влитии этого форка в апстрим.
Мне определённо нравится моя работа: я сейчас пишу прошивку для STM32 на Rust и никто не возражает. Пока что выглядит, что написать её на Rust не сложнее, чем на C (за исключением того, что сборка без оптимизации не работает — собирается, но постоянно ловит какие‐то исключения), хотя это вообще‐то первый мой проект на Rust. Ну если не считать того, что в том же репозитории у меня лежит уже четыре раза переписанная мигалка светодиодом:
- На задержке через опрос флага прерывания таймера с блогa разработчика svd2rust, переписана под последную версию всех зависимостей при том, что патча для svd для бо́льшей типобезопасности я не нашёл. Так и не заработала.
- На задержке через инкремент
volatile
памяти — первая собственно заработавшая. - С миганием в прерывании таймера.
- С миганием в прерывании таймера, но уже на основе cortex-m-rtfm. Кстати удивительно, но с оптимизациями эта версия заняла где‐то на 10—20 байт меньше предыдущей. (Без оптимизации, думаю, не заработает. Во всяком случае, «эхо» по UART, получившееся как промежуточный результат написания собственно нужной прошивки, без оптимизации не работало.)
Если интересно, то ничего никуда сейчас не выложено.
Выпуск Rust 1.25