Previous: 5.4.5. 書き込み方法に応じた修正 |
Up: 5.4.5. 書き込み方法に応じた修正 |
Next: 5.4.5.2. リンカスクリプトの指定 |
JTAGインターフェースやUARTで書き込む場合、ユーザプログラムのベクタテーブルの開始番地がROMの先頭番地(0x0800 0000番地)になります。DFUで書き込む場合、ユーザプログラムのベクタテーブルの開始番地がDFUファームウェアの後ろになります。本書のマイコンボードのDFUファームウェアの場合は0x0800 3000番地です。
makefile.inで書き込み方法を設定した場合には、対応する番地が自動的に指定されます。コンパイルオプションである-Dを使用しています。
本書の環境で実際に指定をしているのは、platform_config.hの下記の行です。コメントアウトするかどうかで、VECTOR_OFFSETマクロに、該当する開始番地オフセットが定義されます。各ユーザプログラムは、プログラム実行開始時に、NVIC_SetVectorTable関数を実行してベクタベーブルのアドレスを設定しています。
//#define USE_DFU |
Previous: 5.4.5. 書き込み方法に応じた修正 |
Up: 5.4.5. 書き込み方法に応じた修正 |
Next: 5.4.5.2. リンカスクリプトの指定 |