まもなく、ARMベースのプロセッサでのベアメタル(OSなし)機能のイーサネット実装に取り組みます。Linuxデバイスドライバーブックのイーサネットドライバーモデルについてはある程度知っていますが、カスタムソフトウェアスタックで実行するSoCのイーサネットドライバーを実装するためのリファレンスがないかと思います。
ARMアーキテクチャプロセッサのリファレンス実装はありますか、またはARMプロセッサにイーサネットドライバを実装する方法に関するガイダンスはありますか?
まもなく、ARMベースのプロセッサでのベアメタル(OSなし)機能のイーサネット実装に取り組みます。Linuxデバイスドライバーブックのイーサネットドライバーモデルについてはある程度知っていますが、カスタムソフトウェアスタックで実行するSoCのイーサネットドライバーを実装するためのリファレンスがないかと思います。
ARMアーキテクチャプロセッサのリファレンス実装はありますか、またはARMプロセッサにイーサネットドライバを実装する方法に関するガイダンスはありますか?
回答:
ベアメタルを要求する場合、特にアーキテクチャを指定しない場合は、何を探しているのかを知るのが少し難しいです...
組み込みアプリケーションの場合、(OSとみなすものに応じて)軽量OSを使用して、関心のあるデバイス(ARM Cortex-Mマイクロコントローラーを想定)と同様のデバイスのmbedソースを確認します。
最新のmbed Network Socketsのドキュメントがここにありますが、デバイスに固有のHAL実装については説明されていません(これらはデバイスメーカーによって提供されている可能性があります)。
これは、直接使用するためにベアメタルに十分近い可能性があります。これに失敗すると、デバイスベンダーはほぼ間違いなく、独自のフレームワーク内で低レベルの実装例を提供します。
ARMの使用について確信がある場合は、KeilのARM用イーサネットドライバをご覧ください。それは非常に有望です。
RL-TCPnetには、いくつかのイーサネットネットワークドライバーが含まれています。これらは、\ Keil \ ARM \ RL \ TCPnet \ Driversディレクトリにあります。
- LAN91C111.C-Phytec phyCore LPC229x評価ボードで使用されるSMSC LAN91C111イーサネットコントローラ用。
- EMAC_SAM7X.C-Atmel AT91SAM7X-EK評価ボードで使用されるAtmel AT91SAM7XオンチップEMACイーサネットコントローラー用。
- STR9_ENET.C-Keil MCBSTR9評価ボードで使用されるST STR912オンチップENETイーサネットコントローラー用。
- LPC23_EMAC.c-NXP(Philipsが設立)用の、Keil MCB2300評価ボードで使用されるオンチップEMACイーサネットコントローラLPC2368およびLPC2378。
- LPC24_EMAC.c-NXP(Philipsが設立)用の、Keil MCB2400評価ボードで使用されるLPC2468およびLPC2478オンチップEMACイーサネットコントローラ用。
- LM3S_EMAC.c-Luminary Micro EK-LM3S6965およびEK-LM3S8962評価ボードで使用されるLuminary Micro LM3S6962およびLM3S8962オンチップEMACイーサネットコントローラー用。
ご覧のとおり、さまざまなメーカーのさまざまなチップを搭載したさまざまな評価ボード用のイーサネットドライバーの例があります。Atmel、NXP、またはST Microelectonicsと同様。