4 ms·
Some people have romantic notions about how bare-metal programming should be difficult, or done in some traditional, artisanal fashion. Most of these people ha
by 95014_refugee 6y ago
Some people have romantic notions about how bare-metal programming should be difficult, or done in some traditional, artisanal fashion.
Most of these people have never built a modern bare-metal product; they're either stuck in the 90s, or they're dilettantes.
- sigjuice 6y agoWhat would be some good examples of modern bare-metal products?
- Sophistifunk 6y agoFrankly I'd like examples of actually-documented bare metal that you can actually buy.
- anitil 6y agoI worked on some echosounders a few years ago that were bare metal, and before that some power management equipment. 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'
- fulafel 6y agoNot quite a consumer product but this was recently on HN: https://www.bunniestudios.com/blog/?p=5921 https://www.bunniestudios.com/blog/?p=5921
- reitzensteinm 6y agoI have a lot of sympathy for that if you're doing it for fun. 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.
- m463 6y agoI think that there has been a sea-change in computer education over the years. It has become more and more high-level built on abstraction. 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.
- scoutt 6y ago> there's a good chance people have ... never been able to interface with the machine or external hardware. 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...
- m463 6y ago> You don't necessarily need to do assembler to interact with hardware. 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.