查看: 3121|回复: 3

基于freescaleMC9S08DZ60IC的中断向量重定向后进不了中断(已解决)

[复制链接]

该用户从未签到

4

主题

14

帖子

0

新手上路

Rank: 1

积分
37
最后登录
1970-1-1
发表于 2014-4-28 15:21:04 | 显示全部楼层 |阅读模式
 
                        
            Dear all,
            问题点:
            我现在在做基于MC9S08DZ60的CAN bootloader程序,因为bootloader占用的flash地址是从0xF400-0xFFFF,所以我想把用户中断向量从默认的0xFFC0-0xFFFF重定向到0xF3C0-0xF3FF。MC9S08DZ60 datasheet上面说只要给@0xFFBF第7位写0 and @0xFFBD设置0xF400-0xFFFF保护,中断向量就会重定向到0xF3C0-0xF3FF,我增加代码如下:
             
            const unsigned char NVOPT_INIT @0xFFBF = 0x02; // vector redirect, flash unsecure
            const unsigned char NVPROT_INIT @0x0000FFBD = 0xFA; // 0xFC00-0xFFFF are protected= 0x02; // vector redirect, flash unsecure
            extern interrupt void Dummy_ISR(); 
            extern interrupt void TPM2_10ms ();
            // redirect vector 0xFFC0-0xFFFD to 0xFBC0-0xFBFD
            void (* volatile const _Usr_Vector[])()@0xF3C0= {
            TPM2_10ms, // Int.no.31 RTC (at F3C0) (at FFC4)
            Dummy_ISR, // Int.no.30 RTC (at F3C2) (at FFC4)
            Dummy_ISR, // Int.no.29 RTC (at F3C4) (at FFC4)
            Dummy_ISR, // Int.no.28 IIC (at F3C6) (at FFC6)
            Dummy_ISR, // Int.no.27 ACMP (at F3C8) (at FFC8)
            Dummy_ISR, // Int.no.26 ADC (at F3CA) (at FFCA)
            Dummy_ISR, // Int.no.25 KBI (at F3CC) (at FFCC)
            Dummy_ISR, // Int.no.24 SCI2 Transmit (at F3CE) (at FFCE)
            Dummy_ISR, // Int.no.23 SCI2 Receive (at F3D0) (at FFD0)
            Dummy_ISR, // Int.no.22 SCI2 Error (at F3D2) (at FFD2)
            Dummy_ISR, // Int.no.21 SCI1 Transmit (at F3D4) (at FFD4)
            Dummy_ISR, // Int.no.20 SCI1 Receive (at F3D6) (at FFD6)
            Dummy_ISR, // Int.no.19 SCI1 error (at F3D8) (at FFD8)
            Dummy_ISR, // Int.no.18 TPM2 Overflow (at F3DA) (at FFDA)
            Dummy_ISR, // Int.no.17 TPM2 CH1 (at F3DC) (at FFDC)
            Dummy_ISR, // Int.no.16 TPM2 CH0 (at F3DE) (at FFDE)
            Dummy_ISR, // Int.no.15 TPM1 Overflow (at F3E0) (at FFE0)
            TPM2_10ms, // Int.no.14 TPM1 CH5 (at F3E2) (at FFE2)
            Dummy_ISR, // Int.no.13 TPM1 CH4 (at F3E4) (at FFE4)
            Dummy_ISR, // Int.no.12 TPM1 CH3 (at F3E6) (at FFE6)
            Dummy_ISR, // Int.no.11 TPM1 CH2 (at F3E8) (at FFE8)
            Dummy_ISR, // Int.no.10 TPM1 CH1 (at F3EA) (at FFEA)
            Dummy_ISR, // Int.no.9 TPM1 CH0 (at F3EC) (at FFEC)
            Dummy_ISR, // Int.no.8 Reserved (at F3EE) (at FFEE)
            Dummy_ISR, // Int.no.7 USB Statue (at F3F0) (at FFF0)
            Dummy_ISR, // Int.no.6 SPI2 (at F3F2) (at FFF2)
            Dummy_ISR, // Int.no.5 SPI1 (at F3F4) (at FFF4)
            Dummy_ISR, // Int.no.4 Loss of lock (at F3F6) (at FFF6)
            Dummy_ISR, // Int.no.3 LVI (at F3F8) (at FFF8)
            Dummy_ISR, // Int.no.2 IRQ (at F3FA) (at FFFA)
            Dummy_ISR, // Int.no.1 SWI (at F3FC) (at FFFC)
            };
             
            interrupt void TPM2_10ms(){
              
                PTDD_PTDD2=!PTDD_PTDD2;
                   TPM2SC_TOF=0;
                  // PTDD_PTDD0=!PTDD_PTDD0;
                   PTDD_PTDD3=!PTDD_PTDD3;
            }
            interrupt void Dummy_ISR(){
            }
            //#pragma CODE_SEG DEFAULT  
             
            生成的S19文件中,中断向量是被重定向到0xF3C0-0xF3FD了,但是程序进不了中断服务程序
             
             
            请高手指点下我的问题出在哪?
            thanks for your help。
             
            
            
            
回复

使用道具 举报

该用户从未签到

4

主题

14

帖子

0

新手上路

Rank: 1

积分
37
最后登录
1970-1-1
 楼主| 发表于 2014-4-28 16:58:20 | 显示全部楼层

回复:基于freescaleMC9S08DZ60IC的中断向量重定向后进不了中断

 已解决,谢谢
 
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-10-26 08:41
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    16

    主题

    149

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    385
    最后登录
    2019-3-13
    发表于 2014-5-8 14:07:38 | 显示全部楼层

    RE:基于freescaleMC9S08DZ60IC的中断向量重定向后进不了中断(已解决)

    怎么解决的?我现在也是遇到了相同的问题,我是还想用中断向量号来编写中断函数,不想用你上面的写的那么方式,      
    还是先说说你是怎么解决的吧,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    14

    帖子

    0

    新手上路

    Rank: 1

    积分
    37
    最后登录
    1970-1-1
     楼主| 发表于 2014-5-16 12:40:47 | 显示全部楼层

    回复:基于freescaleMC9S08DZ60IC的中断向量重定向后进不了中断(已解决)

    回复第 3 楼 于2014-05-08 14:07:38发表:
    因为中断向量表中写错了啊,写了两次TPM2的中断,删掉最上面的一个就对了
     
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-2 19:46 , Processed in 0.087154 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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