当CCS
Studio启动时,GEL文件加载到PC机的内存中,如果定义了StartUp()函数则执行该函数在CCS
Studio(V2.3或更低的版本中),主机和目标板的初始化工作都在Startup()函数中执行。但是对于支持Connect
/Disconnect的CCS Studio(V2.4或之后的版本,比如3.1版本,3.3版本),GEL文件可猜晌能并没有正确的执行。因为CCS
Studio启动时和目标处理器之间的连接是断开的,当Startup()函数试图访问目标处理器时会出错。因此,V2.4或之后的版本,当CCS启动
时,用一个新的回调函数OnTargetConnect()来执行目标处理器的初始化工作。
对于支持connect/disconnect的CCS环境,Startup()函数中尽量避免Get_Reset()、
GEL_BreakPtAdd()、GEL_TextOUT()和GET_OpenWindow(),因为StartUp()执行时CCSStudio的
任何控制窗口还没有打开。
我们对两种不同的gel文件进行对比,让大家更容易理解。
不支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
StartUp()
{
setup_memory_map()
GEL_Reset()/* Do not call in StartUp() with CCStudio v2.4 or higher */
init_emif()/* Do not call in StartUp() with CCStudio v2.4 or higher */
}
支持Connect/Disconnect的CCSStudio GEL文件中的StartUp()函数:
StartUp()
{
setup_memory_map()
}
OnTargetConnect()函数在穗棚锋每一次和目标处理器建立连接时都被调用。进行绝对最小的系统初始化处理,保证CCSStudio在目标处
理器上处于一种可信赖的状态例如:禁止看门狗时钟、DSP复位结束。
对于某些平台,调用GEL_Reset()函数可使CCSStudio处于一种Good状态,可以通过测试来确定是否需要调用。
我们可看出后一种仅建立了存储映射。其他初始化dsp的工作交给了OnTargetConnect()函数去完成。下面我们以6437为例,gel的源码如下:
StartUp( )
{
Setup_Memory_Map( )
}
OnTargetConnect( )
{
Setup_Cache( )
Setup_Pin_Mux( ) // Setup Pin Mux
Setup_Psc_All_On( ) // Setup Power Domains
Setup_PLL0_594_MHz_OscIn( ) // Setup Pll1 [DSP @ 594 MHz][Core 1.20V]
Setup_PLL1_DDR_135_MHz_OscIn()
Setup_Aemif_8Bit_Bus( ) // Setup Async-EMIF [8-bit bus]
}
注意:GEL文件在CCS启动后常驻内存,在仿真器和目标系统上电的时候起到初始DSP的作用。在上电后再改变GEL文件将不会对DSP产生影响。
在程序开头的前面几行:#include<math.h>(单独占一行)或者#include<cmath>(尘尺单独占一行)
using namespace std (写#include<cmath>,桥消必须还有下一行using namespace std;派消高)
1、保证程序编译闹信及test connection无error2、点击debug(绿色的小甲壳虫),然后点击Resume(F8)
3、选择你要通过液者轮Graph查看的全局变量,将其add to expressions,用途是查看这个变量的地址,如下图变量的地址为0x12000
4、点击tools选择Graph,其中有两个是比较常用的,一个是single time(时域波形),另一个是FFT magnitude(频域波形)
5、single time的设置如下图,主要有5个地方要设置,其实就是和你定义的全局变量有关,我定义的全局变量为float32 AdcBuf[2048]所以按下图设置即可,然后点击OK
6、这时你会发现时域波形并没有正确显示出来,查看AdcBuf[2048]里的数据会显示error,问题出在哪了呢,关键的一步就在这里,这是你只要在AD采集中断的最后打一个断点,一切问题都解决了。你可以查看波形,通过实时刷新波形和暂停刷新波形可以更方便的查看波形。
7、时域波形的波形嫌并的出来,频域的也就简单了,通用的步骤,这次选择FFT magnitude,只有一个FFT order与时域设置时不一样,FFT order为傅立叶级数,这个根据实际情况填写,同样的,在频域波形上也可以通过实时刷新波形和暂停刷新波形可以更方便的查看波形。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)