CH32V203のメモリマップを確認しておきましょう。

 

CH32FV2x_V3x Reference Manualから引用してみましょう。

 

ここでGPIOのリンカ設定を見てみると・・・・

/* CH32V20x_D6 - CH32V203K8-CH32V203C8-CH32V203G8-CH32V203F8 */
/**/
    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 64K
    RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
 

となっておりFLASHを0x0000 0000で配置しています。

これを理解するにはBOOTのところを理解する必要があります。

 

まず、CH32V203では、Bootピンの設定でどこからブートするのか?を変更できます。

BOOT0  BOOT1       

 0            X            →   フラッシュメモリからブート

 1             0            →  SystemMemoryからブート

 1             1            →  SRAMからブート

のようになります。

 

そしてフラッシュメモリからブートする時の説明を和訳してみましょう。

「フラッシュメモリからブートする時には、フラッシュメモリが0x0000 0000にマップされます。また、0x0800 0000でもアクセス可能です。」

 

こうした点はマニュアルを読み込んでいきましょう。