Dave APP GLOBAL_CCU4_TEST on HW Signal Connection



/***************历史版本 **********************************************
*版本信息               日期                      描述

*4.0.0       16-9-2015      第一版

********************************************************************/

// Import statements
import ifx.davex.app.manifest.*

class  GLOBAL_CCU4_TEST extends GLOBAL_CCU4_TEST_GUI {

     /* Note  : 下列APP属性是不可缺少的,非常重要! */

     /* 开始 : APP属性定义 */

    def version            = '4.0.0'

    /* 定义APP的分类目录 */
    def categoriesDescription = ["learn"] 

    /* 运行APP所需要DAVE的最低版本 */
    def minDaveVersion           = '4.0.0'

    /* 可以找到APP的关键字*/
    def keywords      = ['My keyword']

    /* APP可以支持的硬件型号。“*”代表任何 */
    def softwareIDs       = [
        "XMC4.[4-5].00.F144.*":"1.0.0",
        "XMC4.4.00.(F100|F64).*":"1.0.0",
        "XMC1.3.*.*.*":"1.0.0"]

    /* 定义该APP是否只能单独存在*/
    def singleton     = false

    /* 是否要在dave。c中加入<APPName>_Init()进行初始化*/
    def initProvider  = true

    /* 定义该APP是否弃用*/
    def deprecated    = false

    /* 定义该APP是否能被其他APP共享使用*/
    def sharable      = true

    /* 描述*/
    def description = "MY owm APP in order to learn how to use uri and HWsignalconnection"

    /* 结束   : APP 属性定义 */


    /* 开始:定义用户变量 */

    /*require apps declare*/
    MRequiredApp appres_clock

    /*resourcegroup declare*/
    MVirtualResourceGroup hwers_peripheral_ccu4_global
    MVirtualResourceGroup hwers_peripheral_scu_gcu_ccu4_global_enable


    /*virtual signal declare*/
    MVirtualSignal vs_global_ccu4_clk
    MVirtualSignal vs_global_ccu4_globalsignal 
    MVirtualSignal vs_global_ccu4_gsc_enable 
    MVirtualSignalRA vs_clock_fccu

    /*solver declare*/
    SolverVariable sv_global_ccu4_kernel=SolverVariable()


    /* 结束:定义用户变量 */


    /* 开始:构建 APP  */
    public GLOBAL_CCU4_TEST(DaveEnv daveEnv) {
        boolean family_4x=false
        /*通过daveEnv对象来获取单片机型号*/
        if (daveEnv.project.selectedDevice.deviceId.family=="XMC4")
        {
            family_4x = true
        }

        /*根据型号加载子app*/
        if (family_4x==true)
        {
            appres_clock=MRequiredApp("CLOCK_XMC4","CLOCK APP for XMC4X",RSHARABLE,"4.0.1",true)
        }
        else
        {
            appres_clock=MRequiredApp("CLOCK_XMC1","CLOCK APP for XMC1X",RSHARABLE,"4.0.0",true)
        }

        //hardware resource consumption block
        hwers_peripheral_ccu4_global = MVirtualResourceGroup("Global",["peripheral", "ccu4", sv_global_ccu4_kernel," global"])
        hwers_peripheral_scu_gcu_ccu4_global_enable=MVirtualResourceGroup("CCU4 sync start",["peripheral", "scu","*", "gcu", "ccu4_global_enable", sv_global_ccu4_kernel])

        //APP IO Signals
        vs_global_ccu4_clk=MVirtualSignal(hwers_peripheral_ccu4_global,"clock_ccu","clk",true,false)
        vs_global_ccu4_globalsignal=MVirtualSignal(hwers_peripheral_ccu4_global,"ccu4_global","global_signal",true,false)
        vs_global_ccu4_gsc_enable=MVirtualSignal(hwers_peripheral_scu_gcu_ccu4_global_enable,"ccu4_global_start","gsc_enable",true,true)

        //定义信号接收通道,连接信号
        if(family_4x == true)
        {
            vs_clock_fccu=MVirtualSignalRA(appres_clock,"vs_fccu")
            addConnectionConstraint(vs_clock_fccu,vs_global_ccu4_clk,true)
        }

        //从CLOCK_XMC APP GUI中实时返回值
        if (family_4x == true)
        {
           gfloat_clkFreq.value = MF({appres_clock.getVal(["gfloat_ccufreq", "value"])}, Float)
        }
        else
        {
           gfloat_clkFreq.value = MF({appres_clock.getVal(["gfloat_pclkactfrq", "value"])}, Float)
        }

        }


    // 生成代码
    def generateFiles(){
        generate("global_ccu4_testh.tmpl", "global_ccu4_test.h")
    }

}




在dave4中执行效果
这里写图片描述
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章