序文
ユーザプログラムは比較的簡単ですが、重要な役割を果たしています
ユーザプログラムとブートローダープログラムを協力しています
プロジェクトにファイルをコピーします。
stmflash.c stmflash.h APPのユーザプログラムとブートローダの一つには同じです。
IAPは少しだけ違いです
ユーザー・アプリケーションは、2つのことを行う必要があります
A.更新された情報(バージョン番号、更新状況)を取得します
第二には、後にユーザプログラムが問題APPなしで実行されている書き込みだと思います
今、APPのユーザプログラムの処理を完了します。
そう、なぜ今私が説明します
以前のブートローダの内部には多くの州の決意の手順がありますが、
ユーザーがプログラム状態を得ることができAPP
あなたは、ユーザプログラム内部の状態で最後の更新IAPStructValue.UpdateStatusValue値を通じて知って来ることができます
より直感的なため、我々は直接コールのprintf(「%s」は、IAPStructValue.UpdateStatusStr)することができます。文字列は、印刷に対応
状態は、プログラムが問題でない場合、これらの状態はあなたが直感的に更新することを知っているので、ホストコンピュータに送信されると考えることができます
それから
ブートローダがそれの後に良いプログラムをダウンロードし、書き込み状態:0x01の再起動
当然の再起動後、ブートローダを実行します
ブートローダーは、その後の0xFF 0x01のを書いた後に決定されます
そして、新たなユーザプログラムを実行します
これはユーザプログラムのみ
新しいユーザプログラムを実行しますが、我々は、上記のプロセスを行うには、その関数を呼び出していない場合
その後、マイクロコントローラは、再起動後に実行されるブートローダ
ブートローダ裁判官または0xFFでは、新しいプログラムが正しく実行されないということになります
そして、それは、実行中のプログラムに切り替わります
私はあなたがユーザプログラムが実行されている感じさせます何の問題は、その後の呼び出しではありませんので、
IAPUpdateDispose()関数
ソースコードなので、私は皆のためのプロジェクトを行うために参照または直接アプリケーションを提供します
どのように私は、私は誰にでもを確実にしたい!と言うべきです!
最初のユーザープログラムの生成
ブートローダに印刷しないように注意してください
所以第一份用户程序的配置
生成第二份用户程序
如果想升级怎么办?
我的原则还是交由BootLoader处理
APP用户程序里面只需要 IAPSetUpdateFlage();