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.

CCS V5语法错误的问题求助



您好!

    EMIF_FMKS(SDCTL,SDBSZ,4BANKS);EMIF_FMKS(SDCTL,SDRSZ,12ROW);EMIF_FMKS(SDCTL,SDCSZ,8COL)

        上面是6713EDMA里面配置EMIF中的三句话,我在CCS 5里面建一个工程将源程序拷进去以后就提示syntax error,具体的就是Invalid decimal format ,提示是4BANKS,12ROW,8COL有错误。

    另外,程序中包含头文件csl_irq.h,编译以后显示没有“csl_irq.h”这个文件,是不是因为CCS5这个版本的csl库中没有这个头文件,如果没有的话,该版本中有没有和这个头文件等效的头文件呢?

  • 出现的错误时因为没有找到相应头文件。

    需要手工设置头文件搜索路径。

    设置方法如下图:

  • 您好!这个头文件的问题解决了,但上面提到的语法错误是什么原因呢?

  • 您好!这个头文件的问题解决了,但上面提到的语法错误是什么原因呢?

  • 请在程序中包含csl_emifhal.h这个头文件。

  • 我添加了这个头文件,还是一样有上述错误,一下是源程序

    #include <csl.h>

    #include <csl_mcasp.h>

    #include <csl_i2c.h>

    #include <csl_emif.h>

    #include<csl_emifhal.h>

    #include<csl_pll.h>

    #include "DEC6713.h"

    /*Local software delay function*/

    //软件延时

    static void PLLDelay(int Count)

    {

       volatile int i = Count;

       while(i--);

    }

    /********************************************************************************\

    \*DEC6713_init() -Initialize DEC6713 board.

    \*Parameters: NO.

    \*

    \*Return:No.

    \********************************************************************************/

    //开发板初始化

    void DEC6713_init()

    {

    volatile Uint8 tempreg;

    /* Initealize the board APIs */

    //配置EMIF

    EMIF_Config MyEMIFcfg0={

    0x30 |

    EMIF_FMKS(GBLCTL,NOHOLD,DISABLE) |

    EMIF_FMKS(GBLCTL,EKEN,DEFAULT) |

    EMIF_FMKS(GBLCTL,CLK1EN,DISABLE) |

    EMIF_FMKS(GBLCTL,CLK2EN,DISABLE),

    EMIF_FMKS(CECTL,WRSETUP,DEFAULT) |

    EMIF_FMKS(CECTL,WRSTRB,DEFAULT) |

    EMIF_FMKS(CECTL,WRHLD,DEFAULT) |

    EMIF_FMKS(CECTL,RDSETUP,DEFAULT) |

    EMIF_FMKS(CECTL,TA,OF(2)) |

    EMIF_FMKS(CECTL,RDSTRB,DEFAULT) |

    EMIF_FMKS(CECTL,MTYPE,SDRAM32) |

    EMIF_FMKS(CECTL,RDHLD,DEFAULT),

    EMIF_FMKS(CECTL, WRSETUP, OF(0))    |

           EMIF_FMKS(CECTL, WRSTRB, DEFAULT)     |

           EMIF_FMKS(CECTL, WRHLD, OF(2))      |

           EMIF_FMKS(CECTL, RDSETUP, OF(0))    |

           EMIF_FMKS(CECTL, TA, OF(2))         |

           EMIF_FMKS(CECTL, RDSTRB, OF(8))     |

           EMIF_FMKS(CECTL, MTYPE, ASYNC8)    |

           EMIF_FMKS(CECTL, RDHLD, OF(2)),

           EMIF_FMKS(CECTL, WRSETUP, OF(0))    |

           EMIF_FMKS(CECTL, WRSTRB, OF(8))     |

           EMIF_FMKS(CECTL, WRHLD, OF(2))      |

           EMIF_FMKS(CECTL, RDSETUP, OF(0))    |

           EMIF_FMKS(CECTL, TA, OF(2))         |

           EMIF_FMKS(CECTL, RDSTRB, OF(8))     |

           EMIF_FMKS(CECTL, MTYPE, ASYNC8)    |

           EMIF_FMKS(CECTL, RDHLD, OF(2)),

    EMIF_FMKS(CECTL, WRSETUP, OF(2))    |

           EMIF_FMKS(CECTL, WRSTRB, OF(10))    |

           EMIF_FMKS(CECTL, WRHLD, OF(2))      |

           EMIF_FMKS(CECTL, RDSETUP, OF(2))    |

           EMIF_FMKS(CECTL, TA, OF(2))         |

           EMIF_FMKS(CECTL, RDSTRB, OF(10))    |

           EMIF_FMKS(CECTL, MTYPE, ASYNC32)    |

           EMIF_FMKS(CECTL, RDHLD, OF(2)),

           EMIF_FMKS(SDCTL,SDBSZ,4BANKS) |

           EMIF_FMKS(SDCTL,SDRSZ,12ROW) |

           EMIF_FMKS(SDCTL,SDCSZ,8COL)    |

           EMIF_FMKS(SDCTL,RFEN,ENABLE) |

           EMIF_FMKS(SDCTL,INIT,YES) |

           EMIF_FMKS(SDCTL,TRCD,OF(2)) |

           EMIF_FMKS(SDCTL,TRP,OF(2)) |

           EMIF_FMKS(SDCTL,TRC,OF(7)),

           //EMIF_FMKS(SDTIM,XRFR,OF(1)) |

           EMIF_FMKS(SDTIM, CNTR, OF(0))       |

           EMIF_FMKS(SDTIM, PERIOD, OF(1400)),

    EMIF_FMKS(SDEXT, WR2RD, OF(0))      |

           EMIF_FMKS(SDEXT, WR2DEAC, OF(2))    |

           EMIF_FMKS(SDEXT, WR2WR, OF(1))      |

           EMIF_FMKS(SDEXT, R2WDQM, OF(1))     |

           EMIF_FMKS(SDEXT, RD2WR, OF(0))      |

           EMIF_FMKS(SDEXT, RD2DEAC, OF(1))    |

           EMIF_FMKS(SDEXT, RD2RD, OF(0))      |

           EMIF_FMKS(SDEXT, THZP, OF(2))       |

           EMIF_FMKS(SDEXT, TWR, OF(2))        |

           EMIF_FMKS(SDEXT, TRRD, OF(0))       |

           EMIF_FMKS(SDEXT, TRAS, OF(5))       |

           EMIF_FMKS(SDEXT, TCL, OF(1))

           };

    /* Initialize PLL Registers */

    /* Put PLL in bypass */

    PLL_bypass();

    PLLDelay(20);

    /* Reset PLL */

    PLL_reset();

    PLLDelay(20);

    /* Set main multiplier/divisor */

    PLL_RSET(PLLM, 18);                         // 25MHz  x 18 = 450MHz

       PLL_RSET(PLLDIV0, PLL_PLLDIV0_RMK(1, 0));  // 450MHz / 1 = 450MHz

       PLL_RSET(OSCDIV1, PLL_OSCDIV1_RMK(1, 4));  // 25MHz  / 5 = 5Mhz

       /* Set DSP clock */

       //设置DSP时钟

       PLL_RSET(PLLDIV1, PLL_PLLDIV1_RMK(1, 1));  // 450MHz / 2 = 225MHz

       PLLDelay(20);

       /* Set peripheral clock */

       //设置外围时钟

       PLL_RSET(PLLDIV2, PLL_PLLDIV2_RMK(1, 3));  // 450MHz / 4 = 112.5MHz

       PLLDelay(20);

       /* Set EMIF clock */

       //设置EMIF时钟

       PLL_RSET(PLLDIV3, PLL_PLLDIV3_RMK(1, 4));  // 450MHz / 5 = 90MHz

       PLLDelay(20);

        /* Take PLL out of reset */

       PLL_deassert();

       PLLDelay(1500);

        /* Enalbe PLL */

       PLL_enable();

       PLLDelay(20);

      /* Initialize EMIF */

       //EMIF初始化

       EMIF_config(&MyEMIFcfg0);

    /* Set CPLD registers to default state  */

    tempreg = DEC6713_CTL_REG;

      DEC6713_cpld_rset(tempreg, 0);

    }

    /********************************************************************************\

    \*Uint8 DEC6713_cpld_rget() -Read CPLD register?

    \*Parameters:

    \* regnum: The related register.

    \*Return: The related register value.

    \********************************************************************************/

    /* Read CPLD register(8bits) */

    Uint8 DEC6713_cpld_rget(Uint8 regnum)

    {

      Uint8 *pdata;

      /* Return register value. */

      pdata = (Uint8 *)(DEC6713_CPLD_BASE + regnum);

      return (*pdata & 0xff);

    }

    /********************************************************************************\

    \*Uint8 DEC6713_cpld_rset() -Write CPLD register.

    \*Parameters:

    \* regnum: The related register

    \* regval:To be writen register value.

    \*Return: No.

    \********************************************************************************/

    /* Write CPLD register(8bits). */

    void DEC6713_cpld_rset(Uint8 regnum,Uint8 regval)

    {

    Uint8 *pdata;

    pdata = (Uint8 *)(DEC6713_CPLD_BASE + regnum);

    *pdata = regval & 0xFF;

    }

    /********************************************************************************\

    \*Uint8 DEC6713_wait() -DEC6713 Delay function

    \*Parameters:

    \* delay:Delay time.

    \*Return:NO.

    \********************************************************************************/

    /* Spin in a delay loop for delay iterations */

    void DEC6713_wait(Uint32 delay)

    {

       volatile Uint32 i, n;

       n = 0;

       for (i = 0; i < delay; i++)

       {

           n = n + 1;

       }

    }

  • 如果看到的是如下的提示信息,应该不会影响编译,只是Eclipse的Indexer的告警。