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.

关于STK_C6657中MEMORY_TEST的使用

各位工程师您们好,在学习使用6657时遇到下列问题:

TMS320C6657LS、CCS5.4

    源程序编译确实没错,但是当我把里面的所有代码赋值出来去掉一些我不需要的代码:比如判断DSP型号之类的语句和多余型号的语句。

    然后编译总是不对,具体如下一些:

但是我包含的文件好像确实包含了#include "mem_test_get_unused_L2_address.h"这类似的而且ctrl单击可以打开、还有很多包含的文件夹都和源程序差不多,我是不是少了什么步骤?

谢谢!

  • 还有关于STK_C6657例程里面的MEMORY_performace里面的EDMA的edma_Throughput_Test等函数操作前的下面操作我不理解:

    /* Initialize data buffers */
    for (loopIndex = 0; loopIndex < uiACount*uiBCount/4; loopIndex++) {
    srcBuff[loopIndex] = dst+loopIndex*4;//这里为什么要把源缓冲区初始化为dst+loopIndex*4?
    dstBuff[loopIndex] = 0xaaaaaaaa;//这里的目的缓冲区数值为什么又要初始化为0xaaaaaaaa而不是0?
    }

    //Clear cache 为什么使用EDMA要先清除CACHE呢?
    CACHE_wbInvAllL1d(CACHE_WAIT);
    CACHE_wbInvAllL2(CACHE_WAIT);
    _mfence();//这个函数是什么意思?
    _mfence();

    谢谢。

  • 1 注意把判断芯片信号对应判断下面的代码一并删除,你的提示貌似你将判断删除,但是相应不是6657分支的代码没有删掉。如PA_PLL_CTL0的宏在6657中是没有的,所以如果把预定义宏代码删掉,这个PA_PLL_CTL0也要删掉。

    2 DMA中的地址及源数据的赋值是用来测试的一种方法,你可以根据应用修改;

    3 mfence语句加在这里是确保前面所有的指令执行完成,且相应的数据已经真正被刷新到对应的memory中。

  • 谢谢您的解答

        我是努力想把能看到的大部分不是6657分支的代码都删掉了——因为在我暂时只用C6657的情况下我看着内容太多有点不喜欢。但是好像在KeyStone_common.c等文件里面依然有还能多这样的分支,所以貌似我们在使用的时候必须严格按照例子所给的格式和步骤进行吗?不然我们也不能随便修改KeyStone_common.c类似的文件里面的内容。

        还有在程序中的//Clear cache部分代码在这里是不是多余的?我觉得它对EDMA的操作并不会产生任何影响啊?

  • 请问下你这个问题是怎么解决的啊??我也遇到这个问题了。

x 出现错误。请重试或与管理员联系。