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.

关于Openem

Other Parts Discussed in Thread: SYSBIOS

大家好,我使用的是C6678处理器,最近在研究openem_1_0_0_2,其中有一个Example_0的demo。

本身这个demo是针对FFT的,我想把它改为对图片进行处理。

现在是这样的一个问题。

我只分一个任务处理数据,具体没有做任何操作,只是读入,按照openem的流程运行一遍,最后再保存。

读入图片后,在mySourceJob时,将图片存入event中,放入队列,此时保存文件,图片是正确的。

进入myprocessJob后,读取event的buffer,再次保存数据,此时的文件已经不对,具体表现为图片的最下方没有数据,是黑色的。

此外,如果我在程序的最后再次保存processJob中的数据,有时候会和之前保存的文件也不一样,也是出现原先有图的地方,变为黑色没有数据。

请问这是什么原因造成的?

我应该如何解决呢?

谢谢~~

  • 看起来像是buffer溢出,增大heap段试试。

  • 谢谢Zhan Xiang!

    原先demo的cfg文件中,没有任何关于BIOS中heap或者Memory的设置,所以我添加了三行代码如下:

    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    BIOS.heapSection = "DDR3";
    BIOS.heapSize = 40960;

    想将默认4K的heap设置为40960.

    但是在这种情况下,openem在调用my_init函数进行内存初始化时,会卡住不再继续运行,如下图所示:

    核0会在ti_em_init_global时卡住,不再继续执行,而其他核则在等待核0初始化结束。

    如果把这三行代码去掉,就可以继续执行,不会出现这个问题。

    请问这种情况下应该怎么办呢?