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.

[参考译文] MSPM0L1228:SysTick 回调胜出#39;t 调用

Guru**** 2386450 points
Other Parts Discussed in Thread: LP-MSPM0L2228, SYSCONFIG, MSPM0L2228, MSPM0L1228, SEGGER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1438366/mspm0l1228-systick-callback-won-t-called

器件型号:MSPM0L1228
主题中讨论的其他器件:LP-MSPM0L2228SysConfigMSPM0L2228SEGGER

工具与软件:

您好!

我在 MSPM0L1228S 上遇到了 SysTick 计时器问题。
计时器正在计数、但永远不会调用回调。
我创建了一个简单的测试程序。 我也在 LP-MSPM0L2228上对其进行了测试、它运行良好。 技术参考手册中的内容相同、所以我假设它们的行为相同。

能不能帮助我说明一下、这些器件之间有什么区别? "怎么了?

SysTick 的配置完全在代码中。 没有添加 SysTick。 SDK 版本为2.02.00.05。

#include "ti_msp_dl_config.h"
#include "stdio.h"

int main(void)
{
    SYSCFG_DL_init();

    /* Initialize the period to 1.00 ms */
    DL_SYSTICK_init(32000);
    DL_SYSTICK_enableInterrupt();
    DL_SYSTICK_enable();

    while (1) {
        delay_cycles(32000000);
        printf("systick: %d\n", DL_SYSTICK_getValue());
    }
}

/* SysTick_Handler();
 * interrupt handler for sysTick Timer.
 */
void SysTick_Handler(void)
{
    DL_GPIO_togglePins(GPIO_GRP_0_PORT, GPIO_GRP_0_PIN_A13_PIN);
}

此致、
Timo

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

    尊敬的 Timo:
    MSPM0L1228的文档应适用于其所有变体。  我建议 在 SDK 中运行 SysTick_PERIODIC_TIMER_LP_MSPM0L2228_nortos_ticlang 示例、查看您的 MSPM0L1228S 是否出现同样的问题。 如果没有发生这种情况、我建议查看工程的 SysConfig 代码(从 ti_msp_dl_config.c)并将其用于替换当前配置。
    此致、
    Diego Abad

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

    您好、Diego:

    感谢您的建议。 我导入了 SysTick periodic_timer 示例并将 L1228切换为 Device。
    但它为我提供了相同的结果。 在 L1228上、回调不会进行调用、而在 L2228上、它会按预期运行。

    还有其他解决问题的方法吗?

    您是否可以在 L1228上检查 SysTick_PERIODIC_TIMER 示例?

    此致、
    Timo

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

    尊敬的 Timo:
    在执行此操作之前、您能否确认您使用的是适合您项目的 SysConfig 文件? 导入项目时、务必要检查是否为所需目标导入项目(如下图所示)。  
    此致、
    Diego Abad

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

    您好、Diego:

    是的、我在导入工程时选择了 MSPM0L1228。

    此致、
    Timo

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

    尊敬的 Timo:
    谢谢您让我知道。 我们的办公室目前没有1228、因此我必须订购一些、看看我是否可以重现错误。  此过程可能需要一两周才能完成。
    此致、
    Diego Abad

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

    尊敬的 Diego:

    感谢您订购。 我很想知道它是否能满足您的需要。

    同时、我尝试了另一个计时器示例、结果表明中断也不起作用。
    我已读出计时器寄存器、标志看起来不错。 但不发生中断。
    是否有可能禁用所有中断? 类似于全局中断使能标志的东西? 我在 TRM 中没有找到任何内容。

    此致、
    Timo

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

    尊敬的 Timo:
    禁用所有中断的常规方法是使用 NVIC_DisableIRQ 为您要禁用的模块禁用其 IRQ 。 但是、对于 SysTick、实现方法是通过 DL_SysTick disableInterrupt 函数。 对于更 "全局"的方法、您可以 按照器件的  TRM 中所述、使用寄存器操作或__SET_PRIMASK 函数将 PRIMASK 的 BIT0设置为1。 您能否在 MSPM0L1228上共享正在使用的项目? 我想仔细检查一下它们,看看我是否能在我的最后发现任何错误 此外、您如何对 MSPM0L1228进行编程?

    此致、

    Diego Abad

    PD1:关于 PRIMASK 的 TRM 部分

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

    尊敬的 Diego:

    我故意没有禁用任何中断。 代码示例非常少。
    我想、常规方法会影响掩模标志。 这在调试器中是可以接受的。 PRIMASK 我还进行了检查、但未设置。 但感谢您提供此提示。

    我添加了测试项目。
    e2e.ti.com/.../MSPM0L1228_5F00_Projects.zip

    对于编程、我使用 Segger J-Link。 也许这是问题开始的地方。

    感谢您的支持。
    此致、
    Timo

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

    尊敬的 Timo:
    我查看了您发送的项目、但看不到任何错误(除了 J-LinkARM 配置)。 我建议您尝试调试 Seger J-Link。 为此、请尝试其他 SDK 示例、并查看是否也会发生无中断错误。
    此致、
    Diego Abad

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

    尊敬的 Diego:

    我在项目中的假设是完全正确的。 谢谢您的参与。

    "除了 J-LinkARM 配置外、这话什么意思? 您看到这里有什么问题了吗?

    此致、
    Timo

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

    尊敬的 Timo:
    我的意思是、当我尝试运行项目时、会遇到 J-Link 错误。 这很可能是因为我正在使用我的 XDS110 EVM 运行您发送的项目(为 J-Link 配置)。 我们 SDK 的原始示例未显示该错误。 我可以假设您修改了项目以使用 J-Link 吗?  
    此致、
    Diego Abad

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

    尊敬的 Diego:

    是的、我已经在项目属性中选择了 J-Link 进行连接。

    您认为这可能导致问题吗?

    此致、
    Timo

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

    尊敬的 Timo:
    让我和软件团队谈谈、我将在周一再次向您介绍。

    此致、

    Diego Abad

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

    尊敬的 Timo:
    我能够复制您看到的错误。  只有当我使用 J-Link 对 MCU 进行编程时才会发生这种情况。  我们将在下一个版本中解决此问题。  
    此致、
    Diego Abad  

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

    尊敬的 Diego:

    感谢调查。 这听起来很有趣。
    您使用的是哪种设备? MSPM0L1228S 32引脚与我类似、是什么?
    闪烁 J-Link 时是否显示错误消息?

    此致、
    Timo

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

    尊敬的 Timo:
    我使用了1228和2228。 当涉及到未激活中断标志时、两者似乎都有类似的问题。 我没有注意到我这边有"错误"消息。

    此致、

    Diego Abad

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

    尊敬的 Diego:

    谢谢、这些信息很有用。 我也用 LP-2228测试了它,它显示同样的故障。
    我想您是对的、我的问题是闪烁过程比较弱。 导致的同轴电缆损失。 我订购了 TI XDS-110来检查问题是否在我的硬件上解决了。 我将向您通报最新情况。

    您表示将在下一个版本中解决 J-Link 问题。 我必须等待哪个版本? CCS?

    此致、
    Timo

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

    尊敬的 Timo:
    软件团队将在我发送的 JIRA 票证中对此进行审查、他们将对其进行处理以找到并修复该问题。 不过、这方面的估计时间尚待确定。 我建议使用 TI XDS-110、因为该 连接选项允许我在中断正常工作的情况下运行两个工程。 此外、我建议将 CCS、SDK 和 SysConfig 更新为最新版本。  
    此致、
    Diego Abad