Sepertinya Anda sudah membuat beberapa pilihan desain.
kita tahu berbagai objek diperlukan, interaksi diperlukan antara berbagai objek dan komunikasi IPC antara tugas.
Anda memerlukan OS multi-ulir dan UC yang akan menjalankannya, biasanya berarti Anda ingin membidik prosesor dengan MMU. Opsi OS adalah hal-hal seperti Quadros, QNX, linux, meringis, dll.
Berdasarkan apa yang "objek" Anda (modul adalah istilah yang lebih baik untuk C :)) lakukan, Anda mungkin dapat menentukan jenis arsitektur apa yang Anda butuhkan. Apakah lengkungan 16bit cukup? butuh lebih banyak memori atau bekerja dengan angka yang lebih besar maka apakah 32bit jawaban yang tepat? banyak pekerjaan floating point? maka Anda mungkin membutuhkan prosesor dengan FPU. Apakah banyak DSP suka bekerja? mungkin Anda memerlukan DSP atau UC dengan instruksi seperti DSP atau co-proc. Menjalankan tampilan grafis? memerlukan SoC dengan pengontrol LCD bawaan atau berharap untuk melakukannya secara eksternal. Melakukan grafis 2D yang berat? memerlukan SoC dengan beberapa percepatan grafis.
Buatlah daftar fitur yang Anda butuhkan dan perkirakan berapa banyak kode Anda termasuk dalam kategori seperti operasi integer, perulangan, operasi floating point, operasi grafis, operasi DSP, dll.
Ini akan memungkinkan Anda untuk mengklasifikasikan tingkat perangkat yang Anda butuhkan. Untuk beberapa arsitektur Anda dapat mengkompilasi lintas beberapa kode menggunakan GCC dan menirunya menggunakan qemu di atas linux. Ini mungkin hanya layak jika Anda perlu menguji kinerja algoritma kritis pada arsitektur tertentu. Ini dapat membantu Anda mengukur kecepatan yang Anda butuhkan untuk aplikasi Anda.
Pertimbangan kedua harus penggunaan daya dan dukungan untuk manajemen daya. Dikombinasikan dengan kinerja yang diperlukan, Anda dapat memilih DSP, UC, prosesor aplikasi, dll.
Seperti yang orang lain katakan saya tidak akan khawatir tentang penggunaan memori, hanya bertujuan besar, seringkali ukuran ram berbeda pin yang kompatibel sehingga Anda hanya dapat memotong ram untuk produksi. Satu-satunya pertanyaan nyata untuk dijawab di sini adalah:
* Seberapa besar ruang alamat yang saya butuhkan? 16bit? 32bit? dll
* Apakah saya memerlukan ram eksternal atau ram internal UC akan cukup? <- jawab ini setelah Anda memilih arsitektur dan bisa pergi berburu SoC.
Untuk sebagian besar memilih di antara prosesor di kelas yang sama adalah "perang suci" alias di pasar 32bit risc beberapa akan kembali ARM, beberapa akan kembali coldfire, beberapa bahkan mungkin mendukung PIC32. Pada akhirnya mungkin ada yang akan berhasil. Anda harus memilih berdasarkan SoC yang tersedia dengan periferal yang diperlukan, kemudahan pengembangan (seberapa baik rantai alat) dan biaya.
Hal yang sama berlaku untuk pilihan OS, linux vs QNX vs quadros adalah pilihan untuk sebagian besar aplikasi, biasanya jawaban terbaik adalah yang paling Anda miliki. Sekalipun sedikit lebih mahal, pengurangan waktu pengembangan seringkali mengimbangi biaya pembangunan. Pastikan OS memiliki fitur yang diperlukan, pustaka bersama, komunikasi antar-proses, pipa, apa pun yang Anda butuhkan.
Sebagai aturan umum saya akan memilih arsitektur Anda terlebih dahulu. Ini akan memiliki dampak yang jauh lebih tinggi pada kinerja perangkat Anda daripada sistem operasi. Selain itu sistem operasi di ruang ini sering didukung pada banyak arsitektur. Juga OS yang lebih baik adalah POSIX compliant, ditulis dengan benar sebagian besar kode Anda harus dapat dijalankan pada banyak OS.
Jangan merasa buruk jika Anda harus melakukan beberapa upaya untuk membuat pilihan yang benar. Anda mungkin menemukan inti yang sangat sesuai dengan kebutuhan kode Anda, tetapi setelah beberapa penelitian menemukan bahwa itu tidak mendukung beberapa fitur minor yang Anda butuhkan, atau tidak ada SoC tersedia dengan periferal yang Anda butuhkan, atau bahkan benda itu dipesan kembali. selama 6 bulan. Pastikan setelah membuat pilihan awal bahwa Anda meneliti bagaimana desain akan datang bersama-sama berdasarkan pada bagian itu sehingga Anda melihat batu sandungan sekarang daripada setengah jalan melalui pengembangan.