しかし、コンパイラなどのツール名と一緒にエラーコードをググれば、いろんな情報を得ることができます。
今日はちょっとした、自分用のメモ(いつも、いつでも自分用ですが)。
ご自身でファームウェアを書いていらっしゃる方は、こんな記事を読まなくても検索するなどしてエラーコードの意味を調べていらっしゃると思いますが、日曜大工ならぬ日曜プログラマの方は、エラーコードの意味を調べてみるといいと思います。
さてさて
CypressのUSBコントローラー、FX2をKeilのuV2でコンパイル。
評価版なので4Kbyteまでのファームウエアしか作れないのです。
で、その制限を超えたらどんな表示が出るのかなー と思って、ちょっとやってみました
。
output windowに
error C249: 'DATA': SEGMENT TOO LARGE
が出たら、そのソースファイルがでっかすぎる、ということのようです。
ちなみに、上のerror C249は、
#define MAXxyi 64 // iteration times
signed char Xi[MAXxyi];
signed char Yi[MAXxyi];
と書いた時に出たもので、
これを
#define MAXxyi 30 // iteration times
signed char Xi[MAXxyi];
signed char Yi[MAXxyi];
リンカがエラーを出すこともあるようで
*** ERROR L107: ADDRESS SPACE OVERFLOW
となると、個々のソースファイルではもんだいなくても、なんか大きすぎるみたいですね。
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
も出ていました。
さらに
Program Size: data=139.5 xdata=4473 code=3362
Target not created
ということで停止。
で、
#define MAXxyi 24 // iteration times
signed char Xi[MAXxyi];
signed char Yi[MAXxyi];
とすると、
Program Size: data=127.5 xdata=4473 code=3362
と変わらないのに…
Total Code Bytes = 3362
Conversion completed successfully.
"funny-kbd_v2b" - 0 Error(s), 0 Warning(s).
ということで成功裏に終了。
0 件のコメント:
コメントを投稿