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.

[参考译文] CCS/TMS320F28379D:F2837xD_GlobalVariableDefs.c =>为什么针对 reg´s 实例的 DATA_SECTION pragma? (例如、volatile struct adc_regs AdcaRegs)

Guru**** 2337880 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/602591/ccs-tms320f28379d-f2837xd_globalvariabledefs-c-why-data_section-pragma-for-reg-s-instances-e-g-volatile-struct-adc_regs-adcaregs

器件型号:TMS320F28379D
Thread 中讨论的其他器件:controlSUITEC2000WARE

工具/软件:Code Composer Studio

大家好、

我´m LAUNCHXL-320F2879D 设置项目、并收到警告、即 已创建 F2837xD_GlobalVariableDefs.c 文件中寄存器实例的 DATA_SECTION pragma
而不具有段规格。
看一下.cmd 是正确的、但为什么需要"to pragma "实例?

例如:

#pragma DATA_SECTION ("AdcaRegsFile")
其他
#pragma DATA_SECTION (AdcaRegs、"AdcRegsFile");
#endif
volatile struct adc_regs AdcaRegs;

为什么纯粹的瞬间是不够的?

此致、
Jasson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好
    此结构的目的是控制 MCU 的外设。 通过将不同的值设置为 MCU 存储器中的特殊地址-外设帧来控制外设。 例如、地址0x1000控制 ADC、而0x2000控制 ePWM (实际上、其他地址控制这些外设、例如、我只写它)。

    因此、您必须写入这些地址。 但是、如果只创建 AdcRegs 的实例、链接器会将其放置在所需的任何位置、任何空空间中。 因此、您必须在 CMD 文件中创建一个特殊段、将该段放置在特殊的存储器位置、然后必须使用 pragma 将 AdcRegs 实例放入该段。

    关于警告:您应该向项目中添加一个 CMD 文件。 在 controlSUITE 或示例中搜索这个。 它必须被称为"F28377D_headers_NONBIOS"。 CMD"(如果不使用 BIOS;在其他情况下搜索... Headers_BIOS。 CMD)。 此文件包含段放置在 MCU 存储器的正确部分中。

    希望这将有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ...愚蠢的我。 几个月前、我开始使用单核时、我想知道这件事到底是不是每个外设都有驱动程序、还是必须采用寄存器访问方法... 因此、当然必须将实例限定为硬件的地址。

    是的、我找到了.DMC 文件、这要归功于您的提示:
    C:\ti\controlSUITE\device_support\F2837xD\V210\F2837xD_headers\cmd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ^^我指的是.cmd 文件:)
    party = Run.DMC (FUNK_OVERLOAD);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很高兴能为你提供帮助。
    实际上、有一些 MCU 的驱动器。 例如、对于 C28+M3双核架构上的 Cortex 器件、M3端有一个完美的外设库。
    但 C28外设的驱动程序是... 差=)
    无论如何、我已经习惯操作寄存器、所以没关系。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jasson、您好!很高兴听到您的问题得到了解答。
    您好、Disona–感谢您的回答。

    如果您不知道、F2837x 和 F28004x 器件在 C2000Ware 包中提供了相关的驱动程序库。
    www.ti.com/.../c2000ware

    安装 C2000Ware 后、可以在此目录中找到驱动程序库:
    C:\ti\c2000\C2000Ware_1_00_00_00\driverlib\

    感谢您在 E2E 论坛上提供反馈和开展活动。 我们对此表示赞赏。


    此致、
    Elizabeth