うっ 平田@マイクロフトです
> 寺脇です。平田さんの助言を元に、最も単純な形式を探ってみました。
> とりあえず、以下のような記述に落ち着きました。
送るの忘れてた(^_^; ここ数日トラブル対応で飛び回ってるので・・・(いいわけ
モード)
お菓子あきらめます(^_^;
> .vectors : {
> SHORT(ABSOLUTE(_start))
> SHORT(ABSOLUTE(_VectorFatal))
> .
> .
>
> > LONG(DEFINED(_int_nmi)?ABSOLUTE(_int_nmi):ABSOLUTE(_VectorFatal))
リンカの指定で演算式が使えるのは結構便利で多用しています。前回も書きました
が、RAMの開発環境と実機のFLASHの切り替えで、
_debugram = 0x200000 + 0x5a000000 /* offset + JMP */
LONG(ABSOLUTE(_start) + _debugram) /* 00 */
...
RAM開発環境のときはベクターをRAMのトップアドレスにマップしています。このとき
ROM上の自作モニターで実際のベクターは0x20000威光のベクターを単純に指しておけ
ば数マシンサイクルの遅れだけで割り込みを含めた試験ができます(0x5a000000でor
するのがポイント)
ただ#ifdefのような機能がない(見つけられないだけかな)ところが不便です。それが
あればいろいろなことができるのに。今は複数のファイルに記述してmakefileで選択
するようにしています。
==================================
平田祥司 (shouji@xxxxxxxxxxxxx)
株式会社マイクロフト
神奈川県横浜市青葉区あかね台2-11-29
==================================