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