打印
[STM8]

求助:STM8S103 中断向量重定义问题

[复制链接]
2444|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dz139|  楼主 | 2016-7-21 19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参考网上的程序试了下

__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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