Я программирую на C как хобби и профессионально уже около 16 лет, но всегда для пользовательского кода (т.е. программ, а не ядра или драйверов). Большая часть моей работы была связана с языками высокого уровня (я выполнил много программирования на Perl и Ruby, с промежуточными сценариями Java, Python и shell между ними). Я много занимался разработкой для MS-DOS (которая, вероятно, была настолько же близка к программированию с нуля, как и на машине с x86), но моя последняя работа была связана с 5-летней веб-разработкой на Perl и Ruby on Rails.
При этом я теперь старший инженер по разработке встраиваемых Linux-систем, занимаюсь разработкой драйверов (включая эмулятор для устаревшего простого микропроцессора внутри модуля ядра) для uClinux на Blackfin Платформа. Бывали случаи, когда моя неопытность в отношении проблем, связанных с аппаратным обеспечением (т. Е. Плавающие уровни сигналов из-за отсутствия подтягивания / опускания булавки), мешала, но это был в основном очень приятный и захватывающий опыт. Как утверждают другие, понимание ваших инструментов очень важно - для uClinux это означало GNU Toolchain , с которым, к счастью, я уже был знаком из-за своего опыта в технологиях FOSS.
Blackfin вряд ли является микропроцессором начального уровня (в частности, он не имеет MMU , который имеет некоторые соответствующие эффекты для разработки Linux ), но, как уже говорилось, Вы можете купить Beagleboard примерно за 200 долларов США со всеми необходимыми аксессуарами и начать возиться с ним всего за несколько дней. Если вы хотите что-то более простое, есть много вариантов Arduino , хотя, если у вас есть какой-то реальный опыт разработки, я думаю, вы найдете их среду разработки немного ограничивающей (я знаю, что сделал).
После того, как вы освоитесь со своими инструментами, вы можете потратить немного денег на внутрисхемный эмулятор (или ICE). Они обычно сильно зависят от платформы (как с точки зрения целевой архитектуры, так и среды разработки), но настоятельно рекомендуются для всего, кроме обычных примеров мигания светодиодов после нажатия кнопки. Я уверен, что вы быстро перерастете.
Через несколько месяцев вы создадите пользовательские изображения для хакерских пользовательских устройств , используя Buildroot и получите массу удовольствия. Все, что я могу сказать, это пойти на это, это очень затягивает и не особенно дорого делать в наше время.