OSなしのイーサネットドライバーの適切なリファレンスは何ですか?


8

まもなく、ARMベースのプロセッサでのベアメタル(OSなし)機能のイーサネット実装に取り​​組みます。Linuxデバイスドライバーブックのイーサネットドライバーモデルについてはある程度知っていますが、カスタムソフトウェアスタックで実行するSoCのイーサネットドライバーを実装するためのリファレンスがないかと思います。

ARMアーキテクチャプロセッサのリファレンス実装はありますか、またはARMプロセッサにイーサネットドライバを実装する方法に関するガイダンスはありますか?


3
どのタイプのSoCを考えていますか?ネットワーキングをサポートしていれば、多くがリファレンス実装を提供すると思います。
Aurora0001

1
Atmel、TIなど。ARMになりますが、ベンダーは不明です。何か提案はありますか?
netskink 2017

あなたのユースケースについてもう少しコンテキストなしで言うのは難しいです。見ていたハードウェアの選択質問をする方法についての指導のための[ハードウェア]タグのwiki、または多分を見てみバッテリ駆動データ収集プロジェクトのためのマイクロコントローラを選択します。ただし、ガイダンスが必要な場合は、要件が含まれている限り、自由に別の質問をしてください。
Aurora0001

6
原則として、プロセスの最後に到達した質問だけを尋ねるのではなく、なぜあなたが質問の一部として何かをしているのを説明する方が良いでしょう。その後、誰かが別のアプローチを提案できる可能性があります(推論で不正確な仮定をした場合)。
Sean Houlihane 2017

マイクロコントローラクラスの「組み込み」ネットワークソリューションは、コモディティチップで実行される小さな「フルオペレーティングシステム」のソリューションよりも必ずしも安いとは限らないことに注意してください。どちらも痛みを伴う傾向があります。特に、元の要件から途中で変更があった場合や、宣伝どおりに動作しないものがある場合は、オペレーティングシステム全体のアプローチに長い時間がかかる可能性があります。不要なコンポーネントやサービスを残さずに、必要なものだけに取り組みます。
Chris Stratton、2017

回答:


3

ベアメタルを要求する場合、特にアーキテクチャを指定しない場合は、何を探しているのかを知るのが少し難しいです...

組み込みアプリケーションの場合、(OSとみなすものに応じて)軽量OSを使用して、関心のあるデバイス(ARM Cortex-Mマイクロコントローラーを想定)と同様のデバイスのmbedソースを確認します。

最新のmbed Network Socketsのドキュメントがここにありますが、デバイスに固有のHAL実装については説明されていません(これらはデバイスメーカーによって提供されている可能性があります)。

これは、直接使用するためにベアメタルに十分近い可能性があります。これに失敗すると、デバイスベンダーはほぼ間違いなく、独自のフレームワーク内で低レベルの実装例を提供します。


2
これに失敗すると、デバイスベンダーはほぼ間違いなく、独自のフレームワーク内で低レベルの実装例を提供します。Allwinnerチップをベースにしたものなど、中国製のSBCがたくさんあるので、Linuxバイナリーが動作していれば幸いです。
DepressedDaniel 2017

@DepressedDaniel-OPは、電話のCPUに基づいて事前に構築されたSBCではなく、デバイスに組み込む予定のSoCについて質問しているようです。彼はまた、ベンダーを選択する前にどこを見るべきかを尋ねています...
Sean Houlihane

1
使用するのに適したサンプル実装のように見えるショーン。この回答には正しい回答としてフラグを付けます。または、freeRTOSのようなものを見るつもりでしたが、まだコードを調べていません。この時点で、wiki、オンラインドキュメント、または本にも興味があります。コードに飛び込む前に読むことができたもの。それについても良い提案はありますか?
netskink 2017

@netskink申し訳ありませんが、ドライバの実装は私の領域ではありません。ユーザーマニュアルへのリンクを追加しました。役立つと思います。
Sean Houlihane

1
ショーンありがとう。あなたの返事は私をかなり助けました。それは有り難いです。
netskink 2017

4

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と同様。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.