在线时间5 小时
UID356617
注册时间2012-5-4
NXP金币0
该用户从未签到
新手上路

- 积分
- 47
- 最后登录
- 1970-1-1
|
RT,我写了个8位BOOTLOADER 用的DZ60的板子,现在涉及到一个应用程序移中断向量表的问题,请问为何我挪动中断向量表之后不能进中断呢?代码如下
typedef void (*near tIsrFunc)(void);
extern void _Startup( void ); /* reset vector */
extern void CAN_WakeupISR();
extern void CAN_ReceiveISR();
extern void CAN_TransmitISR();
/******************************************************************************
*
* Function: DummyISR()
*
* Description: dummy interrupt handler
*
* Returns: no return value
*
* Notes:
*
******************************************************************************/
#pragma MESSAGE DISABLE C4000
static interrupt void DummyISR(void)
{
}
/******************************************************************************
* INTERRUPT VECTORS TABLE
* User is able to add another ISR into this table instead NULL pointer.
****************************************************************************/
#pragma CONST_SEG DEFAULT
const tIsrFunc _InterruptVectorTable[] @0x4FC0 = { // Interrupt vector table
DummyISR, /* 0xFFC0: ACMP2 */
DummyISR, /* 0xFFC2: ACMP1 */
CAN_TransmitISR, /* 0xFFC4: MSCAN Transmit */
CAN_ReceiveISR, /* 0xFFC6: MSCAN Receive */
DummyISR, /* 0xFFC8: MSCAN Errors */
CAN_WakeupISR, /* 0xFFCA: MSCAN Wake Up */
DummyISR, /* 0xFFCC: RTC */
DummyISR, /* 0xFFCE: IIC */
DummyISR, /* 0xFFD0: ADC Conversion */
DummyISR, /* 0xFFD2: Port A,B,D Pin */
DummyISR, /* 0xFFD4: SCI2 Transmit */
DummyISR, /* 0xFFD6: SCI2 Receive */
DummyISR, /* 0xFFD8: SCI2 Error */
DummyISR, /* 0xFFDA: SCI1 Transmit */
DummyISR, /* 0xFFDC: SCI1 Receive */
DummyISR, /* 0xFFDE: SCI1 Error */
DummyISR, /* 0xFFE0: SPI */
DummyISR, /* 0xFFE2: TPM2 Overflow */
DummyISR, /* 0xFFE4: TPM2 Channel 1 */
DummyISR, /* 0xFFE6: TPM2 Channel 0 */
DummyISR, /* 0xFFE8: TPM1 Overflow */
DummyISR, /* 0xFFEA: TPM1 Channel 5 */
DummyISR, /* 0xFFEC: TPM1 Channel 4 */
DummyISR, /* 0xFFEE: TPM1 Channel 3 */
DummyISR, /* 0xFFF0: TPM1 Channel 2 */
DummyISR, /* 0xFFF2: TPM1 Channel 1 */
DummyISR, /* 0xFFF4: TPM1 Channel 0 */
DummyISR, /* 0xFFF6: MCG Loss of Lock */
DummyISR, /* 0xFFF8: Low Voltage Detect */
DummyISR, /* 0xFFFA: IRQ */
DummyISR, /* 0xFFFC: SWI */
_Startup, /* 0xFFFE: Reset */
};
其中CAN接收中断函数如下
void interrupt 28 CAN_ReceiveISR (void){} 如果用这种方式写函数可以进终端,但生成的S19文件在FFC6地址上有内容,用boot程序烧写时不能成功,而用
interrupt void CAN_ReceiveISR (void){}方式写函数s19没有FFC6的内容但不能进中断。。。求高手赐教 谢谢
|
|