DSP_CCS GEL文件详解

 
DSP_CCS GEL文件详解

GEL文件详解

CCS的GEL语言是一种交互式的命令,它是解释执行的,即不能被编译成可执行文件。它的作用在于扩展了CCS Studio的功能,可以用gel来调用一些菜单命令,对DSP的存储器进行初始化配置等。 对于不同型号的DSP,我们应选择相对应的GEL文件。

         当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 Studio:CCS Studio启动时,如果指定的GEL文件中包含Startup()函数,通过它建立基本的CCSStudio内存映射关系,进行不需要访问目标处理器的基本初始化操作。Startup()函数中不用包括访问目标处理器的代码,目标处理器由回调函数OnTargetConnect()来初始化。

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]
}

引用自:http://www.61ic.com/Services/Course/C6000/200912/24729.html

GEL文件中的各函数详解

以前感觉gel文件很神秘,后来才发现就是一些基本的配置,将自己所悟简单总结一下,让初学者了解一下gel文件到底做了哪些工作。

        第一个startup()函数在前面关于gel的日志中已经提到过,这里就不再赘述了。考虑到ccs版本的增强,本文中的gel文件只针对支持Connect /Disconnect的CCS Studio而言。

StartUp( )
{

/*进行CCSStudio存储器映射,告知目标处理器哪些空间可以访问,哪些不可以访问。*/
    Setup_Memory_Map( );

}

OnTargetConnect( )//对处理器进行最小初始化

{
    Setup_Cache( ); //设置缓存L1P,L1D,L2

    Setup_Pin_Mux( );               // 设置管脚
    Setup_Psc_All_On( );            // 设置psc

    Setup_PLL0_594_MHz_OscIn( );    // 设置dsp主频

Setup_PLL1_DDR_135_MHz_OscIn();//设置ddr时钟频率
Setup_Aemif_8Bit_Bus( );        // 设置Async-EMIF

    }

引用自:

以前感觉gel文件很神秘,后来才发现就是一些基本的配置,将自己所悟简单总结一下,让初学者了解一下gel文件到底做了哪些工作。

        第一个startup()函数在前面关于gel的日志中已经提到过,这里就不再赘述了。考虑到ccs版本的增强,本文中的gel文件只针对支持Connect /Disconnect的CCS Studio而言。

StartUp( )
{

/*进行CCSStudio存储器映射,告知目标处理器哪些空间可以访问,哪些不可以访问。*/
    Setup_Memory_Map( );

}

OnTargetConnect( )//对处理器进行最小初始化

{
    Setup_Cache( ); //设置缓存L1P,L1D,L2

    Setup_Pin_Mux( );               // 设置管脚
    Setup_Psc_All_On( );            // 设置psc

    Setup_PLL0_594_MHz_OscIn( );    // 设置dsp主频

Setup_PLL1_DDR_135_MHz_OscIn();//设置ddr时钟频率
Setup_Aemif_8Bit_Bus( );        // 设置Async-EMIF
    }

引用自:http://www.61ic.com/Services/Course/C6000/200912/24728.html

你可能感兴趣的:(DSP_CCS GEL文件详解)