Pertanyaan Driver PCIe untuk Windows CE dan Windows Desktop


Saya perlu sedikit saran untuk pengembangan driver PCIe kustom. Pengandar harus mendukung Windows CE 6.0 dan Windows Desktop (xp, 7, dan 8 jika siap).

Kami memiliki banyak pengalaman mengembangkan driver untuk Windows CE tetapi tidak ada untuk Windows Desktop. Saya cukup yakin bahwa kita dapat mengembangkan driver Windows CE yang baik dan solid, tetapi saya pikir kita tidak akan bisa melakukan hal yang sama untuk Windows Desktop tanpa bantuan eksternal. Saya pikir kita memiliki dua opsi:

1) Gunakan kerangka driver yang ada seperti Jungo WinDriver, yang memungkinkan kita untuk mengembangkan driver sekali dan mengkompilasi ke beberapa platform. Ini juga memiliki keuntungan bahwa sebagian besar pengembangan akan berada di ruang pengguna, sehingga harus membuat proses pengembangan lebih sederhana.

2) Dapatkan bantuan eksternal untuk men-setup driver Windows Desktop yang baik di mana semua pipa dilakukan dan kita hanya perlu menambahkan kode yang berkomunikasi dengan papan kami dan mengekspos IOControls yang relevan. Mungkin memindahkan sebanyak mungkin kode ke pustaka ruang pengguna.

Apa manfaat dan kerugian dari setiap opsi? Apakah Anda akan merekomendasikan pendekatan alternatif?


32
2017-09-16 12:35


asal


Jawaban:


Seperti yang diminta beberapa waktu yang lalu, saya akan mencoba membagikan pengalaman saya sekarang lebih dari satu tahun setelah saya menanyakan pertanyaan aslinya. Kami memutuskan untuk menggunakan Windriver, tetapi sejauh ini kami hanya menulis driver untuk Windows CE 6.0, jadi saya tidak dapat berkomentar mengenai dukungan lintas platform.

Menggunakan Windriver pada Windows CE 6.0 memiliki kelebihan dan kekurangan. Itu berarti semua kode driver kami sekarang ada di perpustakaan, jadi lebih mudah untuk mengembangkan dan melakukan debug (dibandingkan dengan driver standar yang membutuhkan Platform Builder). Jadi dari sudut pandang pembangunan, itu bagus. Performanya juga baik-baik saja. Ada beberapa overhead di awal belajar Windriver API dan bagaimana menggunakannya, terutama dengan DMA dan interupsi, tapi saya tidak berpikir itu lebih buruk daripada belajar API Windows CE 6.0 PCI mentah.

Satu-satunya kelemahan yang dapat saya pikirkan adalah bahwa driver "nyata" lebih mudah untuk dibagikan di antara banyak proses daripada perpustakaan yang telah kami buat menggunakan Windriver. Dalam aplikasi kami (embedded system dengan satu proses) itu tidak benar-benar masalah, tetapi lebih sulit untuk membuat debug / pengembangan utilitas yang beroperasi pada perangkat keras di belakang bagian belakang proses utama. Kami telah menggunakan pendekatan itu untuk menguji / debug pada platform lain tetapi sedikit lebih rumit untuk dilakukan di sini.

Untuk menjumlahkan semuanya, saya pikir kami membuat pilihan yang tepat dan saya senang bahwa kami memiliki kemampuan untuk memport "driver" kami ke Windows Desktop dengan (semoga) sedikit usaha ketika kami membutuhkannya.


2
2017-10-22 19:44



Setelah menggunakan Windriver untuk mengembangkan driver untuk Windows / Linux, saya ingin menjawab pertanyaan ini.

Saya lebih suka Windriver, jika aplikasi yang menggunakan driver juga akan ditulis oleh Anda. Karena Anda menyebutkan bahwa Anda mengembangkan driver khusus, saya berasumsi bahwa Anda akan menulis aplikasi juga sendiri. Dalam hal ini, aplikasi tidak perlu banyak berubah antara windows dan windows CE, karena sebagian besar fungsi driver akan dibuat oleh Windriver sendiri. Ini seperti memanggil fungsi perpustakaan standar sebagai lawan menggunakan IOCTLs dll.

Di masa lalu, saya telah menggunakan windriver untuk menghasilkan kode antarmuka driver dasar, dan mengembangkan aplikasi (Sebagian besar aplikasi diagnostik) yang menggunakan kode yang dihasilkan windriver. Dengan sedikit modifikasi, kami dapat menggunakan driver dan aplikasi antara windows dan linux. Saya tidak menganjurkan untuk menggunakan Jungo, tetapi mudah digunakan.

Karena pertanyaannya adalah tentang meminta saran, Sulit untuk memberikan jawaban yang tepat, saya hanya membagikan umpan balik saya.


1
2017-10-12 23:16