Я делаю оба, так что вот мое мнение.
Я думаю, что самый важный навык на данный момент во встроенных системах - это ваша способность к отладке. Требуемое мышление сильно отличается тем, что гораздо больше может пойти не так, и вы должны быть очень открыты, чтобы рассмотреть все различные пути, которые вы пытаетесь сделать, могут пойти не так.
Это самая большая проблема для новых разработчиков встраиваемых систем. Люди с ПК, как правило, имеют более грубый характер, поскольку привыкли к тому, что просто работают на них. Они будут тратить много времени на поиски инструментов, которые вместо этого будут делать что-то для них (подсказка: их немного). Снова и снова бьют головы в стены, не зная, что еще делать. Если вы чувствуете, что застряли, отойдите назад и выясните, сможете ли вы определить, что все может пойти не так. Систематически проходите сужение списка потенциальных проблем, пока не разберетесь. Из этого процесса непосредственно следует, что вы должны ограничить объем проблем, не меняя слишком много сразу.
Опытные встроенные люди склонны считать отладку само собой разумеющимся ... большинство людей, которые не могут сделать это хорошо, недолговечны (или работают в крупных компаниях, которые просто принимают «прошивка сложна» в качестве ответа на вопрос, почему определенная функция уже много лет)
Вы работаете над кодом, который выполняется на внешней системе вашей системы разработки, с различной степенью видимости вашей цели от платформы к платформе. Если вы находитесь под вашим контролем, ищите средства для разработки, которые помогут улучшить эту видимость вашей целевой системы. Используйте отладочные последовательные порты, отладочные выходные данные с разбивкой битов, знаменитый мигающий свет и т. Д. Конечно, как минимум узнайте, как использовать осциллограф, и используйте вывод ввода-вывода с областью действия, чтобы видеть, когда определенные функции входят / выходят, ISR срабатывает и т. Д. Я наблюдал, как люди боролись буквально на годы дольше, чем необходимо, просто потому, что они никогда не удосужились настроить / научиться использовать правильную ссылку отладчика JTAG.
Гораздо важнее точно знать, какие именно ресурсы у вас есть по отношению к ПК. Внимательно прочитайте таблицы. Подумайте о ресурсной «стоимости» всего, что вы пытаетесь сделать. Изучите ориентированные на ресурсы приемы отладки, такие как заполнение стекового пространства магическим значением для отслеживания использования стека.
Хотя для ПК и встроенного программного обеспечения требуются определенные навыки отладки, для встроенных это гораздо важнее.