問題タブ [bare-metal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
embedded-linux - ベアメタル ベンチとソフトウェア
ベアメタル プログラミングに関する情報を探しています。私はさまざまな powerpc プラットフォームで作業しており、現在、一部のテストが Linux カーネルの影響を受けないことを証明しようとしています。これらのテストは非常に基本的なもので、asm volatile にロードおよびストアし、いくつかのベンチマーク (Coremark、Dhrystone など) も同様です。これらのテストは Linux で完全に実行されますが、実際には経験のない環境であるベアメタルでテストする必要があります。すべてのプラットフォームに u-boot がインストールされています。 powerpc-eabi cross-compiled テストを実行するには? たとえば、u-boot によって起動された gdbserver は、シリアル ポートまたはイーサネット経由で通信できますか? U-boot によって呼び出される busybox を持つことは可能ですか?
c - リンカー スクリプト: 特定のファイルを後の位置に置く
次のようなリンカ スクリプトを書きたいと思います。
ここでの私の意図は、次の順序で行うことです。
.text
fromのあるセクションstartup.o
.text
、.data
および他.bss
のすべての入力ファイルからのそれらのセクションを含みますother.o
- からの
.text
、.data
および.bss
セクションother.o
もちろん、私が与えたスクリプトには問題があります:以前に使用さother.o
れたワイルドカードに含まれている*
ため、出力セクションに入れられませんother
。
other.o
s の代わりにすべての入力オブジェクト ファイル バーを手動でリストする以外*
に、ここで必要なことを達成する方法はありますか?
console - 標準ライブラリのprintf()関数で使用するためにUART putcまたはputs関数を登録する方法は?
ビーグルボーン用のベアメタル プログラムを作成しています。したがって、シリアル デバッグ メッセージには UART0 を使用します。というカスタム関数を作成しました
と
これにより、文字または文字列が uart0 に出力され、ターミナル ウィンドウに表示されます。
Mentor Graphics の Sourcery-Codebench は、私がここで使用しているコンパイラ スイートで、printf() を備えた標準 C ライブラリを提供します。ここで、uart0_putc と uart0_puts を接続して、提供された printf() を使用して端末でフォーマットされたメッセージを取得できるようにします。
これは実現可能ですか?同じことをする方法は?
前もって感謝します。
c - Raspberry Pi のエラー認識ブートローダー
Raspberry Pi 用のシンプルなブートローダーを書きたいと思っています。このブートローダーの主な目的は、リモートの場所にある Raspberry Pi を有効にして、カーネル パニックの結果としてデバイスを起動できなくするカーネル アップデートから回復することです。カーネルを更新する手順は次のようになります。
デフォルトの Linux カーネルは/boot/rpi-kernel.img
で、文字列 'rpi-kernel.img' が に書き込まれ/boot/default-kernel.txt
ます。の「cmdline=」にカーネル パラメータ「panic=10」が追加されました/boot/config.txt
。
- SSH 経由で Raspberry Pi に接続します。
/boot/rpi-kernel.img
にコピー/boot/rpi-kernel-fallback.img
- 空のファイルを作成
/boot/kernel_update
- カーネル アップデートをダウンロードし、次の場所に移動します。
/boot/rpi-kernel.img
- リブート
これは、疑似コードで考えたブートローダーの設計です。
ブート プロセスの最後のステップとして、シェル スクリプトは が/boot/kernel_update
存在するかどうかを確認し、ネットワークが機能しており、環境が正常であるかどうかを確認してから、 を削除し/boot/kernel_update
ます。
HDMI、USB、イーサネット、シリアルなどをサポートせずに、ブートローダーをできるだけクリーンでシンプルにしたいと考えています。問題は、これを開始する方法がわからないことです。
主な課題は、SD カードの FAT32 ファイルシステムの読み取りと書き込み、および Linux カーネルの起動です。Raspberry Pi のベアメタルからすべてを実行する必要があります。
コード例、リソース、提案など。これを行うと非常に役立ちます。
qt - Qtベアメタルとは?
QtCreator には「Bare Metal」というプラグインがあります。ベア メタルとは、オペレーティング システムのないコンピュータを意味します。Qt Bare Metal の開発についてはあまり見たことがありません。Qt をベアメタル システム用に開発する方法はありますか? Qt は OS のないシステムで動作しますか? はいの場合、組み込みシステム開発におけるこのアプローチの利点は何ですか?