📄 demo5402.cdb.a92381
字号:
prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}" prop Format :: "0x%04x" prop Style :: 0x01 | 0x02 prop Label :: "BSCR" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 0 } global MODIFYCLKMD :: 1 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Modify CLKMD" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 0 prop Set :: (if ($1 != self.MODIFYCLKMD) {self.MODIFYCLKMD = $1} , "ok") } global CLKMD :: 36871 { prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}" prop Format :: "0x%04x" prop Style :: 0x01 | 0x02 prop Label :: "CLKMD - (PLL) Clock Mode Register" prop Visible :: 1 prop Writable :: self.MODIFYCLKMD prop NoGen :: 0 } global DSPARITHMETIC :: = (if (GBL.DSPTYPE == 62 && (GBL.DSPSUBTYPE / 100) == 67) {"FLOAT"} else {"FIXED"}) { prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}" prop Enum :: "FIXED,FLOAT" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global DSPWORDSIZE :: = (if (GBL.DSPTYPE == 30 || GBL.DSPTYPE == 40 || GBL.DSPTYPE == 62) {32} else {16}) { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "DSP Word Size" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global DSPCHARSIZE :: = (if GBL.DSPTYPE == 62 {8} else {GBL.DSPWORDSIZE}) { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "DSP Byte Size" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global CALLMODEL :: "near" { prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}" prop Enum :: "near,far" prop Label :: "Function Call Model" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 1 prop Set :: (if ($1 == "far") {if ((self.LOWPMST & 0x20) == 0) {self.error("To use the far model the OVLY bit in PMST (bit 5) must be set to 1")} else {if (CLK.gNumOf <= 0) {CLK.HOOKFXN = @CLK_F_frete} , self.CALLMODEL = $1, if (SWI.gNumOf > 0) {SWI.EXECFXN = @SWI_F_fexec} , "ok"}} else {if (CLK.gNumOf <= 0) {CLK.HOOKFXN = @CLK_F_rete} , self.CALLMODEL = $1, if (SWI.gNumOf > 0) {SWI.EXECFXN = @SWI_F_exec} , "ok"}) } global AUTOINIT :: "ROM" { prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}" prop Enum :: "ROM,RAM" prop Label :: "C Autoinitialization Model" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 1 } global USERINIT :: 0 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Call user init function" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 0 prop Set :: (if ($1 == 0) {self.USERINITFXN = @_FXN_F_nop, self.USERINIT = $1} else {self.USERINIT = $1}, "ok") } global USERINITFXN :: @_FXN_F_nop { prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}" prop Label :: "User init function" prop Visible :: 1 prop Writable :: self.USERINIT prop NoGen :: 0 } global OLDAUTOCALCULATE :: 1 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "previous value for autocalculate" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global ENABLEINST :: 1 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Enable Real Time Analysis" prop Visible :: 1 prop Writable :: 1 prop NoGen :: 0 prop Set :: (if ($1 != self.ENABLEINST) {if ($1) {RTA_toHost.Create("HST"), RTA_fromHost.Create("HST"), RTA_dispatcher.Create("HST"), IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = self.OLDAUTOCALCULATE} else {RTA_toHost.Delete("HST"), RTA_fromHost.Delete("HST"), RTA_dispatcher.Delete("HST"), IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), self.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0}, self.ENABLEINST = $1} , "ok") } global FARMODE :: = if self.CALLMODEL == "near" {0} else {1} { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 0 }}type OBJ { isa ObjectMgr prop name :: "OBJ" prop Visible :: 0 prop AllocType :: ("1\0, _objMemDesc, _memSeg, _placement") prop _objMemDesc :: ("%8t .OBJ$bss: {}") prop _memSeg :: MEM.CFGOBJSEG prop _placement :: (0x7ffff / 2) global gUser :: "USER" { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gSetOf :: 0 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gNumOf :: 0 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gDirty :: 0 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gInitFlag :: 1 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } inst iComment :: if self.iDelUser == "USER" {"<add comments here>"} else {self.iDelMsg} { prop Type :: "{21455EA3-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "comment" prop Visible :: 1 prop Writable :: if self.iDelUser == "USER" {1} else {0} prop NoGen :: 1 } inst iIsUsed :: 0 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } inst iId :: 0 { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Style :: 0x01 prop Visible :: 0 prop Writable :: 1 prop NoGen :: 1 } inst iDelUser :: "USER" { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } inst iDelMsg :: "ok" { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 }}type CLK { isa ObjectMgr prop name :: "CLK" prop Label :: "CLK - Clock Manager" prop IsConfMod :: 1 prop GlobalIcon :: 103 prop InstanceIcon :: 104 prop InstanceHelpTopic :: (202) prop GlobalHelpTopic :: (102) prop InstancePropertyPage :: ("{EEB2AB41-51E3-11d0-A61D-0000C070F3E9}") prop GlobalPropertyPage :: ("{EEB2AB40-51E3-11d0-A61D-0000C070F3E9}") prop GenLinkPrologue :: ("SECTIONS {%4t\n.%1L: {\n%8t CLK_F_gethtime = %5s;\n %1U_A_TABBEG = .;\n %4S\n %1U_A_TABEND = .;\n %1U_A_TABLEN = (. - %1U_A_TABBEG) / %2d;\n%4t} > %3s PAGE 1\0, name, _objSize, _memSeg, _linkString, clkFxn") prop GenLinkEpilogue :: ("%0t}\n_CLK_PRD = CLK_PRD;\n_CLK_COUNTSPMS = CLK_COUNTSPMS;\n_CLK_REGS = CLK_REGS;\n_CLK_USETIMER = CLK_USETIMER;\n\0") prop _linkString :: if self.gNumOf > 0 {"*(.%1L)"} else {"/* no CLK objs */"} prop _memSeg :: CLK.OBJMEMSEG prop _objSize :: 1 prop clkFxn :: if (self.USETIMER == 1) {self.CLKFXN} else {@FXN_F_zero} prop maxObjs :: (32767) prop localInit :: (if (GBL.CALLBACKOBJ != CLK) {CLK.gGBLChain = GBL.CALLBACKOBJ, GBL.CALLBACKOBJ = CLK} ) prop dataSize :: (1 * (CLK.gNumOf + 1)) prop localCanCreate :: (if self.USETIMER {"ok"} else {self.error("The CLK Manager must be enabled before inserting a CLK")}) prop localCreate :: (CLK.HOOKFXN = @CLK_F_run, "ok") prop localDelete :: (if (self.gNumOf == 1) {if (GBL.CALLMODEL == "far") {CLK.HOOKFXN = @CLK_F_frete} else {CLK.HOOKFXN = @CLK_F_rete}} , "ok") prop adjustPrd :: (if GBL.DSPTYPE == 62 {0} else {1}) prop seizeHwi :: (if ($1.client == "USER" && $1.function != @HWI_unused) {self.error("Interrupt mapped to selected timer is already in use.")} else {$1.function = @CLK_F_isr, $1.client = "CLK", HWI.gDirty = 1, "ok"}) prop releaseHwi :: ($1.function = @HWI_unused, $1.client = "USER", HWI.gDirty = 1, "ok") prop setMicroseconds :: ($c = if self.FIXTDDR == 1 {(self.TDDR + 1.0) * (float(0xffff) + self.adjustPrd + 0.5) * 2 / GBL.CPUCLOCK} else {(0xf + 1.0) * (float(0xffff) + self.adjustPrd + 0.5) * 2 / GBL.CPUCLOCK}, if ($1 < $c && $1 > 0.1) {if (self.FIXTDDR == 0) {self.TDDR = int(round((1.0 * $1 * GBL.CPUCLOCK / 2) - 1) / (0xffff + self.adjustPrd))} , self.PRD = int(round(1.0 * $1 * GBL.CPUCLOCK / (2 * (self.TDDR + 1.0)))) - CLK.adjustPrd, self.MICROSECONDS = ((float((self.PRD)) + CLK.adjustPrd) * ((self.TDDR) + 1.0) * 2 / GBL.CPUCLOCK), if (self.CALLBACKOBJ != nil) {self.CALLBACKOBJ.call()} , "ok"} else {self.error("The on-chip timer does not have enough range to support this combination of DSP MIPS and Microseconds/Int")}) prop call :: ($a = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 2 / GBL.CPUCLOCK), $b = CLK.MICROSECONDS, $e = "ok", if (($e = self.setMicroseconds(CLK.MICROSECONDS)) == "ok") {if (CLK.gGBLChain != nil) {$e = CLK.gGBLChain.call()} , if ($e != "ok") {self.setMicroseconds($b), self.error($e)} else {"ok"}} else {$e}) global gUser :: "USER" { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gSetOf :: 0 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gNumOf :: 2 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gDirty :: 1 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gInitFlag :: 1 { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gInit :: = ($a = 0, $b = 0, scan ($i; self) {if ($i.IsConfObj()) {$a += 1, if (self.isFinite) {$b |= 1 << $i.iId} } }, self.gNumOf = $a, self.gSetOf = $b, if (self.gInitFlag == 0) {self.localInit()} , self.gInitFlag = 1) { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global gGBLChain :: nil { prop Visible :: 0 prop Writable :: 0 prop NoGen :: 1 } global OBJMEMSEG :: IDATA { prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}" prop MemberType :: MEM prop MemberTest :: if GBL.DSPTYPE == 62 {$1.space != "code"} else {$1.space == "data"} prop Label :: "Object Memory" prop Visible :: 1 prop Writable :: self.USETIMER prop NoGen :: 1 } global REGS :: 0 { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Style :: 0x02 } global USETIMER :: 1 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Enable CLK Manager" prop Visible :: 1 prop Writable :: if self.gNumOf > 0 {0} else {1} prop NoGen :: 0 prop Set :: (if ($1 == 1 && self.USETIMER == 0) {if (HWI_TINT.client == "USER" && HWI_TINT.function != @HWI_unused) {self.error("HWI Timer interrupt already in use.")} else {HWI_TINT.function = @CLK_F_isr, HWI_TINT.client = "CLK", HWI.gDirty = 1, self.USETIMER = 1, CLK.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}, if (GBL.ENABLEINST == 1) {IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = GBL.OLDAUTOCALCULATE} , "ok"}} else {if ($1 == 0 && self.USETIMER == 1) {if (self.gNumOf == 0) {CLK.TIMEFXN = @FXN_F_zero, HWI_TINT.function = @HWI_unused, HWI_TINT.client = "USER", HWI.gDirty = 1, self.USETIMER = 0, if (GBL.ENABLEINST == 1) {IDL_busyObj.Delete("IDL"), IDL.USEIDLBUSYOBJ = 0, IDL_cpuLoad.Delete("IDL"), GBL.OLDAUTOCALCULATE = IDL.AUTOCALCULATE, IDL.AUTOCALCULATE = 0} , "ok"} else {self.error("CLK cannot be disabled until all its objects are deleted.")}} else {"ok"}}) } global HIRES :: = 1 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Use high resolution time for internal timings" prop Visible :: 1 prop Writable :: self.USETIMER prop NoGen :: 1 prop Set :: (if (CLK.USETIMER) {CLK.HIRES = $1, if (CLK.USETIMER) {CLK.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}} , "ok"} else {self.error("CLK Manager must be enabled in order to get high resolution timings.")}) } global MICROSECONDS :: 1000.000000 { prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}" prop Style :: 0x04 prop Format :: "%.1f" prop Label :: "Microseconds/Int" prop Set :: (self.setMicroseconds($1)) prop Visible :: 1 prop Writable :: if ((CLK.PROGTIMREGS != 0) | (self.USETIMER == 0)) {0} else {1} prop NoGen :: 1 } global PROGTIMREGS :: = 0 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Directly configure on-chip timer registers" prop Visible :: 1 prop Writable :: self.USETIMER prop NoGen :: 1 } global TCR :: = 0x20 | CLK.TDDR { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Style :: 0x01 | 0x02 prop Visible :: 0 prop Writable :: 0 prop NoGen :: 0 } global FIXTDDR :: 0 { prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}" prop Label :: "Fix TDDR" prop Visible :: GBL.DSPTYPE != 62 prop Writable :: CLK.PROGTIMREGS && GBL.DSPTYPE != 62 prop NoGen :: 1 } global TDDR :: 1 { prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}" prop Enum :: "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" prop Label :: "TDDR Register" prop Set :: (CLK.TDDR = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 2 / GBL.CPUCLOCK), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok") prop Visible :: GBL.DSPTYPE != 62 prop Writable :: CLK.PROGTIMREGS && GBL.DSPTYPE != 62 prop NoGen :: 1 } global PRD :: 49999 { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" prop Style :: if GBL.DSPWORDSIZE == 16 {0x01 | 0x02} else {0x02} prop Label :: "PRD Register" prop Set :: (CLK.PRD = $1, CLK.MICROSECONDS = ((float((CLK.PRD)) + CLK.adjustPrd) * ((CLK.TDDR) + 1.0) * 2 / GBL.CPUCLOCK), if (CLK.CALLBACKOBJ != nil) {CLK.CALLBACKOBJ.call()} , "ok") prop Visible :: 1 prop Writable :: if ((self.PROGTIMREGS) && (self.USETIMER)) {1} else {0} prop NoGen :: 0 } global COUNTSPMS :: = (GBL.CPUCLOCK * 1000 / (CLK.TDDR + 1) / 2) { prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}" } global INSTRUCTIONS :: = (1.0 * (float(CLK.PRD) + CLK.adjustPrd) * (CLK.TDDR + 1.0) * 1) { prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}" prop Style :: 0x04 prop Format :: "%.0f" prop Label :: "Instructions/Int" prop Visible :: 1 prop Writable :: 0 prop NoGen :: 1 } global TIMEFXN :: = CLK.clkFxn() { prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}" prop Visible :: 0 prop Writable :: 0 prop NoGen :: 0 } global HOOKFXN :: @CLK_F_run { prop Type :: "{7C434D00-1629-11d0-9BFE-0000C0AC14C7}"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -