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.

[参考译文] 编译器/TM4C1294KCPDT:在重置时保留一些RAM变量,使其不会初始化为0

Guru**** 2542040 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/592917/compiler-tm4c1294kcpdt-preserve-some-ram-variables-from-being-initialised-to-0-at-reset

零件号:TM4C1294KCPDT

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

大家好

我需要将一些RAM变量值从初始化保存到0,理想情况下是在固定位置,似乎有些处理器可以使用# pragma NOINIT和#pragma location来执行此操作。 我尝试过,但似乎变量被忽略了。

我的问题是:

-我正在使用的处理器是否可以。

如果是,请告诉我操作步骤,我是否需要更改链接程序文件?

提前感谢!

Ping

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否需要它们持久或只是未初始化? 关机时RAM将丢失其内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ping Wang 说:
    我所用的处理器是否可用。[/QUOT]

    我们的编译器专家缺乏回答该问题的知识。

    Ping wang 说:
    我是否需要更改链接器文件?

    Ping Wang 说:
    我尝试过,但似乎忽略了变量。[/QUOT]

    您认为哪些因素会导致您得出这一结论?  您是如何看待它的?

    谢谢,此致,

    -George

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

    你好,George

    感谢您的回复,下面的行是我对名为table的全局变量的定义,我打算在重置时保留其值,最好也保留在固定位置。

    #pragma NOINIT (表)
    UINT32_t表;

    在调试模式下运行整个程序时,该表被标识为未知变量。

    此致!

    Ping

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

    感谢您的回复,我只需要在重置之间保留它们,不要介意在重启后丢失它们。

    有什么建议?

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

    您是如何进行重置的?

    您是否在使用C++?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,通过调用SystlReset()进行软重置。
    希望在bootloader和应用程序之间保留一些内容,可能需要使用EEPROM。

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

    [报价用户="Ping Wang"]

    #pragma NOINIT (表)
    UINT32_t表;

    在调试模式下运行整个程序时,该表被标识为未知变量。

    [/引述]

    您的程序是否使用过此变量?  

    谢谢,此致,

    -George

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

    感谢提醒,我最初没有使用变量。 现在我给它一个价值,它得到了承认。 看起来很有希望。 需要尝试是否在重置之间保留该值。

    此致!

    Ping
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,George
    谢谢,我现在就开始工作了,以下行将变量表保留在指定位置,并保留其值以避免重置。

    #pragma NOINIT (表)
    #pragma location = 0x2000万
    UINT32_t表;

    Ping