私はarm-none-eabi-gcc 5.3を使用してSTM32L4のバイナリを生成しています。私はプログラムをフラッシュするためにブートローダーを使用しています。問題は、ファイル全体が点滅しているかどうかわかりません。私は利用可能なCRCがありません。フラッシュは0x80000000
と0x80040000
(ブートローダとメインプログラムの2つのバンク)から開始されます。現在私は、0x80040004が0x80040000
と0x80080000
の間にあると仮定して、プログラムはフラッシュされます。しかし、プログラムが有効かどうかをどうやって確認できますか?フラッシュ上に書き込まれるべきバイナリのサイズがどこにあるのか分からないので、最後の整数をチェックすることができます。 BINからプログラム全体がARMでフラッシュされているかどうかを確認する方法は?
ここで最初の数バイト(申し訳ありませんが、ファイル全体を投稿することはできません): 最終バイトにプログラムされていない(プログラムが72704バイトを持っている)
0x80051C00
です。
私はわかりませんファイルコンテンツはすべて役に立ちますが、質問コンテンツへのオフサイトリンクを投稿していないことを確認してください。 – Clifford
最後のいくつかをチェックすることで、間にあるものが正しいことが確認されませんでした。バイナリに何かを追加して、ベリファイやランタイムでローダの最後でこれを行うか、最後にfillを入れてから、チェックサム/ crcをそこに入れる必要があります。ランタイムスタートアップコードは全体のスペースをチェックします。または先のオプションは、それがmcuをプログラムし、次に読み戻しを行い、....またはその両方を行うときに、ホストからの何かを選択します。 –
このアプリケーションノート[AN277](http://www.keil.com/appnotes/files/an277.pdf)では、バイナリイメージにCRCを追加する方法について説明します。 (この例ではKeilツールを使用していますが、他のツールチェーンにも適用できます) – kkrambo