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.

[参考译文] TMS320F28379D:需要有关将 CLA 与 FreeRTOS 工程连接的建议

Guru**** 2427060 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1546677/tms320f28379d-need-advice-on-interfacing-cla-with-freertos-project

部件号:TMS320F28379D


工具/软件:

您好团队:

我正在使用 TMS320F28379D 微控制器。 我正在使用一对集线站+控制卡。 我使用了 FreeRTOS 的示例代码来开发我的工程。 我创建了几个使用 I2C 和 SPI、GPIO 等的任务、它们按预期正常运行。 下一步、我需要将 CLA 与 Timer0 连接。 Timer0 将每秒发出一个中断、并且 CLA 配置为这种中断源。 只有一个 CLA 任务。 每当中断到来时、CLA 将发送 16 个脉冲的突发以及 GPIO 组上的数据 (GPIO48 至 GPIO55 为 8 位数据、GPIO56 和 GPIO57 为两个时钟、靠近 3MHz)。 我面临的问题是、配置 CLA 和 MEMCFG(添加 CLA 后会自动进入 SYSCFG 工具)后、所有其他任务都会停止工作。 应该由 CLA 切换的 GPIO 也不工作。 当我进行调试时、我看到它会导致陷阱。 我从一个示例 CLA 代码中获取了参考、并根据该示例进行了配置。 此外、我修改了链接器脚本。 我在“Application"文件夹“文件夹中添加了一个包含 main.c 文件的文件“dac_cla.cla"。“。  “DAC_CLA.CLA"文件“文件包含用于切换 GPIO 组的函数。

__中断无效 Cla1Task1 (void)
   
  HWREG (GPIODATB_BASE)|= 0xFC00FFFF
  uint8_t 索引= 1
  uint32_t regVal = 0x0

   while(索引<= 16)
  {
    regVal =索引<< 16
    HWREG (GPIODATB_BASE)= regVal;
    HWREG (GPIOTGLB_BASE)= 0x3000000
    HWREG (GPIOTGLB_BASE)= 0x3000000

    Index++;
  }

我确定我错过了配置内容或配置内容。 您能帮助我了解一下这方面的线索吗? 我附上了几个屏幕截图和链接器文件(扩展名更改为.txt 以进行上传)。

CLA 配置

MEMCFG

e2e.ti.com/.../2500.linker_5F00_file.txt

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

    您好、

    似乎存在存储器分配问题 (MEMCFG)。 我在命令的第 102 行中看到、FreeRTOS 堆栈被分配到与 CLA 数据/程序存储器相同的部分。 可以将 CLA 存储器分配移动到不同的 LSRAM、以消除 FreeRTOS 干扰 CLA 的可能性。

    您看到调试时代码卡住了吗?

    此致、

    Ozino