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.

[参考译文] RM48L952:中断 FEE 写入会引起一个复位

Guru**** 2455560 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/639333/rm48l952-interrupting-fee-write-causes-a-reset

器件型号:RM48L952
主题中讨论的其他器件:HALCOGEN

您好!

我们在项目中使用 HALCoGen FEE 驱动器来存储对可校准参数的更改。 直到我们按照 TI 应用手册中的说明最近实现了嵌套中断、所有这些操作似乎都运行良好。 它似乎会中断写入操作、导致微控制器崩溃。 作为一种权变措施、我们在写入从1秒任务中调用的 FEE 时禁用了所有中断、但这并不可取、因为写入操作大约需要50ms 才能完成、而我们有一个10ms 任务将被显著延迟。

我们使用异步写入命令、如下所示:

/*在 FEE 写入期间禁用中断*/
disable_IRQ ();

/*异步将块写入 FEE 扇区。 当状态为空闲时、写入操作已完成*/
TI_fee_WriteAsync (ctBlockNumber、(uint8_t *) ptrRamAddr);

执行{


TI_fee_MainFunction();

stFeeStatus = TI_fee_GetStatus (get_last_action_status);


while (stFeeStatus!= IDLE);

/*在写入 FEE 后重新启用中断*/
_enable_IRQ ();

是否有人能够告诉我中断写入序列会导致问题的原因? 我们是否能够移动中断禁用以仅覆盖 TI_FEE 主函数(),以便我们不会延迟更高优先级的计时任务?

非常感谢

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

    我已将此问题转交给我们的软件专家、他很快就会回来。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    您能更详细地描述一下碰撞吗? 它是看门狗复位吗? 您是否已将 TI_FEE MainFunction()配置为从可中断 TI_FEE WriteAsync API 的任何其他任务调用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Vishwanath,

    感谢您回来。 它看起来确实是看门狗复位。 昨天我尝试禁用看门狗、但由于它仍在重置、所以肯定是错误的。 当我今天再次尝试时、我可以看到发生了什么。

    禁用看门狗后、FEE 写入开始后、我的代码卡在 dabort 处理程序中。 在 irqDispatch 中的 C_irqDispatch 函数的以下行中、似乎出现错误:

    如果(0U = u32IrqIndex)

    它具有以下不可拆卸的部件:

    00016160:E59DC000 LDR R12、[sp]
    00016164:E35C0000 CMP R12、#0
    00016168:1A000000 bne $C$L2

    错误发生在第一条指令上。 SP 保存值0x07FFFF48、因此用户栈似乎溢出。 增加堆栈大小后、我的程序不再崩溃。

    我认为 TI 嵌套中断处理程序只使用用户堆栈而不是 IRQ 堆栈、因此 IRQ 堆栈大小现在可以设置为零吗? 如果中断任务不包含任何费用操作、中断费用写入是否存在任何其他潜在问题?

    非常感谢

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

    你好、

    如果中断任务不包含任何费用操作、则不会出现问题。 在您有关堆栈的问题上、我将转发您的查询。

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

    您好、

    您是否有机会查看有关嵌套中断的应用手册? 它概述了在这种情况下如何处理 IRQ 堆栈。

    以下是应用手册的链接: 基于 Hercules ARM Cortex-R4/5的微控制器上的嵌套中断

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的链接。 这回答了我在堆栈上的问题。

    此致、

    将会