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.

[参考译文] 编译器/TMS570LS1224:HALCoGen 04.07.01用户代码块不允许执行自定义 CPU 复位例程

Guru**** 2558250 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS1224

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/965580/compiler-tms570ls1224-halcogen-04-07-01-user-code-block-does-not-allow-for-custom-cpu-reset-routine-to-be-implemented

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

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

尊敬的 TI 专家:

我决定在这个论坛上发帖、因为我找不到发布 HALCoGen 问题的合适论坛。

HALCoGen 版本:04.07.01

我一直在分析为 TMS570LS1224生成的 HALCoGen 代码、尤其是 SYS_STARTUP 文件。

在检查上电复位条件时、最后一条"else"语句应涵盖 CPU 复位是由软件引起的情况。 人们会在这里看到一个"用户代码开始"块、但没有。 它仅在关闭"其他"后位于方括号后面。

以下是 我所指的代码部分:

/* CPU 自检完成导致的 CPU 复位*/
否则、如果((stcREG->STCGSTAT & 0x1U)== 0x1U)
{
/*设置自检失败标志*/
if ((stcREG->STCGSTAT & 0x2U)== 0x2U)
{
/*调用 CPU 自检故障处理程序*/
cpuSelfTestFae();
}
/*成功完成 CPU 自检*/
其他
{
/*清除 STC 全局状态标志*/
stcREG->STCGSTAT = 0x1U;

/*在 CPU STC 完成后继续启动序列*/
fterSTC();
}
}
/*软件写入 CPU 复位位引起的 CPU 复位*/
其他
{
/*在此处添加自定义例程以处理软件导致 CPU 复位的情况*/
}
/*用户代码开始(21)*/*
用户代码结束*/

}
/*SAFETYMCUSW 139 S MR:13.7 "硬件状态位读取检查"*/
否则((SYS_EXception & SW_RESET)!= 0U)
{
/*由于软件复位导致的复位。
添加用户代码以处理软件复位。 * 

我的假定是"/*用户代码 begin (21)*/应该位于其上面的"else"语句中,否则在从 HALCoGen 生成代码时,任何用户编写的代码都将被删除。

感谢您花时间了解这一点!

此致、

米哈伊尔

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

    您好、 Mihail、

    是的, “/*USER CODE BEGIN (21)*/”应该位于 else 语句中,用于插入用户代码。 感谢您指出此问题。