Hewを使ってH8/3048Fで動作させるF/W開発を行っています。
外部変数を、定義した順にRAM上に配置させる事はできますでしょうか?
たとえば、あるCソース上で外部変数を
int a;
int b
char c;
int d[2];
・
というように書いてビルドした時、マップファイルをみると、a,b,c,d,・・・の順で
配置されていませんでした。Hewからの設定、または pragmaなどを使って
順番に配置させることはできるのでしょうか?
昔、H8をIARで開発していた時や、78K0をCubeSuiteで開発していたときは、定義した順番で
配置されていた記憶があるのですが。。。やはりコンパイラに依存するものなのでしょうか?
大して重要な事ではないのですが気になって質問しました。
> セクションか構造体を使うしかなさそうですね。
大域変数の記述をアセンブラで行うことでも可能です。
#pragma asm .section b,data,align=2 .export _a .align 2 _a: .res.w 1 .export _b .align 2 _b: .res.w 1 .export _c _c: .res.b 1 .export _d .align 2 _d: .res.w 2 #pragma endasm