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.

[参考译文] TMS320F28388D:全局变量

Guru**** 2609955 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/970659/tms320f28388d-global-variables

器件型号:TMS320F28388D

您好!

我使用的是 TMS320F28388D 控制器、C2000编译器18.3.1.LTS。

我想减少在 ROM 模型中执行自动初始化所需的时间。

我们是否可以减少下面这些变量的全局变量的自动初始化,如果是的话?

例如:

#pragma DATA_SECTION (NmiIntertRegs、"NmiIntertRegsFile");
volatile struct NMI_INTRUPT_regs NmiIntraptRegs;

此致、

Nagesh

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

    您好、Nagesh、

    请参阅此链接以了解该选项。

    此致、

    Vivek Singh

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

    您好、Vivek、  

    我使用的是编译器版本:TI v18.1.3.LTS

    编译器标志如下所示

    -v28 -ml -mt --float_support=fpu32 -off --include_path="C:/Users/E537053/Documents/GBL_DCPBA/GBL_F28388D --include_path="C:/ti/ti-cgt-c2000_18.1.3.LTS/include --advice:performance=all -g --diag_warning=225 --diag_wrap=off --display_error_number --abi_func_init=on --abi_ips=zero-abi-off

    但是在编译之后、我确实会收到一条警告、因为-zero_init=off 会被忽略、这可能会导致编译器忽略此标志。


    >>警告:编译器选项无效--zero_init=off (忽略)
    警告#10063-D:指定了"_c_int00"以外的入口点符号:"code_start"
    完成的构建目标:"GBL_F28388D.Out"

    谢谢、

    Nagesh

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

    Nagesh、

    将其移至编译器团队以提供帮助。

    此致、

    Vivek Singh

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

    您好、Vivek、  

    谢谢、它是一个链接器命令标志、我将其移动到那里、然后发出警告。

    此外、我还想知道我能否更新 coestartbranch.asm 文件以禁用将通过 GPIO 完成的外部看门狗。

    谢谢、

    Nagesh

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

    您好、Nagesh、

    是的、您可以根据应用需求更新该代码。 它只是应用程序代码的一部分。 我们刚才提供了基本代码供参考。

    此致、

    Vivek Singh

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

    您好、Vivek、  

    感谢您的回答。

    我正在浏览 f2838x_codestartbranch.asm。对于_c_int00、它会显示 boot._asm 文件、您可以告诉我在哪里可以找到 f2838x 的文件

    'LB _c_int00      ;分支至启动。_asm 在 RTS 库中'。

    此外、我还有一个需要在10ms 刷新的外部看门狗、因此我的问题是我是否修改 f2838x_codestartbranch.asm 的代码来切换任何 GPIO 以刷新我的外部看门狗。

    从第3点开始、如果自动初始化变量花费的时间超过10ms、我们可以在自动初始化之间切换任何 GPIO 吗?

    谢谢、

    Nagesh

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

    Nagesh、

    如注释中所述、它是 TI 提供的库的一部分。 我不确定是否建议对其进行更改。 我必须将其提交给我们的编译器团队、以获取他们的建议。  

    此致

    Vivek Singh

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

    Nagesh RK 说:
    -v28 -ml -mt --float_support=fpu32 -off --include_path="C:/Users/E537053/Documents/GBL_DCPBA/GBL_F28388D --include_path="C:/ti/ti-cgt-c2000_18.1.3.LTS/include --advice:performance=all -g --diag_warning=225 --diag_wrap=off --display_error_number --init_enabi=now_subsection=en_abi=out-abi_subsectionsection=out-out_abi=funion_subsections=out_abi=en_abi=out_subsection=

    请注意、不支持将 C2000编译器版本18.1.x.LTS 与 EABI (选项--abi=eabi)结合使用。  EABI 的支持从版本18.12.0.LTS 开始。   

    谢谢、此致、

    乔治

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

    关于链接器标志--zero_init=off,您可以说...

    Nagesh RK 说:
    它是一个链接器命令标志,我将其移动到那里,然后发出警告。

    我认为这意味着这个问题得到解决。

    谢谢、此致、

    乔治

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

    [引用用户="Nagesh RK"]

    请告诉我在哪里可以找到 f2838x 的这个文件

    'LB _c_int00      ;分支至启动。_asm 在 RTS 库中'。

    [/报价]

    函数_c_int00来自编译器随附的 RTS 库。  RTS 的源代码也是编译器的一部分。  如果您安装了 CCS,这里是源文件的典型位置...

    C:\ti\ccs1011\ccs\tools\compiler\ti-cgt-C2000_20.2.4.sps\lib\src\boot28.asm

    我认为这一答复可以解决本主题中的所有未决问题。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    感谢您的回答。

    更新 boot28.asm 文件还有一个问题

    我有一个需要在10ms 刷新的外部看门狗、所以我的问题是、我们是否可以修改 f2838x_codestartbranch.asm/boot28.asm 的代码、以便在全局变量自动初始化之间切换任何 GPIO 以刷新我的外部看门狗。

    从第3点开始、如果自动初始化变量花费的时间超过10ms、我们可以在自动初始化之间切换任何 GPIO 吗?

    谢谢、

    Nagesh

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

    尊敬的乔治:  

    我想我们的团队对此问题进行了讨论、TI 建议使用此选项、因为 TI 提供的闪存 API 库在18.1.3.LTS 中编译、这迫使我们按原样使用此编译器版本18.1.3.LTS 用于航天应用。

    请告诉我们这是否好。

    我们从 TI 购买了闪存 API 代码、他们建议不要修改闪存 API 代码中的任何内容、并且不要使用 TI 用于创建库的同一编译器。

    谢谢、

    Nagesh

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

    Nagesh、

    我们来自 TI 的专家将与贵公司的相关人员就编译器版本主题进行联系。  

    如果您对引导时间有任何进一步的疑问、请告知我们。

    此致、

    Vivek Singh

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

    您好、Vivek、  

     更新 boot28.asm 文件还有一个问题

    我有一个需要在10ms 刷新的外部看门狗、所以我的问题是、我们是否可以修改 f2838x_codestartbranch.asm/boot28.asm 的代码、以便在全局变量自动初始化之间切换任何 GPIO 以刷新我的外部看门狗。

    我基本上想在 boot28.asm 中添加汇编代码、以便在全局变量初始化期间切换 GPIO46。

    请告诉我我们是否可以将 GPIO46外设配置为输出并在自动初始化期间切换它。

    谢谢、

    Nagesh  

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

    Nagesh、

    根据 George 的回复、我想说、是的、您应该能够根据自己的需求对其进行更新。

    此致、

    Vivek Singh

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

    您好、Vivek、  

    您能为我提供编写汇编代码以切换 GPIO46的步骤吗?

    谢谢、

    Nagesh

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

    Nagesh、

    您只需编写一个简单的 C 代码、对其进行编译、然后使用生成的汇编代码即可。 您需要将 GPIO 引脚方向更改为输出、然后写入切换寄存器。

    此致、

    Vivek Singh