参考网上的程序试了下
__root const long reintvec[] @".intvec"=
{
0x82008080,0x82009004,0x82009008,0x8200900c, //当应用程序地址不是0x9000时则要相应改掉除第一个0x82008080以外的数值
0x82009010,0x82009014,0x82009018,0x8200901c,
0x82009020,0x82009024,0x82009028,0x8200902c,
0x82009030,0x82009034,0x82009038,0x8200903c,
0x82009040,0x82009044,0x82009048,0x8200904c,
0x82009050,0x82009054,0x82009058,0x8200905c,
0x82009060,0x82009064,0x82009068,0x8200906c,
0x82009070,0x82009074,0x82009078,0x8200907c,
};
IAR报错:
Error[Lp004]: actual size (0x100) exceeds maximum size (0x80) for block "INTVEC"
但尝试将icf文件中:
define block INTVEC with size = 0x80 { ro section .intvec };
修改为
define block INTVEC with size = 0x0100 { ro section .intvec };
不报错
但网上说
2.在BOOT程序里最重要的是中断向量表重定向,icf文件就不用设置了(BOOT里不能开中断)
感觉不用修改icf文件
求助有谁能解释一下?到底应该怎么做? |