Topics in firmware design and development (software built into hardware)