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