Renesas HEW tips
暗黙の宣言
__H8__
ROM化支援(プログラムをRAM上で実行する方法)
xyz.cで、RAM上で実行したい関数をセクション指定
#pragma section XYZ
void run_at_ram(void)//セクションPXYZに配置される。
{}
#pragma section//名前指定しないと、元に戻る。
↓
dbsct.cのDTBLに、PXYZ,RXYZを追加
static const struct {
_UBYTE *rom_s; /* Start address of the initialized data section in ROM */
_UBYTE *rom_e; /* End address of the initialized data section in ROM */
_UBYTE *ram_s; /* Start address of the initialized data section in RAM */
}DTBL[]= {
{__sectop("D") , __secend("D") , __sectop("R")},
{__sectop("PXYZ"), __secend("PXYZ"), __sectop("RXYZ")},
// {__sectop("$ABS8D"), __secend("$ABS8D"), __sectop("$ABS8R")},
// {__sectop("$ABS16D") , __secend("$ABS16D") , __sectop("$ABS16R") }
};
↓
最適化リンカ→カテゴリ→セクションでPXYZをROMの領域に配置。
↓
最適化リンカ→カテゴリ→セクションでRXYZをRAMの領域に作成。
↓
最適化リンカ→カテゴリ→出力で、オプション項目→ROMからRAMへマップするセクション(ROMオプション)
ワーニングL1500
sni出力指定すると、L1500が出る。
マニュアルにも書いてあるが、goptimizeオプション指定をすれば消える。
ダウンロード後リセット
デバッグ→デバッグの設定→オプション→ダウンロード後にCPUリセット
2024-08-14 11:00:23 32400