問題タブ [stm32ldiscovery]

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 に答える
330 参照

memory - STM32L475 ボードの FLASH メモリ内の 2 つの領域をスワップするにはどうすればよいですか?

私はARM M4 CortexデバイスであるSTM32L475 IoTキットに取り組んでいます。フラッシュ メモリの 2 つの領域をスワップしたいと考えています。私が使用しているボードには、それぞれ 512KB のサイズのフラッシュ メモリ用のバンクが 2 つあるため、1 MB のフラッシュ メモリがあります。フラッシュ メモリの内容を交換するには、最初にロックを解除し、次に消去してから書き込み、操作が終了したらフラッシュ メモリをロックする必要があることを読みました。

ページとして定義されている一度に 2KB のメモリしかコピーできないという別の制限があります。そのため、メモリのページごとのコピーのみが可能です。私のアプリケーションでは、いくつかの条件が満たされた場合、FLASH メモリに保存されているアプリケーション 1 と 2 を交換する必要があります。両方のアプリケーションにそれぞれ 384 KB のメモリが割り当てられていますが、実際にはどちらもそれよりも少ないメモリを使用します (たとえば、264 KB など)。

上記の手順を実行しようとしましたが、うまくいきません。これが私が試したコードです:-

ここに画像の説明を入力

ここで、スワップ バッファーは、スワップ中に各ページ (2KB) をバッファーとして一時的に格納するために使用されます。また、変数 limit にはアプリケーション 1 と 2 の最大サイズが格納されるため、前述のようにメモリ サイズが等しくない場合にスワップ中にエラーが発生することはありません。したがって、基本的にはページごとにスワップしていますが、一度に 2 KB しかありません。

コードの何が問題なのか誰でも理解できますか?

ありがとう、
シェトゥ