スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--) | スポンサー広告 | トラックバック(-) | コメント(-)

__EEPROM_DATA() を入れると書き込めるプログラムサイズが減る?? その2

昨日のエントリ(コレ)の続きです。

結論を先に言うと,よく分からなくなってしまいました。
やり方によっては上手くプログラムエリア,EEPROMとも書き込めますが,
__EEPROM_DATA()を挟む位置によってはエラーで書けなくなります。


マニュアルには__EEPROM_DATA()は関数定義の外に書け。と有りますが,
それ以上どこにしなければならないという指摘は無いと思うのだけど。
↓おそらく,ここを読み間違えているのだと思います。
MPLAB XC8 C Compiler User’s Guideの
5.5.5 Variables in EEPROM 抜粋
The macro may be called multiple times to define the required amount of EEPROM data. It is recommended that the macro be placed outside any function definition.
This macro cannot used to write to EEPROM locations during runtime; it is used for pre-loading EEPROM contents at program time only.

↓もう少しだけ詳しく調査結果を。
read more...
スポンサーサイト

2012/08/21(火) | EEPROM | トラックバック(0) | コメント(0)

__EEPROM_DATA() を入れると書き込めるプログラムサイズが減る??

/*この書き込みは検証中のモノです。
結論は→こちらをご参照ください*/



XC8 Freeモード+ 12F1822で,また問題に直面してます。
EEPROM利用で書き込めるプログラムのサイズが減ってしまうのです。
問題は初期値,マクロ,関数利用など複数。

一番最初にハマっているのは __EEPROM_DATA() です。
どうやら,書き込めるプログラムのサイズが制約受けてしまいます。
__EEPROM_DATA() はEEPROMの初期値を埋め込む為の
「ROM焼き込み時に使われるマクロ」
であって,「実動作するプログラムのサイズ」に影響しないハズなのに。


注)EEPROM↓
この場合,
 「プログラム中で読み書きできる,電源落ちても値が残るエリア」
のこと。
設定値等を入れておくところです。

↓以下,詳細。
read more...

2012/08/19(日) | EEPROM | トラックバック(0) | コメント(0)

 |  HOME  | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。