問題タブ [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.

0 投票する
3 に答える
757 参照

embedded-linux - ベアメタル ベンチとソフトウェア

ベアメタル プログラミングに関する情報を探しています。私はさまざまな powerpc プラットフォームで作業しており、現在、一部のテストが Linux カーネルの影響を受けないことを証明しようとしています。これらのテストは非常に基本的なもので、asm volatile にロードおよびストアし、いくつかのベンチマーク (Coremark、Dhrystone など) も同様です。これらのテストは Linux で完全に実行されますが、実際には経験のない環境であるベアメタルでテストする必要があります。すべてのプラットフォームに u-boot がインストールされています。 powerpc-eabi cross-compiled テストを実行するには? たとえば、u-boot によって起動された gdbserver は、シリアル ポートまたはイーサネット経由で通信できますか? U-boot によって呼び出される busybox を持つことは可能ですか?

0 投票する
3 に答える
2259 参照

c - リンカー スクリプト: 特定のファイルを後の位置に置く

次のようなリンカ スクリプトを書きたいと思います。

ここでの私の意図は、次の順序で行うことです。

  • .textfromのあるセクションstartup.o
  • .text.dataおよび.bssのすべての入力ファイルからのそれらのセクションを含みますother.o
  • からの.text.dataおよび.bssセクションother.o

もちろん、私が与えたスクリプトには問題があります:以前に使用さother.oれたワイルドカードに含まれている*ため、出力セクションに入れられませんother

other.os の代わりにすべての入力オブジェクト ファイル バーを手動でリストする以外*に、ここで必要なことを達成する方法はありますか?

0 投票する
1 に答える
7268 参照

embedded - C またはインライン アセンブリで ARM 割り込みベクトル テーブル ブランチをセットアップする方法は?

RTOS または Linux OS を使用しないベアメタル環境で、C またはインライン アセンブリを使用して ARM9 割り込みベクトル テーブルをセットアップする方法の例を教えてください。

具体的には、インライン アセンブリまたは C を使用して、C でコーディングされた IRQ 割り込みハンドラー ISR に分岐を設定するにはどうすればよいですか?

割り込みエントリ テーブル

ヒントや方向性を事前に感謝します。

ARM9 のベアメタル開発の例を見つけるのは非常に困難です。

エド

  • TI TMS320DM6466
  • コード コンポーザー スタジオ v5.5
0 投票する
0 に答える
587 参照

console - 標準ライブラリのprintf()関数で使用するためにUART putcまたはputs関数を登録する方法は?

ビーグルボーン用のベアメタル プログラムを作成しています。したがって、シリアル デバッグ メッセージには UART0 を使用します。というカスタム関数を作成しました

これにより、文字または文字列が uart0 に出力され、ターミナル ウィンドウに表示されます。

Mentor Graphics の Sourcery-Codebench は、私がここで使用しているコンパイラ スイートで、printf() を備えた標準 C ライブラリを提供します。ここで、uart0_putc と uart0_puts を接続して、提供された printf() を使用して端末でフォーマットされたメッセージを取得できるようにします。

これは実現可能ですか?同じことをする方法は?

前もって感謝します。

0 投票する
0 に答える
364 参照

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

  1. SSH 経由で Raspberry Pi に接続します。
  2. /boot/rpi-kernel.imgにコピー/boot/rpi-kernel-fallback.img
  3. 空のファイルを作成/boot/kernel_update
  4. カーネル アップデートをダウンロードし、次の場所に移動します。/boot/rpi-kernel.img
  5. リブート

これは、疑似コードで考えたブートローダーの設計です。

ブート プロセスの最後のステップとして、シェル スクリプトは が/boot/kernel_update存在するかどうかを確認し、ネットワークが機能しており、環境が正常であるかどうかを確認してから、 を削除し/boot/kernel_updateます。

HDMI、USB、イーサネット、シリアルなどをサポートせずに、ブートローダーをできるだけクリーンでシンプルにしたいと考えています。問題は、これを開始する方法がわからないことです。

主な課題は、SD カードの FAT32 ファイルシステムの読み取りと書き込み、および Linux カーネルの起動です。Raspberry Pi のベアメタルからすべてを実行する必要があります。

コード例、リソース、提案など。これを行うと非常に役立ちます。

0 投票する
3 に答える
5032 参照

qt - Qtベアメタルとは?

QtCreator には「Bare Metal」というプラグインがあります。ベア メタルとは、オペレーティング システムのないコンピュータを意味します。Qt Bare Metal の開発についてはあまり見たことがありません。Qt をベアメタル システム用に開発する方法はありますか? Qt は OS のないシステムで動作しますか? はいの場合、組み込みシステム開発におけるこのアプローチの利点は何ですか?