Electronic – Lower level system development


I am a software developer (using high level languages like .NET,C,C++ etc) trying to understand how computers work at a lower level.

I have asked questions like the following in the past and got some useful responses: Map processor to circuit diagram. I have bought an Adruino board to help me.

What other hardware do low level gurus buy to learn more about hardware and lower level programming? Would a Raspberry Pi be helpful (I believe they are targeted at children). Also I was thinking about buying a tablet.

Best Answer

How "low" do you want to go?

The standard Arduino IDE is not really for low level programming. You have ready-to-use libraries with high level interfaces, you don't really have to care about correct SFR initialisation, memory layout and other details.

Raspberry usually has a Linux OS running, and you develop very "high leveled". It's a powerful and flexible system, by far not only for children, but it's surely not the best solution to start with when you want to understand the lower levels of a computer.

My suggestion, as you already have an Arduino: Study the microcontroller's datasheet and use the standard Atmel IDE instead of that high level Arduino development stuff. Start programming it in assembler instead of C. This is really low level fun :-)

If you want an even lower level, go for FPGA design. Try to get a softCore library, learn VHDL, and you can examine practically and very detailed what's going on in a CPU.

Related Topic