Рекомендую не ограничиваться на книгах, многие книги устаревшие, и Вы можете прочитать устаревшие понятия, это будет вредно для дальнейшего обучения. Лучше всего учиться на видеокурсам, которые на данный момент самые актуальные.
Подсказка: На всех низкоуровневых языках программирования, таких как C++, C, Assembler, JAVA написано вплодь от микроконтроллеров, до тостеров. По этому где учить я сказал(видеокурсы), и что учить. Выучив один или несколько из этих языков, Вы спокойно найдёте руководство как писать микроконтроллеры на один из них.