Apa referensi yang baik untuk Driver Ethernet tanpa OS?

8

Segera saya akan bekerja pada implementasi Ethernet untuk kemampuan bare metal (tanpa OS) pada prosesor berbasis ARM. Saya agak akrab dengan model driver Ethernet di buku Linux Device Drivers, tapi saya bertanya-tanya apakah ada referensi untuk mengimplementasikan driver Ethernet untuk menjalankan SoC dengan tumpukan perangkat lunak khusus.

Apakah ada implementasi referensi untuk prosesor arsitektur ARM, atau adakah panduan tentang cara mengimplementasikan driver Ethernet pada prosesor ARM?

netskink
sumber
3
Apa jenis SoC yang ada dalam pikiran Anda? Saya menduga banyak yang akan memberikan implementasi referensi jika mereka mendukung jaringan.
Aurora0001
1
Atmel, TI, dll. Ini akan menjadi ARM tetapi tidak yakin vendor mana. Apakah Anda punya saran?
netskink
Sulit untuk mengatakan tanpa lebih banyak konteks tentang use case Anda. Lihat wiki tag [perangkat keras] untuk panduan tentang cara mengajukan pertanyaan pemilihan perangkat keras , atau lihat Memilih mikrokontroler untuk proyek pengumpulan data yang dioperasikan dengan baterai . Jika Anda menginginkan panduan, silakan mengajukan pertanyaan lain selama Anda menyertakan persyaratan Anda!
Aurora0001
6
Sebagai aturan umum, lebih baik untuk menjelaskan mengapa Anda melakukan sesuatu sebagai bagian dari pertanyaan Anda, daripada hanya menanyakan pertanyaan yang Anda capai pada akhir proses Anda. Seseorang mungkin dapat menyarankan pendekatan yang berbeda (jika Anda membuat asumsi yang tidak akurat dalam alasan Anda).
Sean Houlihane
Perhatikan bahwa solusi jaringan "tertanam" kelas mikrokontroler belum tentu lebih murah daripada solusi "sistem operasi penuh" kecil yang berjalan pada chip komoditas. Keduanya cenderung menyakitkan - sistem kecil untuk dikonfigurasikan dengan layanan yang Anda butuhkan, terutama jika ada perubahan tengah jalan dari persyaratan asli atau apa pun yang tidak berperilaku seperti yang diiklankan, sementara itu pendekatan sistem operasi penuh dapat memakan waktu lama untuk pergilah ke hal-hal yang Anda inginkan, tanpa komponen atau layanan yang tidak diinginkan yang tersisa.
Chris Stratton

Jawaban:

3

Agak sulit untuk mengatakan apa yang Anda cari ketika Anda meminta bare metal, terutama ketika Anda tidak menentukan arsitektur ...

Untuk aplikasi yang disematkan, menggunakan OS yang ringan (tergantung apa yang Anda anggap sebagai OS), lihat sumber mbed untuk perangkat yang mirip dengan yang Anda minati (dengan asumsi mikrokontroler ARM Cortex-M).

Dokumentasi Network Sockets terbaru ada di sini walaupun itu tidak menggambarkan implementasi HAL yang khusus untuk perangkat (ini kemungkinan dikontribusikan oleh produsen perangkat).

Ini mungkin cukup dekat untuk menggunakan logam secara langsung. Gagal itu, vendor perangkat hampir pasti akan memberikan contoh implementasi tingkat rendah dalam kerangka kerja mereka sendiri.

Sean Houlihane
sumber
2
Gagal itu, vendor perangkat hampir pasti akan memberikan contoh implementasi tingkat rendah dalam kerangka kerja mereka sendiri. Dengan banyak SBC buatan China, seperti yang berbasis pada chip Allwinner, Anda beruntung jika mereka menyediakan Anda dengan biner Linux yang berfungsi.
DepressedDaniel
@DepressedDaniel - OP tampaknya bertanya tentang SoC yang ia rencanakan untuk dibangun ke dalam perangkat, bukan SBC pra-dibangun berdasarkan pada CPU telepon. Dia juga bertanya ke mana harus mencari sebelum memilih vendornya ....
Sean Houlihane
1
Sean yang terlihat seperti contoh implementasi yang baik untuk digunakan. Saya akan menandai respons ini sebagai jawaban yang benar untuk itu. Atau saya akan melihat sesuatu seperti freeRTOS tetapi saya belum mulai melihat kode. Saya juga tertarik dengan wiki, dokumen atau buku online pada saat ini. Sesuatu yang bisa saya baca sebelum melompat ke dalam kode. Apakah Anda punya saran bagus untuk itu juga?
netskink
@netskink Maaf, implementasi driver bukan area saya. Menambahkan tautan ke dokumentasi pengguna, saya pikir itu membantu.
Sean Houlihane
1
Terima kasih, Sean. Respons Anda sangat membantu saya. Saya menghargainya.
netskink
4

Jika Anda yakin tentang menggunakan ARM maka Anda bisa melihat Keil's Ethernet Drivers untuk ARM . Cukup menjanjikan.

RL-TCPnet mencakup beberapa driver Jaringan Ethernet. Ini terletak di direktori \ Keil \ ARM \ RL \ TCPnet \ Drivers:

  • LAN91C111.C - untuk SMSC LAN91C111 Ethernet Controller digunakan pada papan evaluasi Phytec phyCore LPC229x.
  • EMAC_SAM7X.C - untuk Atmel AT91SAM7X on-chip EMAC Ethernet Controller yang digunakan pada papan evaluasi Atmel AT91SAM7X-EK.
  • STR9_ENET.C - untuk STET912 on-chip STET Ethernet Controller yang digunakan pada papan evaluasi MCBSTR9 Keil.
  • LPC23_EMAC.c - untuk NXP (didirikan oleh Philips) LPC2368 dan LPC2378 on-chip EMAC Ethernet Controllers yang digunakan pada papan evaluasi Keil MCB2300.
  • LPC24_EMAC.c - untuk NXP (didirikan oleh Philips) LPC2468 dan LPC2478 on-chip EMAC Ethernet Controllers yang digunakan pada papan evaluasi Keil MCB2400.
  • LM3S_EMAC.c - untuk Luminary Micro LM3S6962 dan LM3S8962 on-chip EMAC Ethernet Controllers digunakan pada Luminary Micro EK-LM3S6965 dan papan evaluasi EK-LM3S8962.

Seperti yang Anda lihat ada contoh Driver Ethernet untuk berbagai papan evaluasi yang memiliki chip berbeda dari produsen yang berbeda. Seperti Atmel, NXP, atau ST Mikroelektonik.

Bence Kaulics
sumber