Введение
Добро пожаловать в Книгу по Embedded Rust: вводную книгу об использовании языка программирования Rust на "Bare Metal" встраиваемых системах, таких как микроконтроллеры.
Для кого предназначен Embedded Rust
Embedded Rust предназначен для всех, кто хочет заниматься встраиваемым программированием, используя преимущества концепций более высокого уровня и гарантий безопасности, предоставляемых языком Rust. (См. также Для кого предназначен Rust)
Область применения
Цели этой книги:
-
Помочь разработчикам быстро освоить разработку на embedded Rust. Т.е. как настроить среду разработки.
-
Поделиться текущими лучшими практиками использования Rust для разработки встраиваемых систем. Т.е. как лучше использовать функции языка Rust для написания более правильного ПО для встраиваемых систем.
-
Служить кулинарной книгой в некоторых случаях. Например, как смешать C и Rust в одном проекте?
Эта книга старается быть как можно более общей, но для облегчения как для читателей, так и для авторов она использует архитектуру ARM Cortex-M во всех примерах. Однако книга не предполагает, что читатель знаком с этой конкретной архитектурой, и объясняет детали, специфичные для этой архитектуры, где это необходимо.
Для кого эта книга
Эта книга ориентирована на людей с опытом либо в embedded-разработке, либо в Rust, однако мы считаем, что каждый, интересующийся embedded-программированием на Rust, может извлечь из этой книги пользу. Для тех, у кого нет предварительных знаний, мы предлагаем прочитать раздел "Предположения и предпосылки" и наверстать упущенные знания, чтобы получить больше от книги и улучшить опыт чтения. Вы можете посмотреть раздел "Другие ресурсы", чтобы найти материалы по темам, которые вы хотите наверстать.
Предположения и предпосылки
- Вы комфортно используете язык программирования Rust и написали, запустили и отлаживали приложения на Rust в десктопной среде. Вы также должны быть знакомы с идиомами [издания 2018 года], поскольку эта книга ориентирована на Rust 2018.
- Вы комфортно разрабатываете и отлаживаете встраиваемые системы на другом языке, таком как C, C++ или Ada, и знакомы с концепциями, такими как:
- Кросс-компиляция
- Периферийные устройства, отображенные в память
- Прерывания
- Общие интерфейсы, такие как I2C, SPI, Serial и т.д.
Другие ресурсы
Если вы не знакомы с чем-либо упомянутым выше или хотите больше информации по конкретной теме, упомянутой в этой книге, вы можете найти некоторые из этих ресурсов полезными.
| Тема | Ресурс | Описание |
|---|---|---|
| Rust | Книга по Rust | Если вы еще не комфортно владеете Rust, мы настоятельно рекомендуем прочитать эту книгу. |
| Rust, Embedded | Книга Discovery | Если вы никогда не занимались embedded-программированием, эта книга может быть лучшим стартом |
| Rust, Embedded | Полка книг по Embedded Rust | Здесь вы можете найти несколько других ресурсов, предоставленных рабочей группой Embedded Rust. |
| Rust, Embedded | Embedonomicon | Детали embedded-программирования на Rust. |
| Rust, Embedded | FAQ по embedded | Часто задаваемые вопросы по Rust в embedded. |
| Встраиваемое программирование | Курс на Coursera | Бесплатный курс на Coursera по встраиваемым системам. |
| Встраиваемое программирование | Курс на edX | Бесплатный курс на edX по встраиваемым системам. |
| Прерывания | Прерывание | - |
| Отображение ввода/вывода в память/Периферийные устройства | Отображение ввода/вывода в память | - |
| SPI, UART, RS232, USB, I2C, TTL | Stack Exchange о SPI, UART и других интерфейсах | - |
Переводы
Эта книга переведена щедрыми добровольцами. Если вы хотите, чтобы ваш перевод был перечислен здесь, пожалуйста, откройте PR, чтобы добавить его.
Как использовать эту книгу
Эта книга в целом предполагает, что вы читаете ее от начала до конца. Более поздние главы строятся на концепциях из ранних глав, и ранние главы могут не углубляться в детали темы, возвращаясь к ней в более поздней главе.
Эта книга будет использовать плату разработки STM32F3DISCOVERY от STMicroelectronics для большинства примеров. Эта плата основана на архитектуре ARM Cortex-M, и хотя базовая функциональность одинакова для большинства CPU на этой архитектуре, периферийные устройства и другие детали реализации микроконтроллеров отличаются между разными производителями и даже между семьями микроконтроллеров от одного производителя.
По этой причине мы рекомендуем приобрести плату разработки STM32F3DISCOVERY для следования примерам в этой книге.
Вклад в эту книгу
Работа над этой книгой координируется в этом репозитории и в основном разрабатывается командой ресурсов.
Если у вас проблемы со следующими инструкциями в этой книге или вы находите, что какой-то раздел книги недостаточно ясен или трудно следовать, то это ошибка, и ее следует сообщить в отслеживателе задач этой книги.
Пулл-реквесты, исправляющие опечатки и добавляющие новый контент, очень приветствуются!
Переиспользование этого материала
Эта книга распространяется под следующими лицензиями:
- Примеры кода и отдельные проекты Cargo, содержащиеся в этой книге, лицензированы на условиях как [лицензии MIT], так и [лицензии Apache v2.0].
- Проза, изображения и диаграммы, содержащиеся в этой книге, лицензированы на условиях лицензии Creative Commons CC-BY-SA v4.0.
Коротко: Если вы хотите использовать наш текст или изображения в своей работе, вам нужно:
- Дать соответствующую атрибуцию (т.е. упомянуть эту книгу на вашем слайде и предоставить ссылку на соответствующую страницу)
- Предоставить ссылку на лицензию CC-BY-SA v4.0
- Указать, если вы изменили материал каким-либо образом, и сделать любые изменения в нашем материале доступными под той же лицензией
Также, пожалуйста, дайте нам знать, если вы находите эту книгу полезной!