TI中文支持网
TI专业的中文技术问题搜集分享网站

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库中没有这个头文件,如果没有的话,该版本中有没有和这个头文件等效的头文件呢?

Tommy Song:

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

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

设置方法如下图:

andy lee1:

回复 Tommy Song:

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

andy lee1:

回复 Tommy Song:

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

andy lee1:

回复 Tommy Song:

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

#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;

   }

}

Tommy Song:

回复 andy lee1:

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

 

赞(0)
未经允许不得转载:TI中文支持网 » CCS V5语法错误的问题求助
分享到: 更多 (0)