2015年09月22日

dsPIC メモリ配置に関して

今回はdsPICマイコンでコンパイルする際に
遭遇したエラーの回避方法についてご紹介します。


dsPICマイコンで使用するコンパイラでC30やXC16などありますが、
大量の変数や連続した変数を使用する場合に下記のようなエラーがでることがあります。


Link Error: Could not allocate section~
Link Error: Could not allocate data memory

メモリは余裕があるはずなのになぜコンパイルできない?
ということがたまにあります。


このような場合に大量の変数や連続した変数に
下記のようなおまじないを入れるとうまくコンパイルできます。

__attribute__((far))



たとえば、
struct path p[205]__attribute__((far));
int a[200]__attribute__((far));
という感じです。



勝手にコンパイラがいいように配置してくれれば良いだけと思ってしまいます。
大量の変数を扱う際にはぜひこのおまじないを使ってみてください。




posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック