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.

[参考译文] TMS320F28377S:CLA 类型警告-#173D:无效类型转换

Guru**** 2482225 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/773674/tms320f28377s-cla-type-warning---173d-invalid-type-conversion

器件型号:TMS320F28377S

您好!

我正在尝试 使用 CLA 的程序。 我需要从 CLA 获取每个地址请求的数据 ROM 值。 我配置了两个变量、如下所示

uint32_t cla_input;//在 CPU 到 CLA 消息 RAM 中(这可以更改为 uint16_t、因为 CLA 透视图中的映射)

uint16_t CLA_output;//在 CLA 至 CPU 消息 RAM 中

uint32_t ROM_ADDRESS =  0x01001070U;// ROM 地址 (这可以更改为 uint16_t、作为 CLA 角度的映射)

我正在分配一个值、比如 CLA 数据 ROM 起始地址作为 CLA_INPUT (CLA_INPUT = ROM_ADDRESS;)和软件触发任务。 该任务写在下面、其中预期的功能是只读'CLA_INPUT '变量并将其视为 ROM 地址。 CLA 应从 ROM 地址读取该值并将该值存储到'cla_output'变量。 任务完成时、C28x 应将 CLA_OUTPUT 值读取为 uint16_t 数据。

_interrupt void claTask (void)

cla_output =*((uint16_t *) cla_input);

编译时、我收到警告  -#173D: 无效类型转换。

如何使用 OUT 警告来更改 CLA 任务代码?

我还可以在哪里找到 CLA 数据 ROM 存储器映射。 我在 TRM 的第3.9.3.2和3.9.3.4.2节中找到了一个存储器映射、但没有其他内容。  在 CLA 方面、确切的起始地址和结束地址是什么。 它是从0xF070到0xFFFF 吗?

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

    将32位值转换为指向16位值的指针时可能会发出警告。 如果你使 CLA_INPUT 成为 uint16_t、这可能会消失、但可能不会 我这么说只是因为 CLA 只有16位寻址。

    是的、CLA 数据 ROM 从0xF000变为0xFFFF。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我按照如下方式进行了修改、现在警告消失了

    _interrupt void claTask (void)



    cla_output =*((uintptr_t *) cla_input);