查看: 3912|回复: 2

求高手问个HCS08系列BOOTLOADER应用程序中选向量重映射问题

[复制链接]

该用户从未签到

6

主题

11

帖子

0

新手上路

Rank: 1

积分
47
最后登录
1970-1-1
发表于 2012-6-11 22:04:29 | 显示全部楼层 |阅读模式
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的内容但不能进中断。。。求高手赐教 谢谢
回复

使用道具 举报

该用户从未签到

6

主题

67

帖子

0

注册会员

Rank: 2

积分
149
最后登录
2020-10-22
发表于 2012-12-3 10:49:04 | 显示全部楼层

RE:求高手问个HCS08系列BOOTLOADER应用程序中选向量重映射问题

朋友,我和你遇到了同样的问题,我解决了,但是遇到一个新问题,你还在不?
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

9

帖子

0

新手上路

Rank: 1

积分
9
最后登录
1970-1-1
发表于 2013-12-5 22:45:02 | 显示全部楼层

回复:求高手问个HCS08系列BOOTLOADER应用程序中选向量重映射问题

能否发一份你的程序给我参考呢?659336590@qq.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-3 12:48 , Processed in 0.083684 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表