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.

[参考译文] TMS320F280025C:RAM 初始化

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1172779/tms320f280025c-ram-init

器件型号:TMS320F280025C
主题中讨论的其他器件:C2000WARE

您好,

我已经编写了一个用于刷写代码的自定义引导加载程序。 引导加载程序在闪存写入后复位、并跳转到应用程序起始地址。  我已使用 WD 重置来重置控制器。

我认为,WD 重置不会清除 RAM。 我想在 WD 复位后清除 RAM,如何操作?

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

    您好 Yogini、

    参考手册(第119页)中的第3.11.1.8节讨论了这方面的更多细节、但基本上您可以使用"MemCfg_initSecions (uint32_t ramSecitions)"函数来初始化传入的 RAM 部分(您可以在第1181行的 memcfg.h 头文件中检查这些部分的命名)、 然后使用"bool MemCfg_getInitStatus (uint32_t ramSecitions)"检查清除的状态(在清除时写入存储器将导致不正确的读取/写入和初始化)。

    此致、

    Omer Amir

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

    感谢您的回复。

    我应该在何处调用此函数?  

    在要刷写的应用程序的 main()中?

    或在.asm 中?

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

    Yogini、

    您应该在 main()函数中调用此函数。  请参阅 C2000Ware 示例以查看实现:

    C:/ti/c2000/C2000Ware_4_02_00_00/driverlib/f28002x/examples/memcfg/memcfg_ex1_error_handling.c

    此致、Santosh

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

    但是、当从 C 环境调用时、栈或全局初始化变量会怎么样?

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

    您好 Stephan、

    我不确定您的问题是什么。 您是否在问、如果您使用栈或全局变量清除 RAM 部分会发生什么情况? 我认为该程序应该崩溃并遇到非法操作处理程序或类似问题、因为这是错误使用 RAM 清除函数。

    此致、

    Omer Amir

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

    没有什么真正的问题、我只想提一下、如果 OP 确实想要清除"All" RAM、他应该在调用 c_init 之前从 ASM 中执行该操作。

    否则、栈不会被清除、全局变量可能不会获得其初始值。

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

    好的、听起来不错。  如果没有其他问题、我将关闭此主题。

    此致、

    Omer Amir

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

    如何从.asm 调用它?

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

    您好 Yogini、

    我相信如果我理解 Stephan 的说法、他意味着如果你在汇编语言中制作程序、在调用 c_init 之前、你 首先调用 MemCfg_initSecions 函数。 这通常是更安全的方法。 您应该能够在 c_init (程序开始)之前构建代码以调用函数。

    此致、

    Omer Amir