I’m one lab and quiz away from being done with my embedded systems course. It’s amazing that it’s been 3 months already since I started, but as with most classes I enjoy, I don’t want it to end. I’ve really enjoyed this class, and it has opened my eyes up to the world of true embedded systems programming and design. I was intimidated by bitwise operations, memory addresses, and accessing the hardware directly (except using cheap Arduino code). I’ve realized embedded systems programming is not much different from hardware programming, except for the fact that you deal with system registers and hardware. Of course, this is not always true for low power, low memory, and assembly-only systems.
Some of the things I’ve learned:
- Into into the ARM M4 Cortex
- Interacting with the microcontroller directly through registers
- Finite State Machines (Man, I love these things!)
- Arrays and debugging
- Using a logic analyzer and oscilloscope to debug
When this course is done, I want to work on programming device drivers, using SPI and I2C, and using Ethernet. There are a lot of libraries included by TI that I need to go through that makes initializing and using the hardware a lot easier.
I also have these on the list of things to learn:
- Stacks and Queues
- Searching and Sorting
- Linked Lists and Binary Trees
- Memory Management
- Data Abstractions, Algorithms, and Data Structures
- Finish my analog design book
- Learn Altium
My next courses are going to be in hardware and software verification testing, as well as an introduction into Linux course. One of the fields I am interested in is Hardware Test Engineering, and both these courses will help me decide if this is a good field that I enjoy.
So many things to do, so little time!