Live data from Hacker News

Foundations of Embedded Systems

f-of-e.org

1–10 of 21 posts

Re: Foundations of Embedded Systems

#3
post #2

This is actually pretty great. I was looking for a way to dip my toes into low level stuff. After skimming a bit it seems very focused on hardware though. Out of curiosity how does it compare to https://jaycarlson.net/embedded-linux/ ?

Most of what embedded is, is hardware. To build the low level software and drivers requires a detailed understanding of the hardware and its datasheets. It would be pretty hard to give a generic overview of the software side these days, because there is just so much out there. I mean you have the TI parts for the beagle bone which have a pair of microcontrollers on them each having access to the same memory as the main processor. There's the video processor on Broadcoms chip in the raspberry pi. Understanding any of the details of these components requires understanding most of thousands of pages of documentation. Most people wait for someone else to do it for them!

In the old days the only peripherals were timers and ADCs. You could make a generic and useful tutorial for those. Not anymore!

Re: Foundations of Embedded Systems

#4
post #2

This is actually pretty great. I was looking for a way to dip my toes into low level stuff. After skimming a bit it seems very focused on hardware though. Out of curiosity how does it compare to https://jaycarlson.net/embedded-linux/ ?

Check out "Introductory Microcontroller Programming" by Peter Alley (to be clear, not me.) for Wocester Polytech; I came across this by accident the other day -

[pdf] https://web.wpi.edu/Pubs/ETD/Available/etd-042811-095908/unr...

Over the period of being the TA for these courses multiple times, I learned a great deal, but also noticed several recurring issues the students seemed to face. In addition to furthering my own knowledge on the care and feeding of microcontrollers, this thesis is an attempt to provide students with a resource to overcome some of their difficulties, to provide a better understanding of the hardware level operation of a microcontroller, and as instruction into improving their knowledge and code.

edit: in addition, for really low level hardware, check out Ben Eater's series on YouTube building a breadboard 6502

Re: Foundations of Embedded Systems

#5
This is a bit of a side step to the article, but I recommend anyone who wants to really learn low level programming try to write a simple piece of software for the NES. The 6502 is well known, how the NES operates is likewise well known. Is not easy by any means, but I found it to be very rewarding and instructional to how computers work. Alternatively, following Ben Eater’s 6502 computer videos is likewise instructional.

I admit this may have had the effect on me because the NES had a special place in my childhood.

Re: Foundations of Embedded Systems

#7
post #2

This is actually pretty great. I was looking for a way to dip my toes into low level stuff. After skimming a bit it seems very focused on hardware though. Out of curiosity how does it compare to https://jaycarlson.net/embedded-linux/ ?

Most of what embedded is, is hardware. To build the low level software and drivers requires a detailed understanding of the hardware and its datasheets. It would be pretty hard to give a generic overview of the software side these days, because there is just so much out there. I mean you have the TI parts for the beagle bone which have a pair of microcontrollers on them each having access to the same memory as the ma…

After a few decades in the biz I'm seeing things change. Almost all drivers these days are written. Embedded is more about integration. It's also interconnected with many web-based tools and operating systems.

Re: Foundations of Embedded Systems

#9

This is a bit of a side step to the article, but I recommend anyone who wants to really learn low level programming try to write a simple piece of software for the NES. The 6502 is well known, how the NES operates is likewise well known. Is not easy by any means, but I found it to be very rewarding and instructional to how computers work. Alternatively, following Ben Eater’s 6502 computer videos is likewise instructi…

I would go for the GBA, which has a much more comfortable processor, and some very nice graphics hardware. It really hits a sweet spot for capability vs. constrainedness.

Re: Foundations of Embedded Systems

#10

This is a bit of a side step to the article, but I recommend anyone who wants to really learn low level programming try to write a simple piece of software for the NES. The 6502 is well known, how the NES operates is likewise well known. Is not easy by any means, but I found it to be very rewarding and instructional to how computers work. Alternatively, following Ben Eater’s 6502 computer videos is likewise instructi…

Or you could go from an even more fundamental level with a simple course https://www.nand2tetris.org/

You build up a computer from simulated logic gates, constructing the ALU, CPU, Ram, I/O etc. The opcodes are comparable to those in the CPUs you mentioned, but you have the added benefit of the magic that occurs when it is able to process those opcodes. The best part is, thanks to the courses exceptional guidance and streamlining, it only takes about half a day or so to get it to that point.

After that you can follow the rest of the course to making a compiler, etc. Or you could move to an NES emulator as you mentioned. The nand2tetris halfway mark would also be a good jumping point for the principles, compiler, and RISC equipment mentioned in the OP's course.

Post reply on HN