Saya melakukan keduanya, jadi inilah pandangan saya.
Saya pikir keterampilan yang paling penting sejauh ini dalam tertanam adalah kemampuan debug Anda. Pola pikir yang diperlukan jauh berbeda karena jauh lebih banyak yang bisa salah, dan Anda harus sangat terbuka untuk mempertimbangkan semua cara berbeda yang Anda coba lakukan bisa salah.
Ini adalah masalah terbesar tunggal untuk pengembang tertanam baru. Orang-orang PC cenderung memilikinya lebih kasar, karena mereka terbiasa bekerja hanya untuk mereka. Mereka akan cenderung membuang banyak waktu mencari alat untuk melakukan hal-hal bagi mereka (petunjuk: tidak banyak). Ada banyak membenturkan kepala ke dinding berulang kali, tidak tahu harus berbuat apa lagi. Jika Anda merasa macet, mundurlah dan cari tahu apakah Anda dapat mengidentifikasi apa yang salah. Secara sistematis lakukan penyempitan daftar masalah potensial Anda sampai Anda mengetahuinya. Ini mengikuti langsung dari proses ini bahwa Anda harus membatasi ruang lingkup masalah dengan tidak mengubah terlalu banyak sekaligus.
Orang tertanam yang berpengalaman cenderung menerima debugging begitu saja ... sebagian besar orang yang tidak dapat melakukannya dengan baik tidak bertahan lama (atau bekerja di perusahaan besar yang hanya menerima "firmware sulit" sebagai jawaban untuk alasan mengapa fitur tertentu terlambat tahun)
Anda sedang mengerjakan kode yang berjalan pada sistem eksternal ke sistem pengembangan Anda, dengan berbagai tingkat visibilitas ke target Anda dari platform ke platform. Jika di bawah kendali Anda, dorong alat bantu pengembangan untuk membantu meningkatkan visibilitas ini ke sistem target Anda. Gunakan port serial debug, bit debug output debug, lampu berkedip terkenal, dll. Tentunya minimal belajar bagaimana menggunakan osiloskop dan gunakan pin I / O dengan 'lingkup untuk melihat kapan fungsi tertentu masuk / keluar, ISR terbakar, dll. Saya telah menyaksikan orang-orang berjuang selama bertahun-tahun lebih lama dari yang seharusnya hanya karena mereka tidak pernah repot mengatur / mempelajari cara menggunakan tautan debug JTAG yang tepat.
Jauh lebih penting untuk sangat menyadari sumber daya apa yang Anda miliki relatif terhadap PC. Baca lembar data dengan cermat. Pertimbangkan 'biaya' sumber daya apa pun yang Anda coba lakukan. Pelajari trik debugging yang berorientasi sumber daya seperti mengisi ruang stack dengan nilai ajaib untuk melacak penggunaan stack.
Sementara beberapa tingkat keterampilan debug diperlukan untuk PC dan perangkat lunak tertanam, itu jauh lebih penting dengan tertanam.