cpq / bare-metal-programming-guide C 5K 462 A bare metal programming guide (ARM microcontrollers) baremetal gcc make stm32