Learn interfacing micro controllers with different hardware modules and peripherals.
Learn to develop firmware from the scratch to create and develop your own libraries.
Learn to develop device drivers and write low level drivers for the micro-controllers.
Learn embedded system programming and IDEs are also covered here.
Bare-metal programming interacts with a system directly at the hardware level
Covers most of the built in modules in the micro-controller.