LPC810で内蔵FLASHにアクセスできることに、いまさらですが気付いたので試してみました。
ネットで探して、下記のサイトを参考にしています。
NXPアプリケーションノート(Using LPC800 In-Application Programming)
みっかぼログ
みっかぼログさんのサンプルコードでコンパイルすると、すんなり動きました。
ただ、IAPを直接呼出すプログラムになっていたので、
NXPのサンプルプログラムで準備されている関数を呼び出して焼き直し。
・・・なぜか動かない。
NXPのプログラムをよく見てみると、こんなコードになっていました。
#if defined IRQ_HANDLER_IN_SRAM
iap_call(&cmd_table, &result_table);
#endif
#if defined IRQ_DISABLE
__disable_irq();
iap_call(&cmd_table, &result_table);
__enable_irq();
#endif
"IRQ_HANDLER_IN_SRAM" もしくは "IRQ_DISABLE" がdefineされていないと、
iap_callがスキップされるという記述。
そんな説明はどこにもなさそうだったのですが・・・、謎のトラップ。
もともと4KBしかないFLASH領域なので、たいしたものは置けないでしょうけど、
ちょっとした設定値の保存ぐらいには使えそうです。