問題タブ [flash-memory]

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 投票する
1 に答える
376 参照

filesystems - カーネルに jffs2 を使用し、NAND に initramFS を使用する利点

私たちのシステムでは、jffs2 を使用して、カーネルと initramfs を NAND メモリに書き込みます。より強力な ECC をすぐに使用したいと考えています。しかし、新しい ECC フォーマットは OOB 領域全体を必要とし、JFFS2 では動作しません。

なぜJFFS2を使用する必要があるのか​​ 、まだわかりません。AFAIK カーネルと initramfs は起動時に RAM にコピーされ、RAM から実行されます。それらは頻繁に変更されるわけではありません (更新のため年に数回程度)。

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

linux - 誰がフラッシュを初期化しますか?

ARM プロセッサでの Linux ブート プロセスについて学習していて、U-Boot がフラッシュから起動し、U-Boot コードが RAM を初期化して、スタック セットアップなどの実行環境をセットアップし、それ自体を再配置することがわかりました。

u-boot コードを実行できるようにフラッシュを初期化するのは誰ですか?

また、NOR フラッシュまたは NAND フラッシュから起動することに違いはありますか?

NOR フラッシュからの起動は、NAND フラッシュからの起動よりも高速ですか?

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

c - 組み込みフラッシュ パーティション間の IP スタックとのインターフェイス

ブート パーティションとアプリケーション パーティションの間で共有する必要がある TCP/IP スタックがあります。スタックはブート コードで初期化され、ブートとアプリケーションの両方がスタックを使用します。両方のパーティションは同じフラッシュ メモリ モジュールにありますが、異なるフラッシュ セクションにあるため、互いに消去されません。スタックを共有するために、フラッシュ内の指定されたメモリ位置に配置される定数関数構造を作成しました。私が使用しているコンパイラは、Freescale の Embedded PowerPC ツールです。私のブートコードでは、次のようになります。

イーサネット.h

イーサネット.c

次に、リンカがこのオブジェクト ファイルを 0x1ffc0 (フラッシュ) に配置すると、マップ ファイルですべてが適切に表示されます。この場所を参照するリンカー シンボルは _ENET_STRUCT_ です。私のアプリケーションでは、これを行います:

app.c

enet はブート コードと同じように .rodata に配置されると思いますが、実際には .sdata に配置されます。sdata セクションを ROM から RAM にコピーしようとすると、enet は 0x1ffc0 を指しています。デバッガーは正しい場所も表示します。しかし、アセンブリは、フラッシュや RAM 以外の場所に分岐しようとしていることを示しています。ここで何が起こっているかについての私の最善の推測は、そのアドレスを取得するためにリンカーに依存しているため、コンパイラは enet がどこを指しているのかわからないということです。

これは実際に機能しますが、アドレスに明示的な値を指定するのは好きではありません。

では、パーティション間のインターフェイスを作成する正しい方法は何ですか?

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

boot - TMS320 デジタル メディア プロセッサのカスタム ブートローダーからアプリにジャンプ

TMS320DM6437 のブートローダーを開発中です。アイデアは、一方が他方を更新する 2 つの独立したファームウェアを作成することです。ファームウェア 1 では、ファームウェア 2 ファイルをダウンロードし、指定されたアドレスの NOR フラッシュに書き込みます。両方のファームウェアは、ais 形式で NOR フラッシュに保存されます。これで、フラッシュに 2 つのアプリケーションができました。1 つはカスタム ブート ローダーで、2 つ目はメイン プロジェクトです。最初のプログラムから、指定したアドレスにある 2 番目のプログラムにジャンプする方法を知りたいです。また、カスタム ブートローダの作成に役立つ可能性のあるドキュメントに関する情報も期待しています

推奨事項はありますか?

0 投票する
2 に答える
1051 参照

c - C ファイルのコード部分のサイズの計算

これを参考にして:
CコードによるFLASH使用率の計算

実際の組み立て説明書の計算を確認することにしました。
そのため、私のスクリプトはアセンブリ命令をカウントし、機能有効化コードのアセンブリ リスト ファイルにあります。
例えば

これにより、コードのサイズを把握できる数 x が得られます。

結果をクロスチェックするためにnm、機能コードのオブジェクトファイルに決めましたが、nm は個々のステートメントではなく関数全体のサイズを示します。
そのため、その機能のコード部分を別のファイルにコピーし、その機能を作成し、必要なヘッダーを含め、このファイルをコンパイルするために変数を宣言しました (ローカルはローカルのまま、グローバルはグローバルのままにすることに注意してください)。したがって、新しいファイルは次のようになります。

現在、関数checkSizeには機能有効化コードのみが含まれているため、コンパイル後にnmobj ファイルを使用すると、アセンブリ カウントとほぼ同じ結果が得られるはずです (関数のセットアップで使用される余分なサイズは別として)。しかし、そうではなく、私は大きな違いを受け取りました。(アセンブリ命令の場合は1335バイト、nmobjファイルの場合は1458バイト)。
さらに明確にするために、関数を使用してファイルのアセンブリを作成checkSizeし、元のアセンブリ ファイルと比較しました。関数の追加により余分なものがあることは理解していcheckSizeますが、機能の命令により、コードが同じになることが期待されます(同じコンパイラーの最適化と他のオプションを使用)。
しかし、それらは同じではありませんでした。

ここで問題となるのは、大きな関数内の機能コードのアセンブリ手順と、機能コードだけで他のファイルに移動するときに、なぜこのような違いがあるのか​​ということです。
どちらの場合も、余分なサイズを予測するものはありますか?

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

mysql - MySQL - フラッシュ メモリ上のデータベースを検索する方法

フラッシュ メモリを使用する MySQL を初めて使用し
ます。MySQL データベースの場所を変更して、ローカル マシンではなくフラッシュ メモリに配置したいのですが、
どうすればいいですか?? 助けてください