- 1. Pembangunan Keperluan Produk
- 2. Reka Bentuk Sistem dan pengembangan Algoritma
- 3. Pengekodan untuk Firmware Tertanam
- Menguji Firmware Tertanam
Pembangunan perisian umumnya sukar tetapi bagi sistem yang tertanam, ia berada pada tahap kesukaran yang baru. Pembangun perisian mesti mempunyai pengetahuan yang baik mengenai pembangunan perkakasan dan memahami cara kerja dalaman pemproses yang disisipkan. Untuk Artikel hari ini, saya akan berkongsi alat dan petua yang dapat digunakan untuk mencapai tahap kecekapan yang tinggi dan menghilangkan beberapa perkara yang menjadikan pembangunan firmware membosankan.
Pembangunan perisian tertanam melalui proses pengembangan yang serupa dengan pengembangan perisian "biasa". Terlepas dari model pembangunan / pengurusan yang diadopsi, Pengembangan Perisian Tertanam umumnya melibatkan langkah-langkah di bawah:
- Pembangunan keperluan produk
- Reka Bentuk Sistem dan Pembangunan Algoritma
- Pengekodan
- Ujian
Kami akan memeriksa beberapa kesukaran yang datang dengan tahap ini dan beberapa alat yang dapat meningkatkan kecekapan dan produktiviti.
1. Pembangunan Keperluan Produk
Spesifikasi produk sering dilakukan dengan mempertimbangkan perancang papan. Biasanya mengandungi sedikit maklumat yang dapat membantu pengembangan firmware, oleh itu, pembangun perisian terbenam berakhir dengan dokumen 250 halaman (rata-rata) yang tidak dapat digunakan untuk rujukan dan jika tidak dipertimbangkan dengan teliti dapat dengan mudah menyebabkan pengawasan dalam reka bentuk yang, pada gilirannya, membawa jangka masa projek dilanjutkan jika tidak keseluruhan kegagalan projek. Dokumen jarang mengandungi maklumat mengenai daftar atau bidang bit merekaantara lain dan ini memerlukan pembangun firmware selama beberapa jam kerana mereka mencari di dalam dokumen untuk mengenal pasti perkara seperti daftar yang termasuk dalam kumpulan mana dan bidang bit yang menjadi milik pendaftaran. Berikut adalah beberapa petua yang dapat dipertimbangkan untuk memastikan pengembangan dokumen spesifikasi projek yang lebih berguna.
Penggunaan Huraian Daftar
Seperti yang dibincangkan di atas, pembangun firmware perlu memahami selok-belok semua daftar, memori, dan lain-lain dari semua elemen kawalan (CPU, MCU, dll) dalam projek untuk dapat mengawal semua bahagian sistem dengan berkesan. Untuk meletakkannya di tempat, pembangun firmware dapat memastikan dokumen spesifikasi membawa keterangan daftar yang tepat bersama dengan peta memori. Semua daftar dalam elemen kawalan boleh diberi nama khas yang memudahkan mereka dikenali di seluruh dokumen dan semuanya boleh dihubungkan dengan panas sehingga mereka membawa ke senarai dalam dokumen yang menyatakan nama, lokasi, blok dan alamat setiap daftar.
Huraian Tugas
Cara lain di mana dokumen spesifikasi dapat dibuat berguna untuk pembangun perisian tertanam adalah dengan menerangkan apa yang seharusnya dilakukan oleh setiap blok dan bagaimana ia harus melakukannya. Juga pada tahap ini, harus ada rancangan untuk menangani kesalahan di setiap blok. Pada dasarnya ini kelihatan seperti pembangun firmware yang mengatakan; "Apabila saya sampai di sini, saya harus melakukan ini, ini dan ini, memastikan ini, ini dan itu, tidak berlaku". Ini membantu membimbing kerja pembangun dan membantu menilai projek sebelum reka bentuk mula mengenal pasti kemungkinan kesalahan dan pepijat, menjimatkan masa dan wang yang berharga.
Terdapat faktor lain termasuk struktur dokumen, penggunaan fon yang mudah dibaca (sesuatu yang dapat digunakan oleh pembangun walaupun penat), carta dan gambar di mana mungkin yang semuanya dapat meningkatkan kecekapan pasukan firmware setelah tahap ini.
2. Reka Bentuk Sistem dan pengembangan Algoritma
Tahap ini melibatkan pengembangan pseudokod, carta alir, mesin keadaan dan semua yang terlibat dengan reka bentuk firmware apa. Untuk peringkat ini, sebilangan besar alat boleh digunakan untuk membantu mengatur pemikiran, meneroka perisian lama / tertulis sebelumnya di sekitar projek dan mengembangkan carta alir anda sendiri, mesin keadaan dan lain-lain. Beberapa alat ini dibincangkan di bawah.
PIM
Pada peringkat pengembangan produk ini, pemaju cenderung banyak menulis kerana mereka mengumpulkan sumber-sumber dalam projek dari pautan web ke formula dan lain-lain. Salah satu kaedah terbaik untuk memantau maklumat ini sehingga mereka berguna kemudian adalah melalui penggunaan PIM alat (pengurusan maklumat produk). Terdapat sebilangan besar PIM di luar sana tetapi saya akan menyebutkan beberapa dengan beberapa ciri yang luar biasa.
1. Evernote
Evernote membantu anda mengambil nota yang tersedia di mana-mana platform supaya anda dapat memeriksa nota yang anda buat di PC semasa berada di bas. Nota disusun dengan baik dan boleh dicari sepenuhnya sehingga anda akan selalu mendapat apa yang anda perlukan.
2. Nota Trunk
Trunk note adalah aplikasi pengambilan nota seperti Wiki. Ini membawa semua kekuatan organisasi wiki untuk mencatat. Ini adalah aplikasi berasaskan telefon bimbit tetapi dapat diselaraskan dengan mudah melalui PC melalui WIFI.
Jenis PIM lain seperti Tiddlywiki dll. Masing-masing dilengkapi dengan ciri-ciri yang mungkin menjadikannya lebih menarik bagi individu tertentu dan mungkin mengambil beberapa sampel sebelum anda akhirnya menggunakannya.
Memahami Kod Warisan
Kumpulan alat lain yang sangat berguna semasa peringkat reka bentuk adalah alat untuk memahami kod warisan. Dalam keadaan di mana produk yang dirancang adalah versi yang lebih baik dari produk sebelumnya, pembangun mungkin berguna untuk meninjau kerja yang telah dilakukan untuk mendapatkan beberapa idea dan mungkin beberapa kod untuk projek baru ini. Ini mungkin jalan yang panjang, terutamanya jika anda bukan sebahagian daripada pasukan yang membina perisian sebelumnya. Terdapat sebilangan besar perisian yang membantu membina pokok, membuat dokumentasi dan carta alir dari kod yang sudah ditulis.
1. Doxygen
Doxygen adalah alat yang cukup hebat yang membantu membuat dokumentasi dari kod sumber. Ia dirancang terutamanya untuk berfungsi dengan C ++ tetapi juga berfungsi dengan C, Python dan beberapa bahasa lain. Ia memiliki kemampuan untuk mengekstrak struktur kod dari mana-mana kod, menyediakan grafik ketergantungan dan diagram Warisan yang dihasilkan secara automatik untuk membantu memvisualisasikan kod tersebut.
2. Graphviz
Menurut laman web mereka, graphviz membantu menyampaikan maklumat struktur sebagai gambarajah grafik abstrak dan rangkaian. Ia dapat digunakan bersama Doxygen untuk lebih memahami grafik yang dihasilkan olehnya.
3. Srecord
Srecord adalah alat yang kuat untuk memanipulasi gambar firmware dan menukar antara format fail yang berbeza. Ia boleh digunakan untuk mengira dan melakukan CRC dan Checksum pada blok bait, membetulkan fail ralat yang dibuat kerana rantai alat buggy, dan menyaring atau memindahkan bahagian fail antara lain. Lebih banyak maklumat mengenai penggunaannya boleh didapati di halaman SourceForge.
Beberapa alat lain yang termasuk dalam kategori ini adalah CrystalRev dan Hexplorer antara lain.
Membangunkan Algoritma
Semua agregat penyelidikan dan pengambilan nota untuk pengembangan algoritma berputar menjadi pseudokod dan carta alir untuk projek tersebut. Terdapat beberapa alat untuk mengembangkan carta alir dan walaupun kebanyakannya tidak eksklusif untuk pembangunan firmware, mereka menyediakan ciri berguna dan penting yang hanya menyelesaikan tugas dan juga membantu mengekalkan carta sepanjang kitaran pengembangan produk. Berikut adalah beberapa alat terbaik di luar sana untuk membuat carta alir.
1. QFSM
QFSM adalah alat grafik untuk merancang dan mensimulasikan mesin keadaan terhingga. Keupayaannya untuk mensimulasikan reka bentuk menjadikannya lebih baik daripada kebanyakan perisian lain dalam kumpulan ini. Ia sangat berguna semasa anda merancang mesin negara untuk FPGA dan perkakasan sasaran yang serupa.
2. Carta Lucid
Carta yang jelas boleh dikatakan adalah perisian carta alir terbaik dan paling fleksibel di luar sana. Ia berasaskan web dan mempunyai ciri pasukan yang membolehkan anda bekerja di antara pelbagai peranti dan berkolaborasi dalam masa nyata dengan rakan sepasukan.
3. Microsoft Visio
Visio adalah salah satu alat grafik terbaik pada masa ini. Ia mempunyai pelbagai objek dari pelbagai bidang yang memudahkan untuk menggambarkan apa sahaja. Namun, ia tidak dilengkapi dengan fitur yang meningkatkan kolaborasi antara pasukan dan hanya dapat digunakan pada mesin windows di mana ia dipasang.
4. Slaid Google
Salah satu perkara penting dalam pengembangan produk di dunia sekarang adalah penggunaan alat yang membolehkan pasukan bekerjasama dengan berkesan dari mana sahaja mereka berada dan itulah satu perkara yang dibawa oleh slaid Google. Ia dapat digunakan untuk mengembangkan semua jenis grafik dari carta alir perisian hingga carta organisasi dan peta minda. Ia berasaskan cloud dan berfungsi di hampir semua penyemak imbas yang popular.
Beberapa alat lain ada untuk membuat carta alir dan pengembangan algoritma umum, seperti biasa, masing-masing mempunyai pro dan kontra tersendiri.
3. Pengekodan untuk Firmware Tertanam
Segala perkara yang telah disebutkan hingga ke tahap ini menuju ke sini Dunia SDK dan IDE, pilihan alat pada tahap ini bergantung pada peranti sasaran dan ciri yang akan dimasukkan ke dalam peranti, kerana alasan ini, saya akan mengecualikan SDK dan IDE yang popular seperti MPLAB, dll dari perbincangan dan hanya bertahan kepada alat yang lebih bersifat pelengkap.
1. QT (Pembangunan GUI)
Paparan (interaktif atau tidak) adalah medium yang paling popular untuk memberikan maklum balas kepada pengguna hari ini dan QT's SDK adalah salah satu yang terbaik di luar sana dan mungkin tidak asing bagi sesiapa sahaja dalam lingkaran tertanam. Ini menyediakan fitur "drag and drop" yang mempermudah pengembangan aplikasi berbasis GUI yang kompleks untuk peranti tertanam, tanpa mengira platform sasaran, atau bahasa pengaturcaraan yang digunakan untuk pengembangan proyek secara keseluruhan. Ini pada dasarnya menghilangkan tekanan berkaitan dengan menggunakan kod untuk membuat antara muka pengguna.
2. (Prototaip Cepat)
Salah satu halangan terbesar dalam pengembangan perisian tertanam adalah hakikat bahawa perkakasan biasanya tidak tersedia untuk menguji sesuatu semasa dalam perjalanan semasa perisian sedang dikembangkan. Seringkali apabila ia tersedia, pembangun firmware akan diminta menunggu sepanjang masa sehingga perkakasan siap melakukan sedikit atau tidak. Ini meningkatkan masa depan dan tidak memberi ruang untuk jenis penyegerakan antara jurutera perkakasan dan pembangun firmware yang akan meningkatkan kualiti produk. Untuk membantu menyelesaikan masalah ini, orang-orang di VaST membuat platform prototaip maya peringkat sistem Elektronik yang boleh digunakan untuk membuat prototaip perkakasan maya di mana perisian tertanam dapat dijalankan untuk menentukan prestasi sistem sebelum perkakasan siap.
3. Doxygen (Dokumentasi)
Salah satu bahagian yang paling penting dalam menulis kod apa pun adalah dokumentasi dan salah satu alat yang paling popular untuk itu adalah Doxygen. Selain penggunaannya untuk memahami perisian lama, Doxygen memiliki kemampuan untuk secara automatik mengekstrak komen dari kod dan membuat dokumentasi yang menyertakannya. Struktur Doxygen merangkumi fail secara grafik dan membuat rujukan untuk setiap fungsi, Pembolehubah, dan makro yang digunakan dalam kod anda. Diagram alir dan diagram aliran data juga dapat disertakan dalam dokumentasi dengan menggabungkan Doxygen dengan graphviz.
4. GIT (Sistem Kawalan Versi)
Sukar untuk mempercayai bahawa ada yang mengembangkan perisian dari jenis apa pun tanpa semacam sistem kawalan versi akhir-akhir ini, tetapi sekiranya anda melakukannya, ini adalah idea yang sangat buruk yang boleh menyebabkan kesilapan yang akan memakan masa dan wang anda. Git menonjol di antara semua alat kawalan versi di luar sana kerana beberapa sebab. Ia adalah sumber terbuka, cepat, cekap dan kebanyakan tempatan. Selain Git, alat seperti penukaran juga perlu disebut.
Menguji Firmware Tertanam
Ujian adalah bahagian penting dalam proses pengembangan untuk apa sahaja. Firma kehilangan ribuan dolar ketika peranti ditarik balik kerana kesalahan firmware sehingga merupakan salah satu bahagian pengembangan yang harus ditangani dengan sangat serius. Ia sering dilakukan, bergandengan tangan, dengan pengekodan dan set alat pertama untuk pengujian kod, mungkin penyalahgunaan dalam IDE atau SDK yang digunakan untuk projek tersebut. Ujian datang dalam pelbagai bentuk dan dilakukan pada tahap yang berbeza, dengan demikian, ia melibatkan pelbagai jenis alat. Alat ujian membentuk pengembangan firmware yang merangkumi pengesahan reka bentuk untuk analisis statik dan alat ujian jangka masa. Berikut adalah beberapa alat yang saya rasa sangat berguna.
1. Crystal REV
Crystal revs adalah alat untuk mengkaji kod. Ia boleh digunakan untuk menghasilkan carta alir dari kod C / C ++ yang menjadikannya alat yang bagus untuk mengkaji kod anda sendiri dan melihat apakah reka bentuk awal adalah apa yang dilaksanakan. Dengan kristal rev, anda akan dapat dengan cepat melihat perbezaan antara reka bentuk dan pelaksanaannya. Keupayaannya untuk menghasilkan carta alir, data dan aliran panggilan dari kod juga menjadikannya alat, berguna untuk menganalisis kod warisan.
2. PC- Lint
PC-lint adalah salah satu alat ujian firmware tertua di sekitar. Ia mampu menganalisis perisian untuk mengenal pasti bug, kerentanan keselamatan, dan memastikan kod ditulis sesuai dengan piawaian industri. Alat serupa termasuk polyspace, dan LRDA, Eggplant, dan Tessy antara lain.
3. Wireshark
Ini sangat berguna semasa membina peranti rangkaian. Ini pada dasarnya adalah sniffer paket dan dapat membantu melihat data yang dihantar oleh peranti anda. Ini dapat membantu keselamatan peranti.
4. Pemacu Port Bersiri Maya
Perisian VSPD by eltima adalah alat yang baru-baru ini diperkenalkan oleh rakan saya. Ia sangat berguna semasa mengerjakan pemacu peranti dan perkembangan lain yang berkaitan dengan pelabuhan. Port com bersiri maya memberi anda keupayaan untuk menguji tingkah laku port com tanpa peranti sasaran. Anda boleh membuat port yang tidak terhad yang mampu meniru semua tetapan port com sebenar. Perisian ini juga dilengkapi dengan ciri-ciri seperti pemisahan port Serial, penggabungan port Com, penggunaan sambungan port bundle com antara ciri-ciri keren yang lain.
Itu sahaja untuk artikel ini, terima kasih kerana meluangkan masa untuk membaca. Walaupun mustahil untuk menyenaraikan semua alat di luar sana, saya harap anda dapat melihat beberapa alat ini berguna.