Low-Level Programming
Low-level programming describes the hardware-oriented development of software. It frequently uses C or assembler and requires detailed knowledge of the target hardware. As part of embedded programming , it enables efficient firmware, drivers or start-up code.