[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(toppers-users 2529) コンフィギュレータのアライメント
- To: users at toppers jp
- From: takaya_kakizaki at gmx yamaha com
- Date: Wed, 13 Sep 2006 13:37:14 +0900
柿崎です。
最近のMLでアライメントの話が出たので一言言わせてください。
コンフィギュレータが生成するスタティック配列は、
(mbfとかmpf,mplとかでバッファ領域をNULL指定すると生成される)
static VP __message_buffer_MBF_ID1[TCOUNT_VP(256)];
のような形で定義されるので、アライメントとしては
VP型の値が格納できるアライメントに整列されるのが普通です。
なので完全に処理系依存なんですよね。
(32bitのアドレス空間を持つプロセッサならVPは4バイトなので問題にならないの
ですが)
4バイトアライメントを保証したいなら
static VP __attribute__((aligned(4)))
message_buffer_MBF_ID1[TCOUNT_VP(256)];
のような形でコンフィギュレータがコードを生成してくれるとよいのですが。
(でもこうするとgcc以外のコンパイラではどうするかという問題が残ります。)
さらに、FI4ではカーネルメモリを
UB _kernel_bufmgr_buffer[TSIZE_KERNEL_BUFFER];
と取るので、処理系によってはバスエラーが発生する可能性が
ぷんぷんするのですが。
せめて上と同じように
VP _kernel_bufmgr_buffer[TCOUNT_VP(TSIZE_KERNEL_BUFFER)];
とすべきではないでしょうか。
------------------------
柿崎 貴也
ヤマハ株式会社 サウンドネットワーク事業部
サウンドネット開発部
E-mail: kakizaki at soundnet yamaha co jp