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.

[参考译文] MSPM0G3507:CCS 寄存器视图中缺失 SCB 寄存器

Guru**** 2463330 points
Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477840/mspm0g3507-scb-registers-missing-in-ccs-registers-view

器件型号:MSPM0G3507

工具与软件:

您好!

我目前正在评估 MSPM0G3507。
当我在 CCS (v12.8.1)中启动调试会话时、我注意到"Registers"视图中缺少 SCB 寄存器。
但是、当我在"Expressions"视图中添加表达式"(SCB_Type*)(0xE000E000UL + 0x0D00UL)"时、我可以很好地检查所有 SCB 寄存器(包括我感兴趣的 VTOR)。

是否存在此寄存器在"Registers"视图中不可用的原因?

谢谢!
Markus

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

    尊敬的 Markus:
    您能否与我分享您的项目以便我进行审阅? 根据用户指南、您需要以特权身份执行代码以获得对 SCB 的控制权。
    此致、
    Diego Abad

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

    您好、Diego:
    感谢您的快速响应。

    我认为这里有一个误解:
    在项目中设置 VTOR 寄存器值非常有效。

    我很好奇、在 Code Composer Studio Debug Mode (使用调试器连接到目标时)下、"Registers"视图未命中 SCB 寄存器。 屏幕截图: https://ibb.co/WWnZ9JXH

    但是、如果我在 CCS"Expressions"视图中添加 SCB 基址(使用正确的转换类型)、我可以查看一些可访问的 SCB 寄存器。
    屏幕截图: https://ibb.co/21pmCyLH

    但是、如果您感兴趣、我可以使用链接器脚本符号为 VTOR 分配以下简单代码(我使用裸机、无 RTOS)、该符号指向应用程序中的矢量表地址(我使用引导加载程序/应用程序设置)。

    链接器脚本:

        /* Aligns the interrupt service table to a 256-byte boundary and stores the address in a linker symbol */
        .intvecs: palign(256) { _intvecs_location = .; } > FLASH_APPLICATION

    C 语言代码:

    /* Interrupt vector table location from linker symbol */
    extern uint32_t _intvecs_location;
    
    void initInterruptVectortable(void)
    {
        SCB->VTOR = (uint32_t)&_intvecs_location;
    }
    

    此致、
    Markus

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

    尊敬的 Markus:
    谢谢您让我知道。 很高兴见到您找到解决方案。 缺少寄存器的原因很可能与默认情况下如何不允许使用该寄存器有关。  
    此致、
    Diego Abad

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

    我猜是有人忘记了在 ccs_base/common/targetdb/Modules/MSP 中生成 SCB.xml。

    我在12.4版中看到 NVIC 和 SysTick、在12.8版中看到更多。 我这里没有 v20.0;可能那时 SCB 会启用。

    [编辑:也不是 v20.0.1。]