ХЗ, нравится Linux, нравится С, вот думаю о будущем, так сказать. Учусь в техническом универе, интегральную электронику знал хорошо, но программирования микропроцессоров/микроконтроллеров не было.
Судя по отзывам в интернете, у них там постоянный брак. Причём они вечно из-за этого переделывают железо и выпускают всё новые и новые его редакции. Скорее стабильный Распберри Пи в таком случае является приятным исключением.
Если интересно работать на низком уровне, то можно начать с микроконтроллеров на базе ARM Cortex-M3, например, и попрограммировать на голом железе без ОС. По-моему будет очень полезно.
Потом попробовать простенькие ОС как FreeRTOS, работающие без MMU на тех же самых микроконтроллерах.
Затем Линукс на процах потяжелее. Разные уровни embedded будут перед глазами - сможешь осознано выбирать.
Хорошие простые для освоения слайды, всегда любил их. Они под свободной лицензией по самым разным тематикам. Правда последнее время они в Android ударились.
Они специализируются на как раз Embedded Linux. Эти слайды + упражнения не сильно подходят мне по части сборки системы, т.к. я осваиваю Yocto, но что касается драйверов - там универсально.
Минимум для задачи максимум (не рассматривая детские варианты, когда есть гарантированно рабочая плата с SD картой куда по методичке можно вкорячить готовый бинарный образ). 1. Немного цифровой схемотехники (как минимум преобразование уровней, #CS и прочие простые электронные вещи для работы с переферией). Умение из usb<->rs232 сколхозить usb<->uart. 2. JTAG (может и не пригодится, но лучше знать и уметь). 3. Кросскомпиляция (понимать что где и куда). 4. Сборка и прошивка загрузчика для целевой платформы (чаще всего u-boot, но бывают и другие) 5. Сборка и прошивка ядра, rootfs и целевого ПО. 6. Если целевая платформа работает с/через сеть то весьма пользительно tftp/bootp/nfs.
Учусь в техническом универе, интегральную электронику знал хорошо, но программирования микропроцессоров/микроконтроллеров не было.
В таком случае, просто разбирайся углубленно в Linux и C. Параллельно займись простыми микроконтроллерами (например, AVR). После этого переход в область Embedded Linux будет легким.