打印

关于DSPIC30F2010的问题

[复制链接]
3348|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冷若寒|  楼主 | 2008-10-10 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,我用2010做的电机控制的程序。老是发生地址错误,不知道大家有没有遇到过,到底什么原因引起的?谢谢!


void __attribute__((__interrupt__)) _AddressError(void);
沙发
yewuyi| | 2008-10-10 16:46 | 只看该作者

查查该型号的头文件中没有定义这个地址名

使用特权

评论回复
板凳
冷若寒|  楼主 | 2008-10-10 18:47 | 只看该作者

在p30f2010.gld 中有定义啊。

** Alternate Interrupt Vector Table
*/
.aivt __AIVT_BASE :
  {
    LONG(DEFINED(__AltReservedTrap0
) ? ABSOLUTE(__AltReservedTrap0
) :
        (DEFINED(__ReservedTrap0
)    ? ABSOLUTE(__ReservedTrap0
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOscillatorFail
)? ABSOLUTE(__AltOscillatorFail
):
        (DEFINED(__OscillatorFail
)   ? ABSOLUTE(__OscillatorFail
)   :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltAddressError
)  ? ABSOLUTE(__AltAddressError
)  :
        (DEFINED(__AddressError
)     ? ABSOLUTE(__AddressError
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltStackError
)    ? ABSOLUTE(__AltStackError
)    :
        (DEFINED(__StackError
)       ? ABSOLUTE(__StackError
)       :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltMathError
)     ? ABSOLUTE(__AltMathError
)     :
        (DEFINED(__MathError
)        ? ABSOLUTE(__MathError
)        :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltReservedTrap5
) ? ABSOLUTE(__AltReservedTrap5
) :
        (DEFINED(__ReservedTrap5
)    ? ABSOLUTE(__ReservedTrap5
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltReservedTrap6
) ? ABSOLUTE(__AltReservedTrap6
) :
        (DEFINED(__ReservedTrap6
)    ? ABSOLUTE(__ReservedTrap6
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltReservedTrap7
) ? ABSOLUTE(__AltReservedTrap7
) :
        (DEFINED(__ReservedTrap7
)    ? ABSOLUTE(__ReservedTrap7
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltINT0Interrupt
) ? ABSOLUTE(__AltINT0Interrupt
) :
        (DEFINED(__INT0Interrupt
)    ? ABSOLUTE(__INT0Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC1Interrupt
)  ? ABSOLUTE(__AltIC1Interrupt
)  :
        (DEFINED(__IC1Interrupt
)     ? ABSOLUTE(__IC1Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC1Interrupt
)  ? ABSOLUTE(__AltOC1Interrupt
)  :
        (DEFINED(__OC1Interrupt
)     ? ABSOLUTE(__OC1Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltT1Interrupt
)   ? ABSOLUTE(__AltT1Interrupt
)   :
        (DEFINED(__T1Interrupt
)      ? ABSOLUTE(__T1Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC2Interrupt
)  ? ABSOLUTE(__AltIC2Interrupt
)  :
        (DEFINED(__IC2Interrupt
)     ? ABSOLUTE(__IC2Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC2Interrupt
)  ? ABSOLUTE(__AltOC2Interrupt
)  :
        (DEFINED(__OC2Interrupt
)     ? ABSOLUTE(__OC2Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltT2Interrupt
)   ? ABSOLUTE(__AltT2Interrupt
)   :
        (DEFINED(__T2Interrupt
)      ? ABSOLUTE(__T2Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltT3Interrupt
)   ? ABSOLUTE(__AltT3Interrupt
)   :
        (DEFINED(__T3Interrupt
)      ? ABSOLUTE(__T3Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltSPI1Interrupt
) ? ABSOLUTE(__AltSPI1Interrupt
) :
        (DEFINED(__SPI1Interrupt
)    ? ABSOLUTE(__SPI1Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltU1RXInterrupt
) ? ABSOLUTE(__AltU1RXInterrupt
) :
        (DEFINED(__U1RXInterrupt
)    ? ABSOLUTE(__U1RXInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltU1TXInterrupt
) ? ABSOLUTE(__AltU1TXInterrupt
) :
        (DEFINED(__U1TXInterrupt
)    ? ABSOLUTE(__U1TXInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltADCInterrupt
)  ? ABSOLUTE(__AltADCInterrupt
)  :
        (DEFINED(__ADCInterrupt
)     ? ABSOLUTE(__ADCInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltNVMInterrupt
)  ? ABSOLUTE(__AltNVMInterrupt
)  :
        (DEFINED(__NVMInterrupt
)     ? ABSOLUTE(__NVMInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltSI2CInterrupt
) ? ABSOLUTE(__AltSI2CInterrupt
) :
        (DEFINED(__SI2CInterrupt
)    ? ABSOLUTE(__SI2CInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltMI2CInterrupt
) ? ABSOLUTE(__AltMI2CInterrupt
) :
        (DEFINED(__MI2CInterrupt
)    ? ABSOLUTE(__MI2CInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltCNInterrupt
)   ? ABSOLUTE(__AltCNInterrupt
)   :
        (DEFINED(__CNInterrupt
)      ? ABSOLUTE(__CNInterrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltINT1Interrupt
) ? ABSOLUTE(__AltINT1Interrupt
) :
        (DEFINED(__INT1Interrupt
)    ? ABSOLUTE(__INT1Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC7Interrupt
)  ? ABSOLUTE(__AltIC7Interrupt
)  :
        (DEFINED(__IC7Interrupt
)     ? ABSOLUTE(__IC7Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC8Interrupt
)  ? ABSOLUTE(__AltIC8Interrupt
)  :
        (DEFINED(__IC8Interrupt
)     ? ABSOLUTE(__IC8Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC3Interrupt
)  ? ABSOLUTE(__AltOC3Interrupt
)  :
        (DEFINED(__OC3Interrupt
)     ? ABSOLUTE(__OC3Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC4Interrupt
)  ? ABSOLUTE(__AltOC4Interrupt
)  :
        (DEFINED(__OC4Interrupt
)     ? ABSOLUTE(__OC4Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltT4Interrupt
)   ? ABSOLUTE(__AltT4Interrupt
)   :
        (DEFINED(__T4Interrupt
)      ? ABSOLUTE(__T4Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltT5Interrupt
)   ? ABSOLUTE(__AltT5Interrupt
)   :
        (DEFINED(__T5Interrupt
)      ? ABSOLUTE(__T5Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltINT2Interrupt
) ? ABSOLUTE(__AltINT2Interrupt
) :
        (DEFINED(__INT2Interrupt
)    ? ABSOLUTE(__INT2Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltU2RXInterrupt
) ? ABSOLUTE(__AltU2RXInterrupt
) :
        (DEFINED(__U2RXInterrupt
)    ? ABSOLUTE(__U2RXInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltU2TXInterrupt
) ? ABSOLUTE(__AltU2TXInterrupt
) :
        (DEFINED(__U2TXInterrupt
)    ? ABSOLUTE(__U2TXInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltSPI2Interrupt
) ? ABSOLUTE(__AltSPI2Interrupt
) :
        (DEFINED(__SPI2Interrupt
)    ? ABSOLUTE(__SPI2Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltC1Interrupt
)   ? ABSOLUTE(__AltC1Interrupt
)   :
        (DEFINED(__C1Interrupt
)      ? ABSOLUTE(__C1Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC3Interrupt
)  ? ABSOLUTE(__AltIC3Interrupt
)  :
        (DEFINED(__IC3Interrupt
)     ? ABSOLUTE(__IC3Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC4Interrupt
)  ? ABSOLUTE(__AltIC4Interrupt
)  :
        (DEFINED(__IC4Interrupt
)     ? ABSOLUTE(__IC4Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC5Interrupt
)  ? ABSOLUTE(__AltIC5Interrupt
)  :
        (DEFINED(__IC5Interrupt
)     ? ABSOLUTE(__IC5Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltIC6Interrupt
)  ? ABSOLUTE(__AltIC6Interrupt
)  :
        (DEFINED(__IC6Interrupt
)     ? ABSOLUTE(__IC6Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC5Interrupt
)  ? ABSOLUTE(__AltOC5Interrupt
)  :
        (DEFINED(__OC5Interrupt
)     ? ABSOLUTE(__OC5Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC6Interrupt
)  ? ABSOLUTE(__AltOC6Interrupt
)  :
        (DEFINED(__OC6Interrupt
)     ? ABSOLUTE(__OC6Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC7Interrupt
)  ? ABSOLUTE(__AltOC7Interrupt
)  :
        (DEFINED(__OC7Interrupt
)     ? ABSOLUTE(__OC7Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltOC8Interrupt
)  ? ABSOLUTE(__AltOC8Interrupt
)  :
        (DEFINED(__OC8Interrupt
)     ? ABSOLUTE(__OC8Interrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltINT3Interrupt
) ? ABSOLUTE(__AltINT3Interrupt
) :
        (DEFINED(__INT3Interrupt
)    ? ABSOLUTE(__INT3Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltINT4Interrupt
) ? ABSOLUTE(__AltINT4Interrupt
) :
        (DEFINED(__INT4Interrupt
)    ? ABSOLUTE(__INT4Interrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltC2Interrupt
)   ? ABSOLUTE(__AltC2Interrupt
)   :
        (DEFINED(__C2Interrupt
)      ? ABSOLUTE(__C2Interrupt
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltPWMInterrupt
)  ? ABSOLUTE(__AltPWMInterrupt
)  :
        (DEFINED(__PWMInterrupt
)     ? ABSOLUTE(__PWMInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltQEIInterrupt
)  ? ABSOLUTE(__AltQEIInterrupt
)  :
        (DEFINED(__QEIInterrupt
)     ? ABSOLUTE(__QEIInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltDCIInterrupt
)  ? ABSOLUTE(__AltDCIInterrupt
)  :
        (DEFINED(__DCIInterrupt
)     ? ABSOLUTE(__DCIInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltLVDInterrupt
)  ? ABSOLUTE(__AltLVDInterrupt
)  :
        (DEFINED(__LVDInterrupt
)     ? ABSOLUTE(__LVDInterrupt
)     :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltFLTAInterrupt
) ? ABSOLUTE(__AltFLTAInterrupt
) :
        (DEFINED(__FLTAInterrupt
)    ? ABSOLUTE(__FLTAInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltFLTBInterrupt
) ? ABSOLUTE(__AltFLTBInterrupt
) :
        (DEFINED(__FLTBInterrupt
)    ? ABSOLUTE(__FLTBInterrupt
)    :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt45
)   ? ABSOLUTE(__AltInterrupt45
)   :
        (DEFINED(__Interrupt45
)      ? ABSOLUTE(__Interrupt45
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt46
)   ? ABSOLUTE(__AltInterrupt46
)   :
        (DEFINED(__Interrupt46
)      ? ABSOLUTE(__Interrupt46
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt47
)   ? ABSOLUTE(__AltInterrupt47
)   :
        (DEFINED(__Interrupt47
)      ? ABSOLUTE(__Interrupt47
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt48
)   ? ABSOLUTE(__AltInterrupt48
)   :
        (DEFINED(__Interrupt48
)      ? ABSOLUTE(__Interrupt48
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt49
)   ? ABSOLUTE(__AltInterrupt49
)   :
        (DEFINED(__Interrupt49
)      ? ABSOLUTE(__Interrupt49
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt50
)   ? ABSOLUTE(__AltInterrupt50
)   :
        (DEFINED(__Interrupt50
)      ? ABSOLUTE(__Interrupt50
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt51
)   ? ABSOLUTE(__AltInterrupt51
)   :
        (DEFINED(__Interrupt51
)      ? ABSOLUTE(__Interrupt51
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt52
)   ? ABSOLUTE(__AltInterrupt52
)   :
        (DEFINED(__Interrupt52
)      ? ABSOLUTE(__Interrupt52
)      :
         ABSOLUTE(__DefaultInterrupt)));
    LONG(DEFINED(__AltInterrupt53
)   ? ABSOLUTE(__AltInterrupt53
)   :
        (DEFINED(__Interrupt53
)      ? ABSOLUTE(__Interrupt53
)      :
         ABSOLUTE(__DefaultInterrupt)));
  } >aivt

} /* SECTIONS */

使用特权

评论回复
地板
systemchip| | 2008-10-10 20:49 | 只看该作者

寻址错误陷阱

通常是因为对非法的程序/数据空间进行寻址等等操作所引起。。。

使用特权

评论回复
5
sunjy516| | 2010-7-30 21:05 | 只看该作者
不看具体代码,还真的不知道问题所在。

使用特权

评论回复
6
Mary_luo| | 2010-8-2 16:17 | 只看该作者
楼主敬业的!:)

使用特权

评论回复
7
skygrow| | 2010-8-3 10:10 | 只看该作者
参考官网的地址错调试例程CE006,下载地址 http://www.microchip.com/stellen ... &param=en533534,或者C30安装目录C:\Program Files\Microchip\MPLAB C30\examples\dsPIC30F\CE006_address_error_trap
使用前建议先读读CE006_Readme.txt

使用特权

评论回复
8
headwolf_83| | 2010-8-6 08:47 | 只看该作者
有没有什么中断开了没处理。有没有指针乱指。先排除下低级问题。包括算术除0错误。

使用特权

评论回复
9
Xyj905560841| | 2012-4-17 12:40 | 只看该作者
你的中断程序应该
void __attribute__((interrupt, no_auto_psv)) _PWMInterrupt(void)

使用特权

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

本版积分规则

35

主题

137

帖子

1

粉丝