LusoRobótica - Robótica em Português
Software => Software e Programação => Tópico iniciado por: blabla em 31 de Agosto de 2021, 08:41
-
Bom dia a todos,
Dentro em breve vai sair a 3º edição de Rust, o chamado Rust 2021.
Rust neste momento já tem um grande suporte para vários micro-controladores (incuindo toda a família STM32 e futuramente para ESP32 (Tensilica e Risc-V) patrocinado pela própria EspressIF, entre outros micro-controladores) e para muitos drivers.
O desenvolvimento para micro-controladores em Rust pode ser feito a vários níveis, tal como camadas de uma cebola, podemos escolher a que nível se pretende trabalhar (o que também acontece no desenvolvimento em algumas famílias de micro-controladores).
Para perceberem, contextualizarem e navegarem nas diversas camadas vejam este pequeno vídeo que o explica em grande detalhe:
Video - An Overview of the Embedded Rust Ecosystem
https://www.youtube.com/watch?v=vLYit_HHPaY (https://www.youtube.com/watch?v=vLYit_HHPaY)
De uma forma geral todo o eco-sistema de Rust para sistemas embebidos pode ser visto em:
Awesome embedded rust - Github
https://github.com/rust-embedded/awesome-embedded-rust (https://github.com/rust-embedded/awesome-embedded-rust)
Existem excelentes livros em creative commons a ensinar a programar em Rust para sistemas embebidos.
Discovery Book
https://docs.rust-embedded.org/discovery/ (https://docs.rust-embedded.org/discovery/)
The Embedded Rust Book
https://docs.rust-embedded.org/book/ (https://docs.rust-embedded.org/book/)
Workbook for Embedded Workshops - Book
https://embedded-trainings.ferrous-systems.com/ (https://embedded-trainings.ferrous-systems.com/)
The Embedonomicon Book
https://docs.rust-embedded.org/embedonomicon/ (https://docs.rust-embedded.org/embedonomicon/)
Gostava no entanto de salientar um sistema operativo em Real Time. O RTIC, é mais um scheduler mas ao contrario de um FreeRTOS a comutação entre Threads/Tasks não está na escala do 1ms mas sim de 1 micro segundo ou ainda menos. Tendo somente o peso de uma chamada de Interrupt, pois a comutação é feita por hardware.
Podem ver os detalhes nos seguintes videos:
Video - RTIC: Real Time Interrupt driven Concurrency
RTIC is a RTOS - Real Time Operating System.
https://www.youtube.com/watch?v=saNdh0m_qHc (https://www.youtube.com/watch?v=saNdh0m_qHc)
Github - rtic-rs - cortex-m-rtic
See RTIC book documentation.
https://github.com/rtic-rs/cortex-m-rtic (https://github.com/rtic-rs/cortex-m-rtic)
Video - Grepit about the Rust RTIC framework
https://www.youtube.com/watch?v=sSJ-Md8nwIM (https://www.youtube.com/watch?v=sSJ-Md8nwIM)
Por fim gostava de vos deixar com um pequeno projeto de um Logical Analyser feito em Rust com um Blue Pill.
Video - Building a simple logic analyser in Rust
Rust Linz, September 2020 - Roland Ruckerbauer - Embedded Rust
https://www.youtube.com/watch?v=xY342ACNXFg (https://www.youtube.com/watch?v=xY342ACNXFg)
Slides
https://github.com/ruabmbua/rlogic/blob/master/presentation.pdf (https://github.com/ruabmbua/rlogic/blob/master/presentation.pdf)
Github - ruabmbua / rlogic
https://github.com/ruabmbua/rlogic (https://github.com/ruabmbua/rlogic)
Caso pretendam saber mais sobre Rust com sistemas embebidos ou sistemas embebidos em geral, vejam o pequeno guia:
How to learn modern Embedded Systems
https://github.com/joaocarvalhoopen/How_to_learn_modern_Embedded_Systems (https://github.com/joaocarvalhoopen/How_to_learn_modern_Embedded_Systems)
Caso pretendam aprender Rust, vejam o pequeno guia:
How to learn modern Rust
https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust (https://github.com/joaocarvalhoopen/How_to_learn_modern_Rust)
Obrigado,
Cumprimentos,
João