ARM Microcontroller Interfacing: Hardware and Software