What does he mean by this? Rust has no-std mode, you can run it on an ARM M0 if you so desire.
What does he mean by this? Rust has no-std mode, you can run it on an ARM M0 if you so desire.
That said, nobody is obligated to use Rust. He should write his tutorial in whatever he wants. This isn't an actual blocker, though.
Most of these people have never built a modern bare-metal product; they're either stuck in the 90s, or they're dilettantes.
It's like buying a romantic cabin in the woods to be cut off from society to write a novel.
But then you learn it gets mobile reception these days and your friend asks you why you haven't installed a Powerwall and solar yet?
If you're attempting to do it commercially, that's a different thing.
Additionally, computers have become both locked down and "civilized".
Say you had an apple computer in the woz era - there's a good chance you had to deal with signals and hardware along with having a bootrom instead of an operating system.
Nowadays, apart from something like the raspberry pi, there's a good chance people have never done assembly language programming, and have never been able to interface with the machine or external hardware.
too bad, actually.
I agree that the trend is to go up and not down in what abstraction regards, but I also think that embedded programming was never so popular like it is today. Like... you can do it with a budget under 20 USD and a couple of tutorials.
You don't necessarily need to do assembler to interact with hardware. You can do it with C/C++/Rust/etc., and it's as easy as (for example) writing into some microcontroller register.
Unless you are talking about something else...
It's too bad because people don't know how things really work underneath.
The second computer course I took was assembly language, and it was a formative experience. I have carried that mental model around with me for all my life.
The first time I touched hardware was in an EE course where unfortunately I didn't really delve into hardware like I should. I remember my partner was an EE and I was computer science and we each did what we did best. Looking back I we should have switched - he should have done the software and I should have done the hardware. I think I would have had better mental models from the course. And until I did stuff like a pi all these years later I treated hardware kind of like mysterious magic in my head.
Seriously, all this should be treated as learning to swim. I've known people who didn't know how to swim and for them there's an insurmountable wall erected in boats and at the beach that could be fixed with a day or two of lessons.
Though if I was doing it again I'd probably have a bare-metal chip running the timing critical, and throw a cheap arm core on there running linux just to make life easier.
And I'm pretty sure I could probably do away with the bare-metal and just pin some userspace code to a core and it'd work just as well.
Edit: *'days' -> 'years'
Your compiler runs on a separate development machine. Looking at the repo, he's already building an LLVM-based cross-compiler for C anyway.