Part Number:TMS320F28034Other Parts Discussed in Thread:TMS320F28377D,
这个芯片的例程中 部分代码有问题: SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal jq add 22-8-5,this function not use in flash
这个函数 #define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L) cmd选择RAM文件可以运行,选择Flash文件不可以运行,请问是什么原因?
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC 这个设置之后,必须延时吗?这点在手册上没有找到相关说明,而且 TMS320F28377D 的时钟函数例程中 并没有延时,想问是怎么回事。
Yale Li:
您好,请问您使用的是哪个例程?
user4329368 说:这个函数 #define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L) cmd选择RAM文件可以运行,选择Flash文件不可以运行
除了代码运行位置不同以外,您在分别执行这两种操作的时候还有什么不同?
user4329368 说:必须延时吗?
既然手册和例程中都没有提到相关的内容,那您提出这个疑问的依据是什么?
,
user4329368:
TMS320F28034的例程 DSP2803x_SysCtrl.c
这个文件中函数。
,
Yale Li:
user4329368 说:这个函数 #define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L) cmd选择RAM文件可以运行,选择Flash文件不可以运行,请问是什么原因?
这个函数具体在哪个例程哪个文件中,方便指一下路吗?
还有您从不同位置运行是怎么操作的呢?请您看一下这篇FAQ:[FAQ] [常见问题解答] 闪存 – 如何将应用程序从 RAM 配置修改为flash配置?
user4329368 说:SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC 这个设置之后,必须延时吗?
这一点在DSP2803x_SysCtrl.c中有相应的注释:
延时是用来确保晶振有足够的时间起振,根据您的需要进行修改。