問題タブ [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 投票する
0 に答える
981 参照

usb - U-boot: load kernel via USB

I'm writing a small OS for a ARM board, and I'm a bit tired of the usual "remove SD card, copy kernel, insert SD card, switch on" pattern, so I started to look towards u-boot, and now I'm able to load the kernel via serial port using u-boot and kermit: I don't have to remove/insert the SD card anymore.

However this is painfully slow (~5min for 2.5 Mo), and I wonder if I could do the same using the usb port of the board (I know u-boot support tftpt booting method, but I didn't managed to setup the network correctly so far).

Best,

V.

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

bare-metal - エラー: マルチブート ヘッダーが見つかりません

この日、気になるものを見つけました。シンプルなベア OS をビルドする

マルチブート対応にする方法を読みました。NASM と GCC を使用しています。マルチブート ヘッダーを持つローダーを作成し、そのためにシステムのメイン ポイントを呼び出す必要があります。loader.asm と loader.ld の 2 つのファイルがあります。

loader.asm loader.ld main.c

私が使用しているビルドのために

そして最後のリンク

grub-mkrescue でシンプルな iso を構築し、qemu で実行しましたが、常に

ここに画像の説明を入力

問題はファイルにあると思いますloader.ldが、どこにあるのかわかりません

0 投票する
5 に答える
1706 参照

c - 割り込みハンドラーをイベントリスナーとして使用する際の何が問題なのですか

私のシステムは、OS なしで実行できるほどシンプルです。デスクトップ プログラムでイベント リスナーを使用する場合と同じように、割り込みハンドラーを使用するだけです。私がオンラインで読んだものすべてで、人々は割り込みハンドラーに費やす時間をできるだけ少なくし、制御をタスクに戻そうとしています。しかし、私は OS も実際のタスク システムも持っていません。また、OS のないターゲットの設計情報を実際に見つけることはできません。

私は基本的に、USB からデータのチャンクを読み取り、データをメモリに書き込む 1 つの割り込みハンドラーと、データを読み取り、GPIO でデータを送信し、ハードウェア タイマーで再度スケジュールする 1 つの割り込みハンドラーを持っています。

私のように割り込みを使用し、作業階層を管理するために NVIC (私は cortex-M3 を使用) を使用することの何が問題になっていますか?

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

assembly - Raspberry Pi での memset の独自の実装

私は Raspberry Pi B+ 用に独自のカーネルを作成して遊んでおり、独自の単純な実装を作成しようとしていましたmemset。私が考えることができる最良の解決策(アセンブリ言語の専門家であるとは限りません)が含まれていました

stm r0!, {r1,r1,r1,r1,r1,r1,r1,r1}

wherer0には宛先配列アドレスが含まれてr1おり、配列に入力している番号が含まれています。動作しているように見えますが、コンパイラーはレジスターの重複に関する警告を出し続けます。これを達成するためのよりクリーン/安全/より良い方法はありますか?

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

ld - セクションの開始アドレスを ROM の専用の場所に書き込む方法

ベア メタル プロジェクトでは、ROM セクションの開始アドレスを専用のアドレスに書き込む必要があります。私がこれまでに見つけたのは、リンカー スクリプトの次の定義のようなものです。

0x10001014 に配置される値を定義するには、これを C++ ファイルのどこかに追加できます。

定数整数を宣言し、リンカーを使用してコードセクションの開始アドレスを直接書き込む必要を回避する方法を知っている人はいます0x10001014か?

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

beagleboneblack - LWIP と StarterWare を使用した Beaglebone パケット スニファー

私は、BeagleBone Black をローカル ネットワークのパケット スニファー (およびロガー) として使用することを計画しているプロジェクトに取り組んでいます。Starterware の例である echo_server と http_server を使用しましたが、これらは問題なく動作します。しかし、TCP/IP の内部操作に精通していないため、既存の Starterware コード ベースを変更してプロミスキャス モードのパケット スニッフィングを実装する方法がわかりません。この LWIP のポートが意図した用途で機能する場合と機能しない場合がある理由について、何か提案や理由がある人はいますか? ありがとう、

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

arm - ルート デバイスはどこにありますか?

私はRaspberry Pi用にゼロから小さなマイクロカーネルを書いています(コードは次のとおりです:https://github.com/yrakcaz/RasPiK/

すべて正常に動作しているように見えますが、ちょっとした問題があります。ファイル システムが必要ですが、ルート デバイス アドレスを取得する方法がわかりません。x86 アーキテクチャでは、メイン関数の引数に渡されたタグを使用して ROM アドレスを取得できることはわかっていますが、すでに atags を解析しており、興味深いものは何もありません...

このアドレスを取得するにはどうすればよいですか?