日立のサイトから取ってきた cygwin の gcc(Ver 2.7-97r2a) を使っています。
3048 では、ベクターは4byte で、ポインタの長さと同じだったので、
typedef void (*fp)(void);
void start( void ) ;
const fp VectorTable[] __attribute__ ((section (".vectors"))) =
{
(fp)start //00
.
.
などという記述が可能でした。
今回、同じコンパイラで、3664 のプログラムを作っているのですが、
3664 の場合、ベクターが 2byte のため、
typedef short fp ;
void start( void ) ;
const fp VectorTable[] __attribute__ ((section (".vectors"))) =
{
(fp)start //00
.
.
などとすると、
>initializer element for `VectorTable[0]' is not computable at load time
というエラーになってしまいます。
キャストでごまかそうとしていろいろとやってみたのですが、このエラーは
無くなりません。
なんかいい方法はないでしょうか?
(アセンブラにしないとだめかなぁ〜)
--
--------- Computer Artisan ---------------------------
シーエー 寺脇 勝彦
E-mail wakky@xxxxxxxxxxxxxxxxxxx
URL http://www.computerartisan.com/