/***************歷史版本 **********************************************
*版本信息 日期 描述
*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中執行效果