Ржавая рука

Вы, вероятно, слышали, что ржавчина является системным языком программирования, который имеет вполне следующий рост. Это означает быть быстрым, как C, но имеет такие функции, как гарантированные гарантированные память и безопасность, дженерики, и предотвращает неисправности сегментации. Звучит как только для встроенной системы, верно? [Хорхе Апарисио] было разочаровано, потому что его процессор выбора, рычага STM32 Cortex-M не имела родной поддержки ржавчины.

По-видимому, вы можете легко привязывать функции C в программу ржавчины, но это было не то, что он был после. Поэтому он намеревался построить чистые программы ржавчины, которые могут получить доступ к оборудованию устройства, и он документировал усилия.

Не только этот пост показывает вам необходимые вами инструменты и версии программного обеспечения, но используя Openocd, [Jorge] даже удалось сделать некоторую отладку. Техника, кажется, довольно типично применимо, как он говорит, что он сделал ту же трюк на шести разных контроллерах от трех разных поставщиков без проблем. Вам нужно настроить проект, изменив некоторые значения в шаблоне.

Хотя это не урок ржавчины, следуя вместе с Кодом [Хорхе], и его объяснения дадут вам довольно хорошее представление о том, как выглядит ржавчиной. Он также показывает аккуратный инструмент, GDB-панель. Чтобы создать API в специальные регионы памяти ARM, [JORGE] использует инструмент, называемый SVD2Rust для обработки файлов SVD поставщика. Они обычно используются для программирования и тестирования JTAG, поэтому мы думали, что это был новый способ автоматической сборки поддержки процессора.

Много языков, которые предлагают функции безопасности, как правило, собирают код жира. [Хорхе] показывает мигающий светодиодный пример и разбирает его, и он выглядит довольно компактным около 127 байтов. Затем он расстроил регистры таймера, а код практически точно такой же размер, при компиляции.

Мы кратко покрыли ржавчины некоторое время назад. Мы также видели ржавчину на некоторых Wi-Fi Gear в последнее время.

Leave a Reply

Your email address will not be published. Required fields are marked *