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.

在28033的CLA中定义一维数组变量后一直有报错是为什么,改数组大小也没用

请问CLA中可以定义数组吗,是否有所要求,我写的如下

#pragma DATA_SECTION(i16a[2],"Cla1DataRam0");
volatile int16 i16a[2];

报错为expect a “,”

  • 参考示例代码如下:

    #pragma DATA_SECTION(bufferB, "my_sect")
    char bufferB[512];

  • 正确的做法是:

    #pragma DATA_SECTION(i16a,"Cla1DataRam0"); // 声明的地方只需要写i16a即可
    volatile int16 i16a[2];

    cla程序函数体中不可以定义变量,CLA和CPU数据传递只能通过RAM进行,例如:

    #pragma DATA_SECTION(i16a,"Cla1ToCpuRam0")  //  CLA给CPU数据

    #pragma DATA_SECTION(i18a,"CpuToCLARam0")  //  CPU给CLA数据

    void CLATask1(void)

    {

    // 函数体中不可以定义变量

    }

  • peng huifeng 说:

    正确的做法是:

    #pragma DATA_SECTION(i16a,"Cla1DataRam0"); // 声明的地方只需要写i16a即可
    volatile int16 i16a[2];

    cla程序函数体中不可以定义变量,CLA和CPU数据传递只能通过RAM进行,例如:

    #pragma DATA_SECTION(i16a,"Cla1ToCpuRam0")  //  CLA给CPU数据

    #pragma DATA_SECTION(i18a,"CpuToCLARam0")  //  CPU给CLA数据

    void CLATask1(void)

    {

    // 函数体中不可以定义变量

    }

    你好,我看见你回复楼主说CLA的函数体中不可定义局部变量,但是我在使用CLA的时候使用了局部变量而未出错,且查看相关文档发现CLA部分只规定全局和静态变量需要先用一个task初始化,并未提及函数体中不可以定义变量。请问这需要怎么理解呢?

  • 哦,这个我还没有尝试过在CLA函数体内部去定义变量,我是按照我的一贯做法去建议的,按照建议做肯定没有错误;晚点我会测试下再回复你,学习了!

  • peng huifeng 说:

    哦,这个我还没有尝试过在CLA函数体内部去定义变量,我是按照我的一贯做法去建议的,按照建议做肯定没有错误;晚点我会测试下再回复你,学习了!

    嗯好的,那我也会等你测试结果的,共同进步