boot loader enableにする方法

STMicroが提供する、ST Visual Programmer (STVP) (.exe) というソフトを利用します.このソフトは、ST Visual Development という統合開発環境をインストールすると、同時にインストールされます.

以下、その使い方説明です.

●STM8S discoveryとホストPCを、USBケーブルでつなぎます

●STVPを起動します.   
stvp.exe.jpg
OPTION BYTEタグをクリックしますと、次の画面がでます.
SWIM-programmer-boot-loader-option-byte1.jpg


●つぎにメニューから、Read→Current Tab とします.
OPTION BYTEタブを下にスクロールさせると、BootLoader Disabledになっています.これだとUART, SPI, I2C経由でのFLASH焼きはできません.
SWIM-programmer-boot-loader-option-byte2.jpg


●OPTION BYTEタブの上部に、00 00 00 08 00 00 00 00 55 というのが見えます.この末尾の55がキモです.55に書き換えてください.すると、BootLoader Enabledに表示が変わります.
あとは、メニューから、Programm → Current Tab として、ST8M discoveryに書き込みます.
STVPを終了させてください.
SWIM-programmer-boot-loader-option-byte3.jpg


以上で、UART,SPI,I2C経由でFLASH焼きをする準備はおしまいなのですが、STMicroのdocumentを読んだ知識と、上の手順とに食い違いがあるので、それの説明をしておこうと思います.

食い違いとは、2つあります.

Q1:  STMicroのdocumentによると、オプションバイトは4800H〜487FH番地まで割り当てられているわけだけど、STVPで書き換えられるのは、たったの、00 00 00 08 00 00 00 00 55 という9バイトしかないのはなぜ?

Q2:  STMicroのdocumentによると、BootLoader Enableにするには、{487eH,487f}=55AAH にせよと言っているので、2バイトを書き換えなくちゃいけないはずだが、STVPで書き換えたのは、55だけなのはなぜ?

その答えは、実質的なオプションバイトのマッピングはとてもまばらで、正味9バイト分しかないからなのです.
でも、データシートのオプションバイトの項 (pdf) を見ると、いくらなんでも9バイトしかないようには見えません.そのギャップの理由は、STVPの動作は、先ほど55を上書きした487EH番地に上書きすると、487FH番地には55をbit反転させたAAを自動的に書き込むようです.なんでこんな仕様なのかは謎ですが、そんなわけで正味9バイト分しか情報がないのです.



Release  2010.8
inserted by FC2 system