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.

[参考译文] MSP430FR2433:哪些 IFG 会导致复位?

Guru**** 2545740 points
Other Parts Discussed in Thread: MSP430FR2433

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset

器件型号:MSP430FR2433

VMAIFG 是否会导致复位?

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

    器件型号:MSP430FR2433

    JMBINIFG 或 JMBOUTIFG 会导致复位吗?

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

    器件型号:MSP430FR2433

    CBDIFG 或 UBDIFG 会导致复位吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset "] VMAIFG 是否会导致复位?[/quot]

    不可以、但如果需要、可以手动触发软件复位(如果已设置此 IFG)。

    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset/3767585 #3767585"] JMBINIFG 或 JMBOUTIFG 是否会导致复位?[/quot]

    否、这些 IFG 的行为与 VMAIFG 相同。

    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset/3767586 #3767586"] CBDIFG 或 UBDIFG 是否会导致复位?

    CBDIFG 不会导致复位。  仅当启用 UBDRSTEN 时、UBDIFG 才会导致复位。

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

    我对 VMAIFG 感到困惑、这就是为什么。

    用户指南(slau445i)第45页的"空存储器空间"似乎表示它将导致 PUC、而第38页的"工作模式"图表示外设区域提取将导致 PUC。 这听起来像是两个 都是指 VMAIFG。 它们是不是一样的?

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

    根据用户指南、空内存是不存在的内存空间。 我假设这意味着地址 超出了为特定器件定义的存储器映射。

    空外设空间与 MSP430FR2433器件上从0FFFh 到0000h 的存储器范围有关。  空外设空间的一个示例场景是 中断调用的 ISR、但在矢量表中找不到 ISR (例如 FFFFh)。 Jens-Michael Gross 在以下主题中对其进行了很好的描述。

    即使在进入 main 之前、复位中断矢量 SYSRSTIV 也会设置为001Eh (外设/配置区域获取- PERF)。

    我希望这有助于澄清差异。

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

    感谢您的帮助、但上次的回答没有回答我的最后一个问题。

    那么、这是我的看法。

    访问空存储器是否会设置 VMAIFG? 我认为是的。

    外设区域获取是否将设置 VMAIFG? 我不知道。

    访问空存储器和外设区域获取的内容是否相同? 我认为不是、但我真的不知道。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset/3767757 #3767757">访问空内存是否会设置 VMAIFG? 我认为是的。[/引述]

    是的。 这包括在不存在 的存储器位置(例如0x3100地址)和现有存储器位置(即使在外设存储器范围(例如0x077C)中访问(例如读取)空(例如0x3FFF 内容)存储器。 请参阅下面随附的代码。

    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset/3767757 #3767757")是否是要设置 VMAIFG 的外设区域获取? 我不知道。

    可能、但由于 PUC 已生成、VMAIFG 在此时可能无关紧要。

    [引用 userid="51142" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019466/msp430fr2433-which-ifgs-will-cause-a-reset/3767757 #3767757">访问空内存和外设区域获取的内容是否相同? 我认为不是、但我真的不知道。

    否 这里的最大区别是访问获取。 访问或读取与读取存储在特定地址 的值相关、而获取与执行存储在特定地址的任何内容相关。

    用户指南在第45页对这一点进行了很好的总结:

    读取空存储器会产生值3FFFh。 在提取的情况下、这被视为 JMP $。 从空中提取访问
    外设空间会导致 PUC。

    这更有意义吗?

    #include <msp430.h>
    
    volatile unsigned int value;
    
    int main(void)
    {
        WDTCTL = WDTPW | WDTHOLD;               // Stop watchdog timer
    
        P1OUT &= ~BIT0;                         // Clear P1.0 output latch for a defined power-on state
        P1DIR |= BIT0;                          // Set P1.0 to output direction
    
        PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode
                                                // to activate previously configured port settings
    
        // Activate vacant memory interrupt
        SFRIE1 = VMAIE;
    
        while(1)
        {
            // Read from vacant nonexistent memory between 0xC3FF - 0x3000
            // will cause  VMAIFG SNMI interrupt
            value = *((unsigned int*)0x3100);
    
            __delay_cycles(100000);             // Delay for 100000*(1/MCLK)=0.1s
    
            // Read from vacant peripheral memory between 0x0FFF - 0x0000
            // will not cause  VMAIFG SNMI interrupt
            value = *((unsigned int*)0x077C);
    
            __delay_cycles(100000);             // Delay for 100000*(1/MCLK)=0.1s
    
            // Read from nonvacant peripheral memory between 0x0FFF - 0x0000
            // will not cause  VMAIFG SNMI interrupt
            value = *((unsigned int*)0x04DA);
    
            __delay_cycles(100000);             // Delay for 100000*(1/MCLK)=0.1s
        }
    }
    
    // SYSNMI interrupt service routine
    #pragma vector=SYSNMI_VECTOR
    __interrupt void SYSNMI_ISR(void)
    {
        if(VMAIFG)
        {
            P1OUT ^= BIT0;                      // Toggle P1.0 using exclusive-OR
            SFRIFG1 &= ~VMAIFG;                 // Clear VMAIFG
        }
    }
    
    

    e2e.ti.com/.../msp430fr243x_5F00_vmaifg_5F00_detection.c.zip

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

    以下是随附示例中使用的地址的存储器内容、供您参考。

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

    詹姆斯:

    感谢您的回答以及代码示例的详细说明。 我现在明白了。 我很感谢。

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

    非常好。 我很高兴它能提供帮助! 感谢您告知我们并单击 Resolved 按钮。