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

📄 demo5402.cdb.a92381

📁 TI 公司的5000系列DSP的BIOS C语言程序,希望对大家有帮助
💻 A92381
📖 第 1 页 / 共 5 页
字号:
        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 + -