OSのないRaspberry PIは?


9

私は最近、Arduinoで多くのことをしています。オペレーティングシステムやドライバーを必要とせずにC ++コードを直接実行できるため、非常に簡単です。

私はいくつかの調査とAFAIKを行いました。通常、Raspberry PIにLinuxをインストールして、PythonスクリプトまたはC ++バイナリを作成します。

質問:オペレーティングシステムがなくてもコードを実行できますが、HDMIおよびSDカードを使用できますか?


2
小さくて機能は少ないが、完全に文書化されたARMプロセッサでベアメタルプロジェクトを実行する方が簡単な場合があります。安価な開発ボードの不適切に実装された独自のデバッグアダプターには注意してください。リバースエンジニアリングされたオープンドライバーが使用されることもあれば、実際のjtagを購入するか、シリアルブートローダーを使用することもできます。少なくともpiを使用すると、優れたツールチェーンサポートを期待できるはずです。
Chris Stratton、2012

回答:


16

OSなしのRaPiでコードを実行する:問題ありません。David Welchがうなり声を上げました。彼のgitubを確認してください。基本的に、標準の起動ファイルを取得して、kernel.imgを実行するファイルに置き換えることができます。「SDカードのダンス」を回避するには、実行するイメージをシリアルライン経由で受信するブートローダーを実行します。自動再起動を追加したので、新しいイメージを「そのまま」実行できます。このルートに行きたい場合は、もう少し情報があります。

独自のベアメタルアプリケーション実行し、画面とSDカードを使用する:これは問題です。すべての情報はLinuxソースの奥深くにあり、これに取り組んでいる人がいます(DexOをチェックしますか?)ので、半年程度でこの情報は一般的な知識になると思います。しかし、今のところ、これはおそらく大変な作業です。


SDカードとファイルシステムに適切なドライバーがなければ、CPUがSDカードからカーネルをどのようにロードできるのでしょうか。
bytecode77

1
必要な基本ファイル(およびRaPiサイトから、単独で、またはLinuxディストリビューションの一部としてダウンロードできます)には、GPUの起動ファイルが含まれています。おそらく、GPUには、SDの読み取り、コードのロード、kernel.imgのロード、およびARM CPUのアクティブ化を可能にするいくつかの組み込みbootROMがあります。
Wouter van Ooijen

@DevilsChild-多くのCPUには基本的なブートローダーが組み込まれています。私が使用しているTI Davinciの部分には、シリアル経由またはSDカードから動作する「ROMブートローダー」があります。SDカードは、基本的なSPIインターフェースを使用します。
John U

5

常に可能ですが、HDMIとSDインターフェース用の独自のドライバーを作成する必要があり、場合によっては後者のファイルシステムも作成する必要があります。


1
CPUを起動するために最初に起動してからBroadcomのバイナリBLOBをロードする必要があるのはGPUであるため、実際には非常に複雑になります。また、私が正しく覚えている場合、GPUドライバーとファームウェアもクローズドソースです。
AndrejaKo

それが機能するように含まれる可能性がある利用可能なドライバーはありますか?何か案が?
bytecode77

@Devils Child私はそれがどれほど簡単か、すべてがどのように文書化されているかわかりません。既存のブートローダーを使用して独自のOSイメージをロードし、CPUを起動できる可能性があると思いますが、Stevenvhが回答に書いた問題は次のように示しています。あります。
AndrejaKo

@DevilsChild-存在するドライバーは特定のOS用に作成される可能性が高く、独自のソフトウェアに統合する場合は、その機能の一部が必要です。最後に、OSの(限定された)コピーを作成します。また、AndrejaKoは、それが非常に難しくなることを示しており、クローズドソースファームウェアは物事を容易にしません。なぜあなたはOSが欲しくないのですか?
stevenvh 2012

1
@DevilsChildは、シングルボードコンピューターとVMの重要な違いは、VMをホストしているマシンの物理的な場所以外の場所にボードを配置できることです。また、実際のI / Oが向上する傾向があります。しかし、VM、およびより専門的なエミュレーターまたはシミュレーターは、ハードウェアが存在する前にソフトウェアチームが作業を開始できるようにしたり、機能するように手作業で修正された唯一のプロトタイプボードを使用したり、実行したりしないようにするなど、重要な役割を果たします。物理デバイスのコレクションを拘束せずに回帰テストを実行...
Chris Stratton 2012

3

彼らが言ったことはすべてですが、最も簡単な方法は、必要なことを実行し、可能な限り最小限のLinuxディストリビューションを実行してから、不要なものを取り除くことです。

まもなくLinuxでなくなり、SDとHDMIをサポートするブートローダーになります。これは
、Linuxディストリビューションから抽出されたもの(ただし、Linuxではなくなりました)と
、自分で実行しなかった場合を除いて、基本的に、あなたが求めているすべての点と区別がつきません。

それを完全に自分で行うことが絶対に重要でない限り、これは非常に論理的なアプローチのように見えます。



0

「Raspberry Pi as Arduino」をプログラムする場合は、wirelingPiをチェックしてください。http://www.jating.in/efyarticle/EFYArticle.pdfで私の記事を確認してください

1)単一のケーブルを使用してUSBからシリアルへの変換を行い、ボードにも電力を供給することで、Arduinoのように見せて動作させました。したがって、Arduinoと同様に、USBケーブルは1本で十分です。

2)小さなユーティリティを作成しました。これを実行すると、シリアルラインを介して配線Piコードがロードされ(実際には任意のテキストファイル:-))、コンパイルして実行します。

必要に応じて、.bashrcファイルを変更することにより、起動のたびに実行できるため、起動するたびに新しいファイルを待機します。ユーティリティコードのリンクは提供していませんが、http://www.jating.in/efyarticle/にあります。

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