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.

[参考译文] AM2732-Q1:如何将数据分配给特定的存储器空间?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1481807/am2732-q1-how-to-specify-the-allocation-of-data-to-a-certain-memory-space

器件型号:AM2732-Q1
主题中讨论的其他器件:AWR2243AM2732

工具与软件:

您好!

在使用 AM2732+2*AWR2243的开发过程中,我经常遇到 L2存储空间不足的情况,迫使我严格优化和简化我的代码。 但是、当我检查映射文件时、我注意到在其他内存区域中仍有可用空间。

您能说明如何将特定数据段分配到指定的存储器空间吗? 此分配应遵循哪些规则? 例如、我想将一个结构数据段分配给 R5F_TCMA、R5F_TCMB 或 HWA_RAM、以减少 L2的占用。

MEMORY CONFIGURATION

name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
R5F_VECS 00000000 00000040 00000040 00000000 RWIX
R5F_TCMA 00000040 00003fc0 00000000 00003fc0 RWIX
R5F_TCMB 00080000 00004000 00000000 00004000 RWIX
SBL_RESERVED_L2_RAM 10200000 00020000 00000000 00020000 RW
MSS_L2 10220000 000c8000 000a24e0 00025b20 RWIX
HWA_RAM 82000000 00020000 00000000 00020000 RW
DSS_L3 88000000 00390000 00000000 00390000 RWIX
RTOS_NORTOS_IPC_SHM_M c5000000 00001f40 00001c80 000002c0 RWIX

请在这方面提供一些帮助。

谢谢你。

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

    您好、里程数:

    您可以使用__attribute__()与匹配的 linker.cmd 组合来实现:

    在您的应用代码中、

    /*必须在 linker.cmd 中定义.dataSec */
    uint8_t gDataBuf[data_BUF_size]__attribute__((aligned (128)、section (".dataSec"));

    在 linker.cmd 中、

    部分中)

    ...

    .dataSec:{
    }> R5F_TCMA

    ...

    }

    此致、

    Ming

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

    当然可以、在这些空间中、我可以使用哪个空间来存储我自己定义的结构数据?

    DSS_L2 00800000 00060000 0005f139 00000ec7 RWIX
    HWA_RAM 82000000 00020000 00000000 00020000 RWIX
    DSS_L3_RSV 88000000 00008000 00000000 00008000 RWIX
    DSS_L3 88008000 00388000 00386ca8 00001358 RWIX
    RTOS_NORTOS_IPC_SHM_M c5000000 00001f40 00001c80 000002c0 RWIX

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

    如果我将一些数据结构放入 L3中、编译的 bin 文件将变大。 它已经从最初的470KB 增加到目前的3812kB。

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

    	uint8_t arrayToAntMapping[48]   __attribute__((aligned(1)))=	{23, 15, 22, 14, 21, 13, 20, 12,19, 11, 47, 7, 46, 6,45, 5,44, 4, 43, 3,
    																				16,8,40,0,
    																				17,9,41,1,
    																				24,
    																				18,10,42,2,
    																				25,
    																				32,
    																				26,
    																				33,
    																				31,30,29,28,27,
    																				34,
    																				39,38,37,36,35};
    
    				uint8_t mbazimSamplesind[20]   __attribute__((aligned(1)))=   {0,2,4,6,16,18,24,26,30,32,35,36,39,40,51,52,59,60,65,66};
    				uint8_t sum[47]  __attribute__((aligned(1)))={1,3,5,7,8,9,10,11,12,13,14,15,17,19,20,21,22,23,25,27,28,29,31,33,34,37,38,41,42,43,44,45,46,47,48,49,50,53,54,55,56,57,58,61,62,63,64};
    				uint8_t sum1[47]  __attribute__((aligned(1)))={11,10,10,12,6,10,4,10,4,12,4,12,10,10,6,12,6,12,14,14,8,10,10,10,11,12,13,16,17,16,17,14,15,14,15,14,15,16,17,16,17,16,17,18,19,18,19};
    				uint8_t sum2[47]  __attribute__((aligned(1)))={10,9,8,9,4,7,3,6,2,7,1,6,5,4,2,5,1,4,7,6,1,3,2,1,1,1,1,5,5,4,4,3,3,2,2,1,1,3,3,2,2,1,1,2,2,1,1};
    
    #pragma DATA_ALIGN(sum, 1U);
    #pragma DATA_SECTION(sum, ".l3ram");
    #pragma DATA_ALIGN(sum1, 1U);
    #pragma DATA_SECTION(sum1, ".l3ram");
    #pragma DATA_ALIGN(sum2, 1U);
    #pragma DATA_SECTION(sum2, ".l3ram");
    #pragma DATA_ALIGN(mbazimSamplesind, 1U);
    #pragma DATA_SECTION(mbazimSamplesind, ".l3ram");
    #pragma DATA_ALIGN(arrayToAntMapping, 1U);
    #pragma DATA_SECTION(arrayToAntMapping, ".l3ram");
    

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

    尊敬的 Ming:

      另一个问题、例如、我有一个占用1024字节空间的数组。 当我从 L2空间切换到 L3空间时、我注意到 L3中的占用增加了1024字节、但 L2中的空间不会减少1024字节、仅减少了268字节。 为什么会这样?

    此致、

    英里

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

    您好、里程数:

    尝试删除  __attribute__((aligned (1)))及所有#pragma DATA_ALIGN。

    此致