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:SafeTI 诊断库-启动

Guru**** 2606725 points
Other Parts Discussed in Thread: LAUNCHXL2-TMS57012, TMS570LS1227, TMS570LS1224, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/750458/tms570ls1224-safeti-diagnostic-library---start-up

器件型号:TMS570LS1224
主题中讨论的其他器件:LAUNCHXL2-TMS57012TMS570LS1227HALCOGEN

尊敬的专家:
我需要您在 SafeTI 诊断库版本2.4.0方面的帮助。 我浏览了文档并部分了解了代码、我有一些想法和问题。 请澄清我是否有问题并给我一些答案。

1.能否在商业项目(.lib 文件)中使用 SafeTI 诊断库?

2.在 CCS 中、我打开了工程(build_safeTILib 文件夹)。 构建配置很少(具体取决于目标)、但此项目为空... 因此、我不会低估我可以在这里做什么。 这些配置之间有何差异?

在 CCS 中、我导入了演示应用程序(sl_TMS570LS1227_Noos)。能否将此演示与带有 LAUNCHXL2-TMS57012的 TMS570LS1224搭配使用?

4.堆栈大小。 在 sl_config.h 文件中、有针对堆栈大小(~6KB)定义的变量。
另一方面、我的项目首选项堆栈大小= 0x800 (2kB)。 如果我在项目设置中增大此值、或者不需要这样做(链接器/编译器将自动执行此操作)。

5.在 sys_startup.c 中,有可能进行一些更改(安全诊断的范围)。 问题是、我们是否应该使我们不想在项目中使用的外设的安全诊断? 或者、如果它被关闭(外设、时钟等)并且它不需要诊断(即使在启动时也是如此)

6.在 sys_startup.c 的第1104行中有_TI_auto_init ();
之后进行了一些测试、在第1176行中、再次出现了__TI_auto_init()。 是不是错?

7.在 app_main_Noos.c (main)中、我们可以定期使用一些诊断功能。 这种做法的随意含义是什么?
例如、如果 APP 中的主循环= 10ms、我们是否应该每10ms 执行一次诊断?
如果不是、应该多久执行一次?

