問題タブ [bootloader]
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.
linux - GRUB を使用したカスタム コード?
GRUB のロード時にカスタム コードを実行できますか? 言い換えれば、GRUB はオペレーティング システムをロードする前にカスタム コードを実行する機能を提供しますか?
c++ - ブートローダーでのスレッド化
x86アーキテクチャブートローダーにスレッドを実装する方法に関するリソース/チュートリアルはどこにありますか...プログレスバーを表示しながらバックグラウンドでリソースをロードしたいとします。
c - GCC、ARMboot - ライブラリや OS を使用しないスタンドアロン アプリケーションの作成
ARMboot (Uboot および PPCboot と非常によく似ています)に基づくブートローダーを含む組み込みハードウェア システムがあります。
このブートローダは通常、フラッシュから uClinux イメージをロードする役割を果たします。ただし、現在、このブートローダーを使用して、リンクされたライブラリを必要としないスタンドアロンの helloworld アプリケーションを実行しようとしています。実際にwhile(1){}
は、メイン関数のコードのみが含まれています。
私の問題は、スタンドアロンの適切にフォーマットされたバイナリをビルドするために使用すべき GCC 設定が見つからないことです。
私は次のビルドコマンドを使用します:
これにより、警告メッセージが生成されます:
警告: エントリ シンボル _start が見つかりません。デフォルトは 00000004
その後、ブートローダー内で、生成されたアプリケーションをアップロードし、次のアドレスで開始します。
しかし、それは機能しません:(システムが再起動します。
通常、ハングするはずです( のためwhile(1)
)。
bootloader - ブートローダーから文字を出力する
コードを使用してブートローダーから文字を印刷しようとしています
Hello World Bootloaderの記述の指示に従ってください。しかし、何も印刷せずにハングします。これをどのようにデバッグできますか? 次のコードを使用して、ハングするブートローダーを正常に作成しました
VMware 3.0.0 build-203739 でコードをテストしています。
c - C/アセンブラー - スタックのないシングルユーザー、シングルタスクのオペレーティング システムでのリターン コード
SDRAM を初期化して準備する単純なブートローダーがあります。次に、フラッシュからアプリケーションをロードし、RAM のあるアドレスで開始します。アプリケーションの実行が終了すると、システムは再起動します。システム スタックはありません。
ここで、アプリケーションが実行を終了した後に、このブートローダーが制御を取り戻すことを望みます。ブートローダー (OS と呼びましょう) も、アプリケーションのリターン コードを読み取る必要があります。
アプリケーションはどのようにして呼び出し元の OS に値を返し、呼び出し元の OS はどのようにして制御を取り戻すことができるでしょうか? 割り込みを使用して実行できると思います-OSには、割り込みに結合された特別な常駐機能があり、すべてのアプリケーションは、独自の実行の最後にこの割り込みを呼び出すだけです。しかし、システム スタックがない場合、OS はどのようにしてリターン コードを読み取ることができるでしょうか。
bios - 起動シーケンスに対する 0000:7c00 のメモリの重要性は何ですか?
bios が 0000:7c00 のパーティションのブート レコードを読み取るのはなぜですか? そのアドレスの特別な点は何ですか? アドレスを参照する際に ':' は何をしているのですか?
operating-system - 第1段階から第2段階のブートローダーをロードする方法は?
BIOSへの割り込みを使用して「Helloworld」を表示する単純な第1ステージのブートローダーを作成しました。次に、第2ステージを作成するための次の明らかなステップとして、そのためのコードはどこに存在する必要があり、第1ステージからどのようにロードするのでしょうか。
これが第一段階のプログラムです
linux-kernel - initramfs や initrd の代わりに単純なファイルだけにしないのはなぜですか?
Linux カーネルは、一種の RAM ディスクを使用して、起動の初期段階でモジュールにアクセスします。好奇心から理解したいのですが、質問があります。initramfs/initrd を含むファイルは、この段階でカーネルからアクセスできる必要があります。これは、カーネルが適切なファイルシステムをサポートしている必要があることを意味します。では、なぜ initramfs の内容を単純なファイルとまったく同じファイルシステムに置くことができなかったのでしょうか?
assembly - アセンブリでブートローダーを開発する
アセンブリで OS の一部を既に作成しましたが、GRUB を使用する代わりに、OS 用の独自のブートローダーも構築したいと考えています。アセンブリでテスト OS を開発していたとき、次のように起動したことを覚えています。
これはもう知っています。これを使用して、フロッピーの 2 番目のセクターに書き込まれる *.bin ファイルとなる「実際の」OS を実行します。それから私は何かを知りたいです
- アセンブリでブートローダーを実行して、フロッピーの 2 番目のセクターで開始されるものを実行するにはどうすればよいですか?
- フロッピーの 2 番目のセクターに配置されるアセンブリ ソースに何かを追加する必要がありますか?
command-line - uBoot を squashfs で動作させる方法 / uBoot の FDT とは?
( openwrtから) Kamikaze ツールチェーンをセットアップし、 AMCC PPC405ex kilaueaリファレンス ボード用に Linux 2.6.30.x カーネルをコンパイルしました。ただし、何らかの理由で、squashfs イメージからカーネルを実行できないため、uBoot で何か間違ったことをしています。イメージは tftp 経由で正常に読み込まれ、解凍されますが、コンソール出力は開始されません。
Linux カーネルのコマンド ラインは変更していませんが、問題ないように見えます ( console=ttyS0,115200 root=/dev/mtdblock
)。uBootのfdtとは何ですか?
これが本当にstackoverflowに属しているかどうかは完全にはわかりませんが、これも実際にはsuperuser.comの質問ではありません(また、これは開発環境に関係しているため、正確にはプログラミングの質問ではありませんが、間違いなくプログラミングに関連しています)