Тёмный

Moving from C to Rust for embedded software development 

The Rusty Bits
Подписаться 15 тыс.
Просмотров 78 тыс.
0% 0

Writing production-grade firmware is hard, but maybe we're making it harder than it needs to be.
Join me in exploring some of the common pitfalls of embedded software development in C, and how Rust appears to be well-positioned to address these issues.
Oh, and welcome to the channel! 👋
Resources:
‪@letsgetrusty‬ | • The Rust Survival Guide
‪@NoBoilerplate‬ | • Rust for the impatient
"The Book" | doc.rust-lang.org/book/index....
Chapters:
0:00 Intro
0:24 The Module Squad
1:28 Mr. Microcontroller's Wild Ride
4:28 C Change for Embedded Development
7:05 What's the catch?
7:56 Does anyone actually use it?
8:53 What is The Rusty Bits?
9:48 Not punny

Наука

Опубликовано:

 

28 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 342   
@BertoLaDK
@BertoLaDK 4 месяца назад
whats with all these small channels popping up just making high quality videos like they've been doing it for years.
@themosthip
@themosthip 4 месяца назад
ive been thinking this for a while now too! honestly shocked to see this channel at less than 400 subs
@macmoholic6283
@macmoholic6283 3 месяца назад
I can't speak for The Rusty Bits, but I wonder how many of them are from talented developers being laid off.
@davidmorton8170
@davidmorton8170 3 месяца назад
Wow, no kidding…. subscribed, hoping for more!
@noahprussia7622
@noahprussia7622 3 месяца назад
people caring about end quality and editing instead of just uploading. plus with all the tips/tricks on how to make a youtube channel good (the video is barely over the 10 minute mark).
@Ariccio123
@Ariccio123 3 месяца назад
They have been! Some just got better at editing. Others got finally blessed by the algorithm. It's long overdue!
@musicdev
@musicdev 3 месяца назад
“It tells the microcontroller what’s up…literally” Absolute god tier writing
@Graham_Wideman
@Graham_Wideman 3 месяца назад
You're commenting on the video's humorous portrayal of the IMU sensor as the "ears" of the operation -- which very accurately corresponds to vestibular system of our inner ear, and its ability to sense linear and rotational acceleration!
@attilagyorffy
@attilagyorffy 2 месяца назад
Word! (Came to the comments section just to say exactly the same)
@hotrodhunk7389
@hotrodhunk7389 3 месяца назад
A+ production quality. Well done ✅
@PeterSHollander
@PeterSHollander 3 месяца назад
Loved the amount of technical puns made within the first minute! 😂 I'd be interested to broadly see some "familiar with C, new to Rust" content for sure, and would also enjoy a focus on Rust on the RP2040 :)
@obiworm99
@obiworm99 3 месяца назад
RP2040 and ESP32 projects would be awesome! I want to see if I can move away from the arduino framework.
@toystorybro
@toystorybro 2 месяца назад
I was laughing hard! 😂😂😂 kept face palming internally knowing I found these funny it gave me insight into the realm of my actual sense of humor 👌🤣
@flyguy8791
@flyguy8791 3 месяца назад
I stuck around until the end puns, boy that was worth it. Excellent presentation, subbed! Interested to learn more about Rust.
@sayo9394
@sayo9394 3 месяца назад
dude, you had me subscribing 19sec into the vid! In future videos, i would love to see you going through: - toolchain - debugging - dev kit ...
@jupitersky
@jupitersky 3 месяца назад
Fantastic video. I'm very excited for the future of this channel!
@lenninlc
@lenninlc 3 месяца назад
Fantastic! Looking forward to your next video! I'm a embedded systems engineer and I love this types of videos
@macmoholic6283
@macmoholic6283 3 месяца назад
Subbed and liked. This channel sounds like it's teaching exactly what I want to learn, right when I'm ready to learn it. Really excited to see what comes next!
@cosmotraumatika7474
@cosmotraumatika7474 3 месяца назад
Great intro. Looking forward to your next steps with the channel. Am interested in utilizing Rust in my ESP32/LoRaWAN sensor projects. Liked and subscribed... can't wait until the next video!
@ASVBPREAUBV
@ASVBPREAUBV 3 месяца назад
Fantastic video! Thank you. Looking forward to more content. I would love to see a project with practical use. Especially with sensors, user I/O and networking.
@doctorrusty6494
@doctorrusty6494 4 месяца назад
I really like the delivery - I laughed and I learned! Can't wait for more videos. 😍 For me any quality content is good (be it for beginners or a bit more advanced) as long as it's about Rust and embedded programming. I moved into the embedded role after years of programming with C#, and as much as I like C very much, there are so many dangers associated with it, and it makes me anxious too 😅 Looking forward to learn more and more of Rust! 🦀
@jesiu3
@jesiu3 3 месяца назад
Great video! Looking forward to next one 🎉
@madfangkills
@madfangkills 3 месяца назад
Incredible video, subbed and can't wait for future content!
@lagcisco
@lagcisco 3 месяца назад
great first video!! quality content thanks for sharing
@jasonfevang9670
@jasonfevang9670 3 месяца назад
Looking forward to what you do next, this video is great, exactly the kind of thing I’m looking at exploring myself. Possible future video topics could explore integrating the cpu with external systems like the gps or lte module, using rust
@spacebunsarah
@spacebunsarah 2 месяца назад
This channel is amazing! Thank you for this content 💕 I’m learning Rust and LOVING it.
@damiemcrea9953
@damiemcrea9953 4 месяца назад
Fantastic video and presentation. Thank you for making such high quality videos on such a niche subject. :-) please keep them up
@wassfila
@wassfila 3 месяца назад
Thank you. I'm interested on how Rust would plug in existing eco-systems, Arduino, Platformio, esp-idef,...
@garvamel
@garvamel 3 месяца назад
Fantastic video. Thanks!
@computerfox2830
@computerfox2830 3 месяца назад
This video was amazing, thank you for making it :)
@wouterdebie6754
@wouterdebie6754 3 месяца назад
I'm really looking forward to more content! I've been doing some embedded programming mainly on the esp32 with Rust. One of the harder things to learn is how all the crates relate and which one does which. This gets all the more complicated with having to choose between stdlib or nostd, embassy, esp-idf, etc. Then thrown in the plethora of microcontrollers to choose from and the whole thing becomes rather murky. A video about the eco system, options and choices would be very helpful.
@BeefIngot
@BeefIngot 3 месяца назад
This is actually the biggest thing thar puts me off apart from the syntax visually feeling worse than even c++.
@adrianscarlett
@adrianscarlett 3 месяца назад
​@@BeefIngotI found AI tools really useful for helping understand the syntax and error messages. I'm using Codeium right now, it seems as good as copilot but free to use.
@FakeMichau
@FakeMichau 3 месяца назад
​​@@BeefIngotimo give the rust book a read instead of relying on ai, and sure it goes over the complete basics but that way everything just makes sense as you go deeper
@DanWalmsley
@DanWalmsley 3 месяца назад
Great video ❤ congrats on starting the channel. Subscribed!
@Onkoe
@Onkoe 4 месяца назад
always love to see more embedded rust folks! 😄✨ thanks for making it fun, too :)
@OfficialViper
@OfficialViper 3 месяца назад
I'm glad I found your channel, this video was great
@samarthk4130
@samarthk4130 3 месяца назад
Hilarious and informative video, instant subscribe!
@splackism
@splackism 4 месяца назад
Nice video! I like your style and I'm looking forward to seeing some embedded dev work in rust.
@eckelfresh
@eckelfresh 3 месяца назад
That was a very good video. I like the intro with the squad :D
@teuluPaul
@teuluPaul 3 месяца назад
Great video - I have subscribed and "liked", and look forward to your future videos, and to seeing how the channel develops. Thanks!
@ChristopheTroestler
@ChristopheTroestler 4 месяца назад
Nice video. Looking forward to the next one. I'm coming from the perspective of someone who can program in Rust but don't really know embedded software development. Hopefully subsequent videos will be accessible to such a public as well. Keep up with the good work.
@marweck
@marweck 3 месяца назад
Great editing. Loved the content
@robertj.3682
@robertj.3682 3 месяца назад
I just came across your channel and I am forever grateful
@casper-3
@casper-3 Месяц назад
I can't believe your earliest video is only 3 months old! The quality tells me you've been doing this for years, but I'm glad I caught this train just as it was leaving the station.
@EbonySeraphim
@EbonySeraphim 4 месяца назад
Looking forward to more videos. You seem to have both expertise and entertaining presentation. Nice book you have on the desk back there -- I have it too.
@RogueAfterlife
@RogueAfterlife 3 месяца назад
Great video! Subscribed! The phrase silicon errata made me lol; I'm using that from now on.
@davidgmos
@davidgmos 4 месяца назад
Great to see more rust for embedded devices. Already subscribed to the channel.
@benarcher372
@benarcher372 3 месяца назад
Excellent quality both in content & production.
@asishreddy7729
@asishreddy7729 3 месяца назад
I’m not even a professional programmer or a developer, in fact I’m a doctor but I had to learn c++ for arduino and esp8266 projects at home, and I have fallen in love with coding. Now RU-vid thinks I’m a programmer and is delivering me content about rust😂. Would be curious to see if rust is gonna be easier to understand than c/c++ , some of the software libraries out there for esp8266 are too complicated for me to understand. I truly enjoyed your production quality. Nice choice of music, do let us know where you find it!
@therustybits
@therustybits 3 месяца назад
Thanks! Embedded systems can be a lot of fun, pointer issues notwithstanding 😅 The music is all from Epidemic Sound.
@meimarg8041
@meimarg8041 2 месяца назад
Hi there, I work in critical safety industries and I am always open to learn new technologies that help us to be more efficients, fast and detect errors early. I would love to see in this channel topics like, RUSt support on RTOSs and SOCs vendors support, TDD, automatic documentation(llike doxygen) and CI for RUSt in a professional environment. Best of luck with the project!
@john.dough.
@john.dough. 3 месяца назад
this is sooo good! thanks for sharing :]
@Stroid9
@Stroid9 4 месяца назад
I have just started some Embedded Rust development and I really looking forward to what this channel has to offer. I would see some videos on developing code as barebones as possible, without any Abstraction layers.
@frankdearr2772
@frankdearr2772 23 дня назад
Great topic, thanks 👍
@goranroseen
@goranroseen 3 месяца назад
This is so promising! I am really looking forward to more videos!
@SandhanSarma
@SandhanSarma 3 месяца назад
It was a great video. Really Love your sense of humor. Looking forward for more videos....
@Taernsietr
@Taernsietr 3 месяца назад
I was already interested at the beginning, but the cheeky bit completely hooked me in hahah
@masomaker
@masomaker 4 месяца назад
This is a well-produced video for such a small number of subscribers!
@therustybits
@therustybits 4 месяца назад
Thanks! 😂 We've still got that 'new channel smell', so the algorithm is still figuring out what to make of us, but we've got high hopes!
@Vishnu-kt1ct
@Vishnu-kt1ct 3 месяца назад
Yessirr post em vids!!
@neilclay5835
@neilclay5835 4 месяца назад
Woohoo, this looks interesting. I'm just dipping my pointers into Rust. Good luck with the channel. Subscribed.
@annusingh4694
@annusingh4694 4 месяца назад
Awesome video!
@edwardp4417
@edwardp4417 3 месяца назад
Looking forward to this series. I've been an embedded C developer for years. I started writing a GBA emulator in rust that I wanted to eventually run on an MCU but I haven't worked on the project in years due to frustrations with the borrow checker.
@einarvading4949
@einarvading4949 3 месяца назад
I'm fortunate enough to be using Rust for production embedded systems, and it's awesome! Time and again it just delivers on all the promises and just like you hinted to in the video, the compiler really has your back. You actually can undertake pretty massive refactorings without worrying that you're going to break something if it compiles, it usually works. Great video btw, subscribed!
@veorEL
@veorEL 3 месяца назад
Alright ! Absolutely thrilled to come across your channel! Your expertise in Rust and focus on embedded software is evident, and the quality of your content is truly superior. As someone keen to deepen my understanding of Rust, especially in the context of hardware interaction and experimenting with Rust's build tools, I see this as a perfect opportunity to learn and contribute. I'm particularly interested in how Rust can be leveraged for innovative hardware projects and the intricacies of its tooling ecosystem. I'm looking forward to contributing to and supporting the projects that emerge from this community. Keep up the fantastic work!
@davidemanuel03
@davidemanuel03 3 месяца назад
This video feels like I'm watching premium content. I really like the puns and all the jokes, your energy is professional yet friendly at the same time. Subscribed!
@PeTr01
@PeTr01 3 месяца назад
Excellent video! I love the simplistic yet momentarily energetic editing, it somehow screams engineering lol. Convinces me that I prob should learn rust now
@aliakbarsaleh382
@aliakbarsaleh382 4 месяца назад
Fantastic 🤩 Keep it up 👍👍👍
@Somali-iv9pu
@Somali-iv9pu 3 месяца назад
Incredible video thanks alot
@adrianscarlett
@adrianscarlett 3 месяца назад
Just saw this on my feed, Looking forward to what you do with this channel, I'm interested in learning embedded rust, there are loads of really inexpensive microcontrollers out there that could benefit, like the xtensa and riscv stuff from expressif and arm cortex boards. I'm currently particularly interested in the nordic nrf52840, but happy to learn about other platforms.
@GamerGianni
@GamerGianni 3 месяца назад
These are amazing videos. Please keep making them!!
@Nonsense116
@Nonsense116 3 месяца назад
Subscribed! I don't work in the embedded sphere but I've always been curious about it. I played around with Rust for a little bit, but it just doesn't solve problems that I face. I often times find myself doing deep dives on low-level topics but often find myself in over my head. I'm extremely excited to see what comes of this channel. Side note, between this channel and "Core Dumped" what is up with the small programming channels popping up out of nowhere with the high quality content!? It's awesome!
@MattSuozzo
@MattSuozzo 4 месяца назад
congrats on the first video :)
@benjaminbci
@benjaminbci 3 месяца назад
This was amazing. Learning and laughing at the same time; great script.
@jesussantander6511
@jesussantander6511 3 месяца назад
Awesome content ❤
@qbasic16
@qbasic16 2 месяца назад
Thank you so much for starting this! I got the bell ready to ring ❤
@benibear2995
@benibear2995 3 месяца назад
Those memory corruption bullet points just give me PTSD.. 😅 Superb video! Looking forward for more!
@user-gp7sn4fh9t
@user-gp7sn4fh9t 3 месяца назад
Sounds great! Personally I would like to see step by step exploration tutorials about all peripherals of microcontrollers
@paulgupta2454
@paulgupta2454 3 месяца назад
The production value on this was high. Please keep doing videos! Also quantity is so much more important than quality. Keep it up dude! Easy to understand rust explainers are rare.
@enzocasamasso1606
@enzocasamasso1606 4 месяца назад
Fantastic video! Watching you from Brazil 🇧🇷
@FkSeditiousChristofascists
@FkSeditiousChristofascists 3 месяца назад
great explanation and interesting subject.
@iwakeupsad
@iwakeupsad 3 месяца назад
Keen to see some embeded stuff. Like something that helps me understand WHY each HAL does what it does.
@MooleVenkataYaswanthReddy
@MooleVenkataYaswanthReddy 2 месяца назад
Subscribed! 🔔! Great content in a nice presentable way, looking forward for more embedded content with Rust
@isitsaturdayalready1247
@isitsaturdayalready1247 3 месяца назад
Wow, what a high quality video from a new channel. I'm impressed! Regarding topics for future videos, I'd like to see how to navigate cases where we really need to do low-level access where Rust compiler can't help. Basically, how to avoid using unsafe everywhere? Or is it enough to just use a proper BSP that wraps it for us? Is there a way to implement such a BSP without going mad?
@rrturjo
@rrturjo 3 месяца назад
I was introduced to rust over a year ago in a university course and although I found it interesting I was overwhelmed by sheer complexity of it as someone who had just gotten into embedded development. Maybe I'll revisit the topic again down the line, this video definitely encourage me to give it a shot. Consider myself subscribed!
@chrisp.401
@chrisp.401 3 месяца назад
Great video!
@korolev23
@korolev23 3 месяца назад
Really great video on the possibilities of rust for the embedded domain. I'd like to see a full stm32 rust toolchain walkthrough and example code buildup.
@BensProgrammingLab
@BensProgrammingLab 3 месяца назад
just stumbled across the channel, relay enjoying it
@user-sy3cw3uh1y
@user-sy3cw3uh1y 3 месяца назад
Great video! As a hobbyist, I really hope that future content will include some simple examples on easy-to-use microcontrollers, and not go directly to RTOS on industrial-grade hardware that needs special tools and expensive software to program. Like, would it be possible to do a Blinky example on an Arduino? Another thing is that I believe coding towards hardware (such as an OLED display, or an I2C RTC, or toggling gpios) is very different from the coding you do on the desktop. And would expect Rust wouldn't be different. So what are the things to look out for in that type of programming? Really looking forward to what's to come!
@austinjohnson7421
@austinjohnson7421 3 месяца назад
Already subbed. A low down on debugging and its limitations and alternatives would be excellent, as that feels like a pain point coming from C
@FXtoAT
@FXtoAT 3 месяца назад
Thx for the nice video. For content I would like to see would be, how embedded rust could be put into a ci/cd toolchain and how to write unit tests for it.
@Bruno-cb5gk
@Bruno-cb5gk 3 месяца назад
Looking forward to more videos! I've been getting into robotics and learning C has been my least favourite part of it so far. Even though my use cases are very low risk, the anxiety that I'm unknowingly making a big mistake still hangs over me.
@DannoHung
@DannoHung 3 месяца назад
Rust does help with this. I’ve been programming for like 25 years and I honestly feel so much less anxiety that something is going to go very wrong with Rust. Don’t get me wrong, you can absolutely still make logic mistakes, but it’s usually much more straightforward to see what went wrong. What does get a bit frustrating is when you’re pretty sure you’ve got things right but the compiler’s telling you you’re screwing it up but you just can’t figure out what the right way to do things is. And here’s the thing: if you’re not in a hot loop: copying to fix an issue can usually get you out of a jam. YMMV as you get aim for lower and lower hardware specs.
@peter9477
@peter9477 4 месяца назад
Looking forward to hearing your experience with Embassy. I adopted Rust for a complex device specifically because of the option to do it with async, which i think has never before been feasible in embedded. I think it's a game changer, almost as much as Rust itself is. Almost two years in and no real regrets, though the learning curve was twice as big as I expected.
@lordnuada
@lordnuada 4 месяца назад
Yes, some DIY with Embassy and like the S3 series microcontroller would be great!
@adamhaney9447
@adamhaney9447 3 месяца назад
I just enjoy this language. You hit the nail on the head: Rust just removes the anxiety of attacking problems, because the language makes me confident that I won't create new problems in trying to fix old ones. Great video.
@cramhead
@cramhead 3 месяца назад
Thanks for the great video. I’d like to join you on this adventure into embedded software development. I’m hoping I can learn how to make a useful, robust , and cheap embedded system. One idea I think is super cool is using a piezo-electric transducer to power a controller.
@yawor
@yawor 3 месяца назад
I'm looking forward to more content. I've started programming with Rust some time ago but for now I've only been creating programs for embedded Linux (with std). I've been planning to learn no_std for bare metal embedded programming.
@workethicrecords5901
@workethicrecords5901 3 месяца назад
Awesome video, I've been rust curious for a while, skeptical even. I'd love to see an implementation of USB host in rust. That should touch a lot of MCU peripheral elements (dma, timer setup, possibly a USB controller, interrupt callbacks, ect) that get most used on embedded applications today.
@speedstyle.
@speedstyle. 3 месяца назад
I liked your thoughts, subbed. For future videos could you consider shorter or more integrated chapter markers? Waiting over 10 seconds for the next section (along with a sentence introducing it and sometimes one leading onto it) added a bit of friction for me.
@alejandrogabrielruiz
@alejandrogabrielruiz 4 месяца назад
Thanks for your time... Great video.. +please!
@muhammad-bin-zafar
@muhammad-bin-zafar 2 месяца назад
A fantastic video, simply fascinating 🎉 Never knew embedded development could be talked about in such a fun way!! I subscribed - can't wait to learn rust and cry!!
@guzzodavenport3263
@guzzodavenport3263 3 месяца назад
Good stuff!
@HululusLabs
@HululusLabs 4 месяца назад
Before embassy's 1.0, I toyed around with parsing NEMA for GPS and some LoRa. For a beginner in rust and programming in general I was surprised at how fast and how far I got. Can't wait for more videos!
@amos9274
@amos9274 3 месяца назад
Just to clear things up in case it was not a typo, GPS messages are in NMEA format and NEMA is a standards organization like ISO or IEC :)
@amos9274
@amos9274 3 месяца назад
On another note, as a beginner would you say doing something with medium complexity is easier or harder in C compared to rust? I could imagine learning pointers and memory management from scratch would be just as hard as learning how to overcome the borrow checker🤔
@peter9477
@peter9477 3 месяца назад
@@amos9274 For medium or high complexity work the borrow checker shouldn't get in the way as much as it benefits you by preventing broken architectures. I'd say if you care about it actually working reliably you're better off using Rust instead of C. (35 year C veteran, 2 year Rust intermediate here.)
@pierreollivier1
@pierreollivier1 3 месяца назад
@@amos9274Manual memory management, is not that hard. What makes working with C so much harder than it needs to be is that because of it's origin and history, most C compilers simply assume you are a god at programming and trust you 100%. In fact they trust you so much that they will optimize your code as is. Which is fine to do when you have as much Words of memory than my comments has, but this is excruciating to work with. C type system is inexistant, the compiler won't enforce anything without you adding 3 billions of weird platform specific, compiler specific, poorly documented, cryptic named flags, that still let you do stupid stuff. Really for any project go with Rust, I'm not big on it I prefer Zig but the point is anything at this point is better and more ergonomic than C.
@hivemind9643
@hivemind9643 3 месяца назад
High quality content! I would love to see GPIO control and zigbee devices using rust
@j-p-d-e-v
@j-p-d-e-v 24 дня назад
Whenever I watch your videos. It always inspires me to continue studying Embedded Rust Programming.
@nanaih
@nanaih 3 месяца назад
This is a really nice channel proposal
@MrScorpianwarrior
@MrScorpianwarrior 3 месяца назад
Damn I wish I hadn't found this channel yet. If I'd found it in a few years I would have so much content to binge watch!
@Yannick-ei2tz
@Yannick-ei2tz 3 месяца назад
Very nice start. I'd love to see how to do async then in the end see how to TEE
@Jonas_Meyer
@Jonas_Meyer 3 месяца назад
Lightweight RTOS implementation would be great. Like starting with array of functions and a while loop and later implementing some sort of yield.
@mytrant
@mytrant 3 месяца назад
As someone very versed in these devices and making them for bigger companies... I love your approach! Fun - this bleep is fun, all the problem statements no one likes to hear...thanks 🎉
@spacewolfjr
@spacewolfjr 3 месяца назад
i came here just to +1 the thumbnail... great job Dad!
@loadeddice1304
@loadeddice1304 3 месяца назад
Great content. I instantly hit like and subscribed. I did't know that you can use rust to programm microcontrollers at all. Can you cover some basics? Standard IDE, code structure (comparing low level to high level code) , common flaws, supported microcontrollers (Atmel / Nordic / Espressif controllers)
@thedrunknmunky6571
@thedrunknmunky6571 3 месяца назад
The reason I started learning Rust in 2024 as a very junior developer, is because I saw the potential it had for embedded systems.
@thomas-sinkala
@thomas-sinkala 3 месяца назад
Earned a subscriber.
Далее
Rust: When C Code Isn't Enough
8:26
Просмотров 153 тыс.
Embedded Rust setup explained
23:03
Просмотров 74 тыс.
Он тоже из IKEA 🙀
00:10
Просмотров 528 тыс.
A Jr Dev For Life?? | Prime Reacts
21:33
Просмотров 279 тыс.
Rust on ESP32 - Creating an HTTP api
16:43
Просмотров 1,9 тыс.
Compiler-Driven Development in Rust
13:11
Просмотров 45 тыс.
Blinking an LED: Embedded Rust ecosystem explored
17:14
Async Rust Is A Bad Language | Prime Reacts
28:46
Просмотров 88 тыс.
Object Oriented Programming is Good | Prime Reacts
31:30
The size of your variables matters.
11:03
Просмотров 100 тыс.
Main filter..
0:15
Просмотров 12 млн