在线时间9 小时
UID380533
注册时间2008-7-28
NXP金币0
该用户从未签到
注册会员

- 积分
- 149
- 最后登录
- 2020-10-22
|

楼主 |
发表于 2012-11-29 16:03:33
|
显示全部楼层
RE:基于freescaleMC9S08DZ60IC的中断向量重定向的问题
Dear 版主,
感谢回复,我按照你的做法,尝试了一下,S19文件的值中断是到了0xFBC0地址处了,但是进不了中断。程序如下:
const byte NVOPT_INIT @0x0000FFBF = 0x02; // vector redirect, flash unsecure
const byte NVPROT_INIT @0x0000FFBD = 0xFA; // 0xFC00-0xFFFF are protected
extern interrupt void Dummy_ISR(void);
extern interrupt void CAN_RX(void);
// redirect vector 0xFFC0-0xFFFD to 0xFBC0-0xFBFD
void (* volatile const _Usr_Vector[])()@0xFBC0= {
Dummy_ISR, // Int.no.31 RTC (at FBC4) (at FFC4)
Dummy_ISR, // Int.no.30 RTC (at FBC4) (at FFC4)
Dummy_ISR, // Int.no.29 RTC (at FBC4) (at FFC4)
CAN_RX, // Int.no.28 IIC (at FBC6) (at FFC6)
Dummy_ISR, // Int.no.27 ACMP (at FBC8) (at FFC8)
Dummy_ISR, // Int.no.26 ADC (at FBCA) (at FFCA)
Dummy_ISR, // Int.no.25 KBI (at FBCC) (at FFCC)
Dummy_ISR, // Int.no.24 SCI2 Transmit (at FBCE) (at FFCE)
Dummy_ISR, // Int.no.23 SCI2 Receive (at FBD0) (at FFD0)
Dummy_ISR, // Int.no.22 SCI2 Error (at FBD2) (at FFD2)
Dummy_ISR, // Int.no.21 SCI1 Transmit (at FBD4) (at FFD4)
Dummy_ISR, // Int.no.20 SCI1 Receive (at FBD6) (at FFD6)
Dummy_ISR, // Int.no.19 SCI1 error (at FBD8) (at FFD8)
Dummy_ISR, // Int.no.18 TPM2 Overflow (at FBDA) (at FFDA)
Dummy_ISR, // Int.no.17 TPM2 CH1 (at FBDC) (at FFDC)
Dummy_ISR, // Int.no.16 TPM2 CH0 (at FBDE) (at FFDE)
Dummy_ISR, // Int.no.15 TPM1 Overflow (at FBE0) (at FFE0)
Dummy_ISR, // Int.no.14 TPM1 CH5 (at FBE2) (at FFE2)
Dummy_ISR, // Int.no.13 TPM1 CH4 (at FBE4) (at FFE4)
Dummy_ISR, // Int.no.12 TPM1 CH3 (at FBE6) (at FFE6)
Dummy_ISR, // Int.no.11 TPM1 CH2 (at FBE8) (at FFE8)
Dummy_ISR, // Int.no.10 TPM1 CH1 (at FBEA) (at FFEA)
Dummy_ISR, // Int.no.9 TPM1 CH0 (at FBEC) (at FFEC)
Dummy_ISR, // Int.no.8 Reserved (at FBEE) (at FFEE)
Dummy_ISR, // Int.no.7 USB Statue (at FBF0) (at FFF0)
Dummy_ISR, // Int.no.6 SPI2 (at FBF2) (at FFF2)
Dummy_ISR, // Int.no.5 SPI1 (at FBF4) (at FFF4)
Dummy_ISR, // Int.no.4 Loss of lock (at FBF6) (at FFF6)
Dummy_ISR, // Int.no.3 LVI (at FBF8) (at FFF8)
Dummy_ISR, // Int.no.2 IRQ (at FBFA) (at FFFA)
Dummy_ISR, // Int.no.1 SWI (at FBFC) (at FFFC)
};
interrupt void Dummy_ISR(void)
{
}
interrupt void CAN_RX(void)
{
内容省去
} |
|