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中執行效果
這裏寫圖片描述
這裏寫圖片描述

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