Home New Help Edit

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オプション)
RomRam
DR
PXYZRXYZ

ワーニングL1500

sni出力指定すると、L1500が出る。
マニュアルにも書いてあるが、goptimizeオプション指定をすれば消える。

ダウンロード後リセット

デバッグ→デバッグの設定→オプション→ダウンロード後にCPUリセット


Home New Help Edit
2024-08-14 11:00:23 32400