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でもアクセス可能です。」
こうした点はマニュアルを読み込んでいきましょう。