Вы специально занимаетесь разработкой встроенного программного обеспечения или также интересуетесь дизайном печатной платы?
Если это просто программное обеспечение, то я бы предложил приобрести плату для разработки ARM (возможно, у линейки Philips LPC - sparkfun есть несколько хороших), которую вы можете запрограммировать через загрузчик через USB и начать взламывать , Получите один с дисплеем и портом Ethernet, и вы можете создать какой-нибудь датчик, подключенный к сети (температура, уровень воды, счетчик объектов и т. Д.). Начните немного (включите светодиод с кнопки) и продолжайте свой путь.
Если вы также занимаетесь электроникой, я бы предложил что-то вроде плеера MP3 (или WAV) и, возможно, придерживался 8-битных микроконтроллеров AVR или PIC (AVR используется на Arduino), так как это немного легче иметь дело, чем ARM. Здесь можно начать с устройства с питанием от USB, которое передает потоковые файлы wav с последовательного порта ПК на пару наушников, а затем на плату с питанием от батареи и передает данные в ИС декодера MP3 с карты SD.
Некоторые вещи, которые вы можете изучить и продемонстрировать:
- Понимает границы работы с ограниченными ресурсами, включая управление памятью (динамическое и / или статическое); управление ресурсами (блокировки, семафоры, мьютекс); несколько заданий (прерываний); и соответствующие структуры данных
- Возможность взаимодействия с другими устройствами / интегральными схемами через различные межсоединения (аналоговый и цифровой ввод-вывод, последовательная шина (RS232, I2C, SPI))
- Способность разумно структурировать программу и сегментировать различные модули без создания кода для спагетти
- Возможность использования исходного кода и интеграции сторонних библиотек, где это необходимо (например, файловая система FAT или стек TCP / IP)
Разные советы:
- читать и понимать таблицы данных (да все они)
- кодируйте и тестируйте на рабочем столе, где это возможно, но понимайте, что есть различия, и ошибки по-прежнему будут появляться (это помогает использовать цепочку инструментов, которая является общей для рабочего стола - GCC - это хорошо, но инструменты вообще CLI)
- много используйте assert - вы можете высветить номер строки несостоявшегося assert с помощью одного светодиода - это неоценимо
Больше всего веселья - это все еще вызывает у меня улыбку, когда вы впервые получаете работу нового компонента (дисплей, двигатель, датчик). Внедрение заставляет мир вращаться :) 1033 *