[资料分享] CCS调试dsp的一些经验

fish001   2019-9-8 15:43 楼主

  在编写DSP子函数时,你也许会使用一些变量,最好不要使用数据量较大的数组,因为DSP在运行子函数程序时,所涉及到的局部变量在内存中有一个临时存储区域,但是DSP不能识别这段区域中有没有别的程序段,这样很可能造成数组被中途截断,一部分数据出错或者程序运行出错。
       解决方法:
       1、直接定义全局变量,在主程序中分配确定的内存地址;
       2、使用指针传递变量,子函数中不要定义新变量;
       3、运用函数*UTIL_allocMem(Uint32size)在子函数中分配内存块。
// Allocatememory from the ad-hoc heap
void*UTIL_allocMem(Uint32 size)
{
    void *cPtr;
    Uint32 size_temp;
    // Ensure word boundaries
    size_temp = ((size + 4) >> 2 )<< 2;
    if((currMemPtr + size_temp) > ((Uint32)&EXTERNAL_RAM_END))
    {
        return NULL;
    }
    cPtr = (void *) (((Uint32)&EXTERNAL_RAM_START) + currMemPtr);
    currMemPtr += size_temp;
    return cPtr;
}

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复