⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newecho.cdb

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 CDB
📖 第 1 页 / 共 5 页
字号:
        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 ENDIAN :: "little" {         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"        prop Enum :: "little,big"        prop Label :: "DSP Endian Mode"        prop Visible :: 1        prop Writable :: 1        prop NoGen :: 1    }    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 PCC :: "mapped" {         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"        prop Enum :: "mapped,cache enable,cache freeze,cache bypass"        prop Label :: "Program Cache Control"        prop Visible :: 1        prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) {0} else {1}        prop NoGen :: 1    }    global DCC :: "mapped" {         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"        prop Enum :: "mapped,cache enable,cache freeze,cache bypass"        prop Label :: "Data Cache Control"        prop Visible :: 0        prop Writable :: 1        prop NoGen :: 1    }    global PCACHE :: = (if (self.PCC == "mapped") {0x0000} else {if (self.PCC == "cache enable") {0x0040} else {if (self.PCC == "cache freeze") {0x0060} else {0x0080}}}) {         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"        prop Visible :: 0        prop Writable :: 0        prop NoGen :: 1    }    global DCACHE :: = (if (self.DCC == "mapped") {0x0000} else {if (self.DCC == "cache enable") {0x0008} else {if (self.DCC == "cache freeze") {0x000c} else {0x0010}}}) {         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"        prop Visible :: 0        prop Writable :: 0        prop NoGen :: 1    }    global CACHE :: = (self.PCACHE | self.DCACHE) {         prop Type :: "{21455EA2-B96A-11cf-9BFE-0000C0AC14C7}"        prop Visible :: 0        prop Writable :: 0        prop NoGen :: 0    }    global L2CONFIGURE :: 0 {         prop Type :: "{21455EA0-B96A-11cf-9BFE-0000C0AC14C7}"        prop Label :: "Configure L2 Cache Control (c6x11 support)"        prop Visible :: 1        prop Writable :: if (GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) {1} else {0}        prop NoGen :: 0    }    global L2MODEOPTS :: = "SRAM" {         prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"        prop Label :: "L2 Mode - CCFG(L2MODE)"        prop Enum :: "SRAM,1-way cache,2-way cache,3-way cache,4-way cache"        prop Visible :: 1        prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) && GBL.L2CONFIGURE == 1) {1} else {0}        prop NoGen :: 1    }    global L2MODE :: = (self.setL2MODE()) {         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"        prop Label :: "L2 Mode - CCFG(L2MODE)"        prop Enum :: "0,1,2,3,7"        prop Visible :: 0        prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) && GBL.L2CONFIGURE == 1) {1} else {0}        prop NoGen :: 0    }    global L2PRIORITY :: 0 {         prop Type :: "{A11FE980-C07A-11cf-9BFE-0000C0AC14C7}"        prop Label :: "L2 Requestor Priority - CCFG(P)"        prop Enum :: "0,1"        prop Visible :: 1        prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) && GBL.L2CONFIGURE == 1) {1} else {0}        prop NoGen :: 0    }    global L2MARMASK :: 0 {         prop Type :: "{3EE4CB80-E273-11d0-BB8F-0000C008F2E9}"        prop Label :: "L2 MAR0-15 - bitmask used to initialize MARs"        prop Format :: "0x%04x"        prop Style :: 0x01 | 0x02        prop Visible :: 1        prop Writable :: if ((GBL.DSPSUBTYPE == 6211 || GBL.DSPSUBTYPE == 6711) && GBL.L2CONFIGURE == 1) {1} else {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 :: (0x7fffffff / 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 \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 = @HWI_F_dispatch, self.seizeHwi(self.WHICHHWI), "ok")    prop localDelete :: (if (self.gNumOf == 1) {if (GBL.CALLMODEL == "far") {CLK.HOOKFXN = @CLK_F_frete, self.seizeHwi(self.WHICHHWI)} else {CLK.HOOKFXN = @CLK_F_rete, self.seizeHwi(self.WHICHHWI)}} , "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", $1.iUseDispatcher = (if CLK.HOOKFXN == @HWI_F_dispatch {1} else {0}), $1.iArg = (if $1.iUseDispatcher == 1 {@CLK_A_TABBEG} else {0}), HWI.gDirty = 1, "ok"})    prop releaseHwi :: ($1.function = @HWI_unused, $1.client = "USER", $1.iUseDispatcher = 0, $1.iArg = 0, HWI.gDirty = 1, "ok")    prop setMicroseconds :: ($c = if self.FIXTDDR == 1 {(self.TDDR + 1.0) * (float(0xffffffff) + self.adjustPrd + 0.5) * 4 / GBL.CPUCLOCK} else {(0 + 1.0) * (float(0xffffffff) + self.adjustPrd + 0.5) * 4 / GBL.CPUCLOCK}, if ($1 < $c && $1 > 0.1) {if (self.FIXTDDR == 0) {self.TDDR = int(round((1.0 * $1 * GBL.CPUCLOCK / 4) - 1) / (0xffffffff + self.adjustPrd))} , self.PRD = int(round(1.0 * $1 * GBL.CPUCLOCK / (4 * (self.TDDR + 1.0)))) - CLK.adjustPrd, self.MICROSECONDS = ((float((self.PRD)) + CLK.adjustPrd) * ((self.TDDR) + 1.0) * 4 / 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) * 4 / 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 :: 1 {         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 :: IDRAM {         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 WHICHHWI :: HWI_INT14 {         prop Type :: "{7BA2DA00-5A53-11d0-9BFE-0000C0AC14C7}"        prop MemberType :: HWI        prop Label :: "CPU Interrupt"        prop Visible :: 1        prop Writable :: 0        prop NoGen :: 1    }    global INTBIT :: = self.WHICHHWI.iIntrEnableMask    global WHICHTIMER :: "Timer 0" {         prop Label :: "Timer Selection"        prop Type :: "{21455EA1-B96A-11cf-9BFE-0000C0AC14C7}"        prop Enum :: "Timer 0,Timer 1"        prop Visible :: 1        prop Writable :: self.USETIMER        prop NoGen :: 1        prop Set :: (if (self.WHICHTIMER != $1) {if (self.USETIMER == 0) {$e = "ok"} else {if ($1 == "Timer 0") {$a = Timer_0.iHwi} else {$a = Timer_1.iHwi}, $e = self.seizeHwi($a)}, if ($e == "ok") {self.releaseHwi(self.WHICHHWI), if ($1 == "Timer 0") {self.REGS = 0x01940000, self.WHICHHWI = Timer_0.iHwi} else {self.REGS = 0x01980000, self.WHICHHWI = Timer_1.iHwi}, self.WHICHTIMER = $1, self.HOOKFXN = if self.gNumOf > 0 {@HWI_F_dispatch} else {(if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete})}, self.seizeHwi(self.WHICHHWI)} , $e} )    }    global REGS :: 26476544 {         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 (($e = self.seizeHwi(self.WHICHHWI)) == "ok") {self.USETIMER = 1, if (GBL.ENABLEINST == 1) {IDL_busyObj.Create("IDL"), IDL.USEIDLBUSYOBJ = 1, IDL_cpuLoad.Create("IDL"), IDL.AUTOCALCULATE = GBL.OLDAUTOCALCULATE} , self.TIMEFXN = if CLK.HIRES {CLK.clkFxn()} else {@CLK_F_getltime}, self.HOOKFXN = if GBL.CALLMODEL == "far" {@CLK_F_frete} else {@CLK_F_rete}, self.seizeHwi(self.WHICHHWI)} , $e} else {if ($1 == 0 && self.USETIMER == 1) {self.releaseHwi(self.WHICHHWI), self.TIMEFXN = @FXN_F_zero, self.HOOKFXN = @FXN_F_nop, 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 {"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"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -