21ic电子技术开发论坛

标题: 求助:STM8S103 中断向量重定义问题 [打印本页]

作者: dz139    时间: 2016-7-21 19:23
标题: 求助:STM8S103 中断向量重定义问题
参考网上的程序试了下

__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文件

求助有谁能解释一下?到底应该怎么做?

作者: xmshao    时间: 2016-7-27 17:01
向量表大小就是0X80,怎么会变大了呢?
把第一项0x82008080改为0x82008000试试

你可以参考下应用笔记 AN2659





欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)