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.

[参考译文] 编译器/AWR1843:为什么 C6000 DSP 编译器在数组定义后添加4个字节

Guru**** 2988510 points

Other Parts Discussed in Thread: AWR1843

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/940638/compiler-awr1843-why-c6000-dsp-compiler-adds-4-bytes-after-an-array-definition

器件型号:AWR1843

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

你好、冠军、
    我的客户希望在 AWR1843中的 DSS (C674x)和 MSS (R4F)中分配共享阵列。 他们使用的编译器为:
DSS:TI C6000编译器 v8.3.1
MSS:TI v16.9.6 LTS
    数组定义代码如下所示:

在 MSS 命令中

在 DSS:中

编译 MSS 和 DSS 后、他们发现 DSS 在数组 au8DidCF0B 之后再添加4个字节、这会导致以下数组地址不匹配。 在 MSS 中没有此类问题。

MSS 地图:

DSS 映射:

请帮助我检查哪些原因可能导致此问题?

谢谢、
Adam

MSS HSRAM空间分配:

DSS HSRAM空间分配:

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

    差异在于数组的对齐方式。  在 C6000上、一个数组的最小对齐方式为8字节。  由于 DATA_ALIGN 请求4个字节的更低对齐、因此会忽略它。  如果可行、请将所有 DATA_ALIGN 更改为8。  这将浪费几个字节的存储器。  但它应提供您期望的结果。

    谢谢、此致、

    乔治

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

    您好、George、
       感谢您的回复。 我现在很清楚。

    此致、

    Adam