Embedded Systems use hardware and/or software components towards any one particular task. These systems have an application in any system that finds itself needing computation resources, be it a smart home appliance, or a flight controller. Of late, the area of IoT has gotten a lot of traction in the embedded systems world. This guide a collection of resources for those who wish to dive into the world of embedded systems and IoT.
This section will provide a list of material or courses that can be used to improve one's knowledge of the domain.
- Assembly language is important as you might have to code in it to improve speed and efficiency of your code. The most important languages are the ARM and X86. You can refer to individual resources but week 2 to week 5 of Computer Organization and Architecture, by Smruti Sarangi should be sufficient.
- Operating Systems have concepts important to embedded systems. NPTEL course is provided here. Important concepts to watch out for are scheduling of tasks, multithreading, synchronization, and kernels.
- Makefiles are encountered very often while programming embedded systems, this website shows how makefiles are used to build a heirarchy of files and multiple files.
- OSI model showcases different layers of connectivity and the technologies used in them.
Development Boards provides an insight into the computing devices one might use for their embedded systems applications. You can attach peripherals to them, program them and build your applications as desired. You can purchase your boards from either your local electronics stores, or on Amazon, Robu. The products mentioned here are open-source so they have a large community.
Tools and Technology cover a set of Tools and Technologies that can be used to develop Embedded Systems and IoT projects.