2016-12-22 4 views
2

ダム質問...私はNORフラッシュでフラッシュされるファームウェアイメージを作成するために様々な部分(カーネル、FSなど)をステッチしています。今は残りのスペースにゼロを埋めています。他の詰め物を使用することのコンベンション/メリットはありますか?フラッシュ可能な画像をどのようにパッドするのですか?

+0

私は常にゼロを使用しました。チェックサム/ CRCに何も間違っていないことを確認する必要がある場合は、一貫性を保つようにしてください。 –

+0

私が使用したデバイスのほとんどは0xFFですが、10年から20年後についにゼロデバイスで消去されました。それは本当に物事の壮大な計画、それがあなたがおそらく扱っていない場所で重要ではありません。チェックサムを持っている場合は既に述べたように、ほとんどの場合、埋め込みが十分に深いことを確認します。 –

+0

例えば、すべてが無効なARM命令であるなど、他の命令セットを研究していないことがあります。したがって、もしあなたのコードがフラッシュのこの領域に入るならば(もしあなたの環境でも可能ならば)、そのARMなら未定義の命令に行きます。すべてのゼロは有効命令を(アームの命令セットに依存して)フラッシュの終わりまで、またはパディングまたはフラッシュの終わりまで、またはラップアラウンドするまで実行します。何も問題はないかもしれませんが、最初のフェッチで未定義の場合はデバッグに役立ちます。他のアーキテクチャ/ ISAとのYMMV。 –

答えて

3

いくつかの理由から、私は(消去された状態のデバイスで)0xFFを優先します。

  • 未使用領域を変更する必要がないため、フラッシュ書き込みは高速になります。
  • 一部のデバイスでは、再フラッシュサイクルの回数に制限があります。私は私がする必要がない場合は書くことを好む。
  • 多くのデバイスでは、エリアがすでに消去されている場合は、新しいデータを書き込むために消去サイクルを実行する必要はありません。これは便利です。特に、あなたが書いているのはコードではなくデータです。すべてのコードを書き直すことなくコードに追加したいとは思わないでしょうが、フラッシュに保存されているパラメータデータに追加したい場合があります。
関連する問題