8.我想调试 LAUNCHXL2-TMS57012上的演示项目。 但在构建过程中会出现问题。 请帮帮我。

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

    您好、Michal、

    我将尝试回答您的一些问题、并将剩下的问题交给软件团队处理。 请参阅下面嵌入的通信内容。

    1.能否在商业项目(.lib 文件)中使用 SafeTI 诊断库?

    >> SafeTI 诊断库(SDL)的使用受软件许可协议和 SafeTI NDA 的约束。  如果您在默认的"C:\ti"文件夹下安装了 SDL、则可以在 C:\Hercules \SafeTI Diagnostic Library\2.4.0\docs 文件夹下找到软件许可协议。

    2.在 CCS 中、我打开了工程(build_safeTILib 文件夹)。 构建配置很少(具体取决于目标)、但此项目为空... 因此、我不会低估我可以在这里做什么。 这些配置之间有何差异?

    >> Build__*文件夹下的 CCS 项目用于构建与所选目标器件配合使用的库。

    在 CCS 中、我导入了演示应用程序(sl_TMS570LS1227_Noos)。能否 将此演示与带有 LAUNCHXL2-TMS57012的 TMS570LS1224搭配使用

    >>是的、您可以在 TMS570LS12x launchpad 上使用此演示应用。

    4.堆栈大小。 在 sl_config.h 文件中、有针对堆栈大小(~6KB)定义的变量。
    另一方面、我的项目首选项堆栈大小= 0x800 (2kB)。 如果我在项目设置中增大此值、或者不需要这样做(链接器/编译器将自动执行此操作)。

    >>您需要根据计划在 C 代码中使用的局部变量、数组等来定义自己代码项目的栈大小。

    5.在 sys_startup.c 中,有可能进行一些更改(安全诊断的范围)。 问题是、我们是否应该使我们不想在项目中使用的外设的安全诊断? 或者、如果它被关闭(外设、时钟等)并且它不需要诊断(即使在启动时也是如此)

    >>您不必为您不打算在应用中使用的模块启用诊断。

    6.在 sys_startup.c 的第1104行中有_TI_auto_init ();
    之后进行了一些测试、在第1176行中、再次出现了__TI_auto_init()。 是不是错?

    >>推迟到软件团队处理。

    7.在 app_main_Noos.c (main)中、我们可以定期使用一些诊断功能。 这种做法的随意含义是什么?
    例如、如果 APP 中的主循环= 10ms、我们是否应该每10ms 执行一次诊断?
    如果不是、应该多久执行一次?

    >>这取决于您的应用所需的安全完整性。 TMS570LS12x 安全手册描述了应该定期运行的软件诊断测试。

    8.我想调试 LAUNCHXL2-TMS57012上的演示项目。 但在构建过程中会出现问题。 请帮帮我。

    >>您似乎没有包含正确的链接器命令文件。 这些符号都在 C:\ti\Hercules \SafeTI Diagnostic Library\2.4.0\demo_app\HALCoGen\TMS570LS1227_Noos\source 文件夹下的 sys_link.cmd 文件中定义。

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

    Sunil、  

    感谢你的答复。 我有一些 make/其他问题。

    ad.6 >>我仍在等待回答。

    ad.7 >>我知道安全手册描述了应该定期运行的软件诊断测试。 我的问题是、"定期"是什么意思? 每循环(例如100ms)或每小时/每天进行诊断测试是否合适? 我的意思是、根据 ISO26262等标准、定期诊断测试是否有任何限制?

    ad.8 >>您说得对,链接器文件被从编译中排除:)
    目前我还有另一个问题。 首先、我想调试_c_int00 (是否可能?)
    我已更改'run to symbol'(在项目首选项->调试->自动运行和启动选项->运行至 symbol = c_int00中)、然后启动调试会话、sys_startup.c 已运行。 但不幸的是、它不是我所期望的文件。 我在下面的屏幕中标记了该文件的路径(红色矩形)。 在 Project Explorer 中、一切看起来都很好。 如何解决?

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

    [报价]ad.6 >>我仍在等待回答。

    这是一个错误、 在使用全局变量之前、只需要调用一次_TI_auto_init。

    [引用]ad.7 >>我知道安全手册描述了应该定期运行的软件诊断测试。 我的问题是、"定期"是什么意思? 每循环(例如100ms)或每小时/每天进行诊断测试是否合适? 我是说、根据 ISO26262等标准、是否有任何定期诊断测试的限制?[/QUERP]

    我将把这推迟到 Sunil。

    [引用]ad.8 >>您说得对,链接器文件被排除在构建之外:)
    目前我还有另一个问题。 首先、我想调试_c_int00 (是否可能?)
    我已更改'run to symbol'(在项目首选项->调试->自动运行和启动选项->运行至 symbol = c_int00中)、然后启动调试会话、sys_startup.c 已运行。 但不幸的是、它不是我所期望的文件。 我在下面的屏幕中标记了该文件的路径(红色矩形)。 在 Project Explorer 中、一切看起来都很好。 如何解决?[/QUERT]

    我以前见过此问题、但不知道如何解决。 您能否尝试仅为您的特定器件安装支持的安全诊断库?

    谢谢、
    Girish

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

    广告 6老实说,我对演示应用程序中的错误有点失望:)
    广告 7 Sunil、可以回答吗?
    广告 8我已重新安装 lib (这次仅用于我的器件)、仍然是一个问题。 我只能留下一个 HallCoGen 文件夹(TMS570LS1227_Noos)并手动删除其他文件夹(对于 IAR 等)。 现在、我可以调试正确的 sys_startup.c 文件。

    根据问题5、还有一件事。 在 sys_startup.c 源文件中执行安全诊断之前或之后,我应该使用 pmmInit()函数关闭未使用的电源域吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    米歇尔

    ad.7 >>我知道安全手册描述了应该定期运行的软件诊断测试。 我的问题是、"定期"是什么意思? 每循环(例如100ms)或每小时/每天进行诊断测试是否合适? 我的意思是、根据 ISO26262等标准、定期诊断测试是否有任何限制?

    >>功能安全标准定义了与检测可能导致系统进入不安全状态的故障相关的特定时序参数。

    这些时序完全由应用设计人员(或最终用户)确定。 安全手册确定了在"正常运行"期间检测没有在线诊断的故障所需的所有基于软件的诊断。

    此致、Sunil