This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/MSP430F5329:IAR 嵌入式工作平台7.10.3中断矢量

Guru**** 2502065 points
Other Parts Discussed in Thread: MSP430F5329

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/611571/compiler-msp430f5329-iar-embedded-workbench-7-10-3-interrupt-vectors

器件型号:MSP430F5329

工具/软件:TI C/C++编译器

我在触发 USCI_B1中断时遇到问题。

因此、我决定查看我是否可以运行任何内容

我创建了一个名为 interrupt.c 的文件、并为每个中断在其中放置代码。  

编译时遇到链接错误。  

编译配置:RycherI2C -调试
正在更新生成树...
interrupt.c
链接
ERROR[E16]:段复位(大小:0x2对齐:0x1)对于段定义而言太长。 至少需要额外0x2个字节。 在处理段放置命令"-Z (code) reset=FFFE-FFFFFFF"时出现问题、位置在
放置时刻可用的存储器范围为"-none"-
与此放置相关的保留范围:
FF80-FFFF INTVEC
运行链接器时出错

错误总数:1.
警告总数:0

在稍微播放一下之后、我发现以下中断导致了错误。  

#pragma vector=reset_vector
_interrupt void Reset_interrupt (void)

/*这里的中断代码*/
interrupt_count++;

在 MSP430F5329.h 文件中、它将复位矢量定义为  

#define RESET_Vector    (63u * 2U)/* 0xFFFE 复位[最高优先级]*/

那么、如果我不能使用该矢量、那么为什么要使用它呢?

此外、我无法从文档中得知的值是否为

#pragma vector=126  
即 (63u * 2U)  

或 #pragma vector= 65534
即0xFFFE

我认为它应该是0xFFFE、但我使用的是126的 RESET_Vector。


e2e.ti.com/.../interrupt.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是进入通用 MSP430论坛。 不是这个论坛、我似乎无法删除或移动它。 您不支持 IAR 编译器吗? IAR 说 TI 编写了所有的.h 文件。 但没有针对 IAR 问题的论坛。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kipton、  

    [引用用户="Kipton Moravec"]

    此外、我无法从文档中得知的值是否为

    #pragma vector=126  
    即 (63u * 2U)  

    或 #pragma vector= 65534
    即0xFFFE

    我认为它应该是0xFFFE、但我使用的是126的 RESET_Vector。

    [/报价]

    将复位中断矢量视为指针。 复位中断向量的地址为0xFFFE 并且指向地址(63u *2U)。 当 MSP430开始执行时、它使用复位矢量来知道从何处开始执行代码。 默认情况下,初始化代码位于 (63u *2U)。 由于复位矢量已经填充了值 (63u *2U),因此没有更多空间来填充用户定义的 ISR 的位置,因此会收到错误。 您可以手动更改复位矢量指向的位置、但这样做会导致 MSP430在您定义的 ISR 中开始执行、而无需初始化堆栈、PC 等 对于您的应用、我不建议更改复位矢量指向的位置并将其留给编译器以适当填充此矢量。  

    此致、  

    Caleb Overbay