5 ms·
I don't really do anything with it professionally, but just for "feels" and to not completely lose touch with the hard reality (of registers and ports) I took t
by Noseshine 10y ago
I don't really do anything with it professionally, but just for "feels" and to not completely lose touch with the hard reality (of registers and ports) I took the UT Austin course on embedded systems (https://www.edx.org/course/embedded-systems-shape-world-utaustinx-ut-6-03x https://www.edx.org/course/embedded-systems-shape-world-utau...) - which required the purchase of some real hardware for the automatically graded labs. I also signed up for the follow-up to this excellent course (https://www.edx.org/course/real-time-bluetooth-networks-shape-world-utaustinx-ut-rtbn-12-01x https://www.edx.org/course/real-time-bluetooth-networks-shap...) starting in September - which is also going to be done on real hardware.
It's just a refresher for me, I did a lot of low-level and assembler in the 8 bit days, so it's nice to see what's current. It's a wonderful counterweight to otherwise doing very high level programming in dynamic languages and learning (more) FP (Scala). It's nice to be able to find plenty of use cases for 32 kByte of RAM on a tiny board (http://www.ti.com/tool/ek-tm4c123gxl http://www.ti.com/tool/ek-tm4c123gxl).
I think some low-level embedded programming (directly in C to the chip, not on a highlevel board that even runs a full Linux OS) is ideal to keep me grounded and remember how wasteful those many abstraction layers actually are. Yes I know what they do and appreciate their service - but when I compare what I get vs. how much more I put in (in Giga-Hertz and Giga-Bytes) I'm not convinced that there isn't a lot of waste going on that cannot, should not, be justified and sold as "price of progress".