I am a new grad student in EE and am trying to take full advantage of my time here at the uni. I have always wanted to understand how to get Linux running on embedded platforms, but from the outside it looks really arcane. Just some of the things you have to know about are listed below, each with its own rats nest of intricacies:
- Boot chains, getting a computer to load/run your kernel code.
- Making Linux kernels with drivers for the system
- Cross-compilation, development toolchains
- Deployment, debugging and communicating through hardware like uart.
- Making a userland to do what you want (I suppose when you get here it becomes to application-specific for general discussion)
I might be missing some steps.
What resources can I use to learn about these things?
I had assumed that there would be some classes that give a brief overview of these topics, but looking at the course listings, it seems that there are different levels of 'embedded systems.' Many of the classes focus on software development for extremely limited computers. During undergrad, a famous EE 'embedded systems' class culminated in students programming from scratch their own real-time OS for a hypothetical vending machine. While that is cool, it is not what I am looking for.