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.
您好!
我在 TCI6638K2K 中学习了 DDR3、但结果出乎意料。 我在 DSP 多核上下文中进行了两种类型的测试、运行和不运行 Linux 操作系统。
如果没有 Linux、就没有问题了、内核之间的带宽相当共享、最大带宽为1600Mb/s
使用 Linux 时、内核之间的带宽不是公平共享的、最大带宽为100Mb/s 该带宽对于并行的1、2、...、8个 DSP 内核是相同的。
我在器件树中看到、Linux 未使用 DDR3A、但在这种情况下、获得的结果毫无意义。
有人可以帮助我吗?
此致、
我使用:
TI-processor-sdk-rtos-k2hk evm-05.02.00.10
此致、
François μ A
从.cmc 文件的映射将粘贴到此帖子的末尾。 我为 DDR3选择了此范围:O = 0xB0000000 l = 0x18000000、因为它是 DSP 的保留区域(Linux 不能通过 mmap 访问此区域)。 此外、我同意您的观点、即 Linux 仅使用 DDR3A、但不在之前定义的范围内。
L2包含数据并用作存储器(而不是高速缓存)。
我不使用 IPC。
我知道我可以将 DDR3B 用于 DSP、但我想看到 ARM 对 DDR3中的 DSP 的影响、这就是我将 DDR3A 用于 DSP CorePac 和 ARM CorePac 的原因。 我不理解的是、DDR3A 中的 DSP 性能下降会导致 Linux OS。
您是否需要更多信息来帮助我?
存储器
{
LOCAL_L2_SRAM: O = 0x00800000 l = 0x00100000 // 1MB 本地 L2/SRAM */
DDR3: O = 0xB0000000 l = 0x18000000 // DDR3 SDRAM */
备份: O = 0xFFFFFF0000 l = 0x0000C000 //备份可由 ARM 读取*/
SYNC_DSP: O = 0xFFFFFFD000 l = 0x00001000 // 4KB 用于 DSP 内核同步*/
DSP_FLAG: O = 0xFFFFFFE000 l = 0x00001000 //针对 ARM 和 DSP 内核同步的4KB DSP 标志*
ARM_FLAG: O = 0xFFFFFF000 l = 0x00001000 //针对 ARM 和 DSP 内核同步的4KB ARM 标志*
}
部分
{
.text > local_L2_SRAM
.stack > local_L2_SRAM
.bss > local_L2_SRAM
.cio > local_L2_SRAM
.const > LOCAL_L2_SRAM
.data > local_L2_SRAM
.switch > LOCAL_L2_SRAM
.sysmem > local_L2_SRAM
.far > local_L2_SRAM
.args > local_L2_SRAM
.ppdinfo > local_L2_SRAM
.ppdata > local_L2_SRAM
/* COFF 段*/
.pinit > local_L2_SRAM
.cinit > local_L2_SRAM
/* EABI SECTIONS *
binit > local_L2_SRAM
init_array > local_L2_SRAM
.neardata > local_L2_SRAM
.fardata > local_L2_SRAM
.rodata > local_L2_SRAM
.c6xabi.exidx > local_L2_SRAM
.c6xabi.extab > local_L2_SRAM
/*项目特定部分*/
.l2sram > local_L2_SRAM
.dr > DDR3
备份 > 备份
SYNC_DSP > SYNC_DSP
.dsp_flag > DSP_FLAG
.arm_FLAG > arm_FLAG
.cmd**
否则、
我在 Linux 下使用此设备树:
/{
保留存储器{
cmem_block_mem_0:cmem_block_mem@830000000{
REG =<0x00000008 0x30000000 0x00000000 0x18000000>;
无地图;
状态="正常";
};
};
cmem{
兼容="ti、cmem";
#address-cells =<1>;
#size-cells =<0>;
#pool-size-cells =<2>;
状态="正常";
cmem_block_0:cmem_block@0{
reg =<0>;
memory-region =<&cmem_block_mem_0>;
cmem-buf-pools=<1 0x00000000 0x18000000>;
};
cmem_block_1:cmem_block@1{
reg =<1>;
SRAM =<&SRAM_cmem>;
};
};
};
msm_ram{.msm_ram}
sRAM_cmem:sRAM-cmem@100000{
REG =<0x100000 0x480000>;
};
};
此致、
Francois、
您的结果毫无意义。 您能否共享您的 Linux 引导日志以及测试 性能的测试代码?
此致、
周德伟
您好、Clement、
感谢您的介绍。 我现在将关闭此问题。 当您有更多数据时、请提交一个新数据。
雷克斯
大家好、
我们发现了问题、来自 uboot 序列、该序列在所有 DSP 上的启动时预加载映像。 通过在 uboot 序列中移除这些预加载、或者在测试解决性能下降问题之前复位 DSP。
感谢你能抽出时间。
此致、
François μ A
大家好、Francois、
感谢您将发现结果发布回我们的网站。 我将关闭该问题。
雷克斯