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

📄 commonchip.cfg

📁 flash programming STI 5.5.1.4 DCU3
💻 CFG
📖 第 1 页 / 共 5 页
字号:
}

proc ClockGenerator2Registers addr=$1 chiptype=$2{
  ## 5508
  if (clsymbol ST_reg_debug) { write "ClockGenerator2Registers @ " -x (addr) }
  register CKG_PLLcontroller (addr+0x1cf) -group ClockGen -char
  register CKG_CCAUD (addr+0x1d0) -group ClockGen -char
  register CKG_CCDIV (addr+0x1d1) -group ClockGen -char
  register CKG_CCMCK (addr+0x1d4) -group ClockGen -char
  register CKG_DIVMCK (addr+0x1d5) -group ClockGen -char
  register CKG_CCDENC (addr+0x1dc) -group ClockGen -char
  register CKG_CCST20 (addr+0x1dd) -group ClockGen -char
  register CKG_DIVST20 (addr+0x1de) -group ClockGen -char
  register CKG_PREDIVPLL (addr+0x1df) -group ClockGen -char
  register CKG_FBKDIVPLL (addr+0x1e0) -group ClockGen -char
  register CKG_POSTDIVPLL (addr+0x1e1) -group ClockGen -char
  register CKG_PLLSETUP (addr+0x1e2) -group ClockGen -char
  register CKG_IDQPAD_C (addr+0x1e3) -group ClockGen -char
  if(chiptype == "5518") {
     register CKG_LPC_DIV 	(addr+0x1CE) -group ClockGen  -char
     register CKG_CCAUXDENC 	(addr+0x1D2) -group ClockGen  -char
     register CKG_DIVAUXDENC 	(addr+0x1D3) -group ClockGen  -char
     register CKG_SFREQSMC_SDIV (addr+0x1D6) -group ClockGen  -char
     register CKG_SFREQSMC_PE0 	(addr+0x1D7) -group ClockGen  -char
     register CKG_SFREQSMC_PE1 	(addr+0x1D8) -group ClockGen  -char
     register CKG_SFREQSMC_MD 	(addr+0x1D9) -group ClockGen  -char
     register CKG_SMCcontroller (addr+0x1DA) -group ClockGen  -char
     register CKG_SFREQPMC_SDIV (addr+0x1E4) -group ClockGen  -char
     register CKG_SFREQPMC_PE0 	(addr+0x1E5) -group ClockGen  -char
     register CKG_SFREQPMC_PE1 	(addr+0x1E6) -group ClockGen  -char
     register CKG_SFREQPMC_MD 	(addr+0x1E7) -group ClockGen  -char
     register CKG_PCM_CT 	(addr+0x1E8) -group ClockGen  -char
     register CKG_SFREQAUX_SDIV (addr+0x1E9) -group ClockGen  -char
     register CKG_SFREQAUX_PE0 	(addr+0x1EA) -group ClockGen  -char
     register CKG_SFREQAUX_PE1 	(addr+0x1EB) -group ClockGen  -char
     register CKG_SFREQAUX_MD 	(addr+0x1EC) -group ClockGen  -char
     register CKG_SFAUXcontroller (addr+0x1ED) -group ClockGen  -char
  }
}


proc ConfigurationRegisters addr=$1 dvd=$2 {
  if (clsymbol ST_reg_debug) { write "ConfigurationRegisters @ " -x (addr) " dvd=" (dvd)}
  register CFG_MCF (addr)      -group Configuration -char
  register CFG_CCF (addr+0x1)  -group Configuration -char
  register CFG_DRC (addr+0x38) -group Configuration -char
  register CFG_GCF (addr+0x3a) -group Configuration -char
  if (dvd == false) {
    register CFG_CDR (addr+0x44) -group Configuration -char -writeonly
  }
}

proc DCU2Registers addr=$1 {
  if (clsymbol ST_reg_debug) { write "DCU2Registers @ " -x (addr)}
  register Status                 (addr)      -group DCU -readonly
  register Control                (addr+0x4)  -group DCU
  register Signalling             (addr+0x8)  -group DCU
  register TriggerInProperties    (addr+0xc)  -group DCU
  register Breakpoint1            (addr+0x20) -group DCU
  register Breakpoint2            (addr+0x24) -group DCU
  register Breakpoint12Properties (addr+0x2c) -group DCU
  register Breakpoint3            (addr+0x40) -group DCU
  register Breakpoint4            (addr+0x44) -group DCU
  register Breakpoint34Properties (addr+0x4c) -group DCU
  register WatchpointLower        (addr+0x60) -group DCU
  register WatchpointUpper        (addr+0x64) -group DCU
  register WatchpointAddress      (addr+0x68) -group DCU
  register WatchpointProperties   (addr+0x6c) -group DCU
  register JumptraceIptr          (addr+0x80) -group DCU -readonly
  register JumptraceFrom          (addr+0x84) -group DCU -readonly
  register JumptraceAddress       (addr+0x88) -group DCU
  register JumptraceProperties    (addr+0x8c) -group DCU
}

proc DigitalEncoder1Registers addr=$1 i=0 {
  ## For earlier DENCs, eg STi5500 and STi5505
  if (clsymbol ST_reg_debug) { write "DigitalEncoder1Registers @ " -x (addr)}
  for (i=0;i<7;i++) {
    register ("configuration"+(mkstr(i))) (addr+i)      -group DENC -char
  }
  for (i=1;i<3;i++) {
    register ("phase_dfs"    +(mkstr(i))) (addr+0xc+i)  -group DENC -char
  }
  for (i=1;i<4;i++) {
    register ("increment_dfs"+(mkstr(i))) (addr+0x9+i)  -group DENC -char
    register ("line_reg"     +(mkstr(i))) (addr+0x14+i) -group DENC -char
    register ("cgms_bit"     +(mkstr(i))) (addr+0x1e+i) -group DENC -char
  }
  for (i=1;i<5;i++) {
    register ("ttx_block"+(mkstr(i)))     (addr+0x21+i) -group DENC -char
  }
  register dencstatus    (addr+0x9)  -group DENC -char -readonly
  register chipid        (addr+0x11) -group DENC -char -readonly
  register revid         (addr+0x12) -group DENC -char -readonly
  register ttx_block_map (addr+0x26) -group DENC -char
  register cccf11        (addr+0x27) -group DENC -char
  register cccf12        (addr+0x28) -group DENC -char
  register cccf21        (addr+0x29) -group DENC -char
  register cccf22        (addr+0x2a) -group DENC -char
  register cclif1        (addr+0x2b) -group DENC -char
  register cclif2        (addr+0x2c) -group DENC -char
}

proc DigitalEncoder2Registers addr=$1 chiptype=$2 i=0 {
  ## For later DENCs, eg STi5508/18 , STi5510&12
  if (clsymbol ST_reg_debug) { write "DigitalEncoder2Registers @ " -x (addr) " chiptype=" (chiptype)}
  for (i=0;i<9;i++) {
    register ("DEN_CFG"+(mkstr(i))) (addr+i) -group DENC -char
  }
  for (i=1;i<4;i++) {
    register ("DEN_IDFS"+(mkstr(i))) (addr+0x09+i) -group DENC -char
    register ("DEN_LJMP"+(mkstr(i))) (addr+0x14+i) -group DENC -char
    register ("DEN_CGMS"+(mkstr(i))) (addr+0x1E+i) -group DENC -char
  }

  register DEN_STA   (addr+0x09) -group DENC -char -readonly
  register DEN_PDFS1 (addr+0x0D) -group DENC -char
  register DEN_PDFS2 (addr+0x0E) -group DENC -char
  register DEN_WSS1  (addr+0x0F) -group DENC -char
  register DEN_WSS2  (addr+0x10) -group DENC -char
  register DEN_DAC13 (addr+0x11) -group DENC -char
  register DEN_DAC45 (addr+0x12) -group DENC -char
  register DEN_DAC6C (addr+0x13) -group DENC -char
  register DEN_CID   (addr+0x18) -group DENC -char -readonly

  for (i=1;i<7;i++) {
    register ("DEN_VPS"+(mkstr(i))) (addr+0x18+i) -group DENC -char
  } 
  for (i=1;i<5;i++) {
    register ("DEN_TTX"+(mkstr(i))) (addr+0x21+i) -group DENC -char
  }  

  register DEN_TTXM  (addr+0x26) -group DENC -char
  register DEN_CCF11 (addr+0x27) -group DENC -char
  register DEN_CCF12 (addr+0x28) -group DENC -char
  register DEN_CCF21 (addr+0x29) -group DENC -char
  register DEN_CCF22 (addr+0x2A) -group DENC -char
  register DEN_CLF1  (addr+0x2B) -group DENC -char
  register DEN_CLF2  (addr+0x2C) -group DENC -char

  if (chiptype != "5510") {
    register DEN_REG_64  (addr+0x40) -group DENC -char
    register DEN_REG_65  (addr+0x41) -group DENC -char
    register DEN_REG_69  (addr+0x45) -group DENC -char
    register DEN_REG_70  (addr+0x46) -group DENC -char
    register DEN_REG_71  (addr+0x47) -group DENC -char
  }
}

proc EMIRegisters addr=$1 pads=$2 dram=$3 chiptype=$4 type="EMI" b=0 i=0 offset=0 {
  if ($# >4) { type=$5 }
  if (clsymbol ST_reg_debug) { write "EMIRegisters @ " -x (addr) " pads=" (pads) " dram=" (dram) " chiptype=" (chiptype) " type=" (type)}
  offset=0
  for (b=0;b<4;b++) { 
    for (i=0;i<4;i++) {
      register ((type)+"ConfigData"+(mkstr(i))+"Bank"+(mkstr(b))) (addr+offset) -group (type)
      offset += 4
    } 
  }
  for (b=0;b<4;b++) {
    register ((type)+"ConfigLockBank"+(mkstr(b))) (addr+offset) -group (type) -writeonly
    offset += 4
  }
  register ((type)+"ConfigStatus")   (addr+0x50) -group (type) -readonly
  if (dram == true) {
    register ((type)+"DRAMInitialize") (addr+0x60) -group (type) -writeonly
  }
  if (pads == true) {
    register ((type)+"ConfigPadLogic") (addr+0x70) -group (type)
  }
  if ((chiptype == "5512" ) || (chiptype == "5508") || (chiptype == "5518") || (chiptype == "dc1")) {
    register ((type)+"SDRAMModeReg0") (addr+0x58) -group (type) -char -writeonly
    register ((type)+"SDRAMModeReg1") (addr+0x5C) -group (type) -char -writeonly
    register ((type)+"SDRAMNOPGen")   (addr+0x64) -group (type) -char -writeonly
  }  
}

proc EMI4Registers addr=$1 mpx=$2 sdram=$3 chiptype=$4 type="EMI4" b=0 i=0 offset=0 {
  if ($# >4) { type=$5 }

  register ((type)+"VCR") (addr) -group (type) -readonly 
  register ((type)+"STATUSCFG") (addr+0x10) -group (type) -readonly 
  register ((type)+"STATUSLOCK") (addr+0x18) -group (type) -readonly 
  register ((type)+"LOCK") (addr+0x20) -group (type) -writeonly
  register ((type)+"GENCFG") (addr+0x28) -group (type)

  if (sdram == true) {
      register ((type)+"SDRAMNOPGEN") (addr+0x30) -group (type) -writeonly
      register ((type)+"SDRAMODEREG") (addr+0x38) -group (type) -writeonly
      register ((type)+"SDRAMINIT") (addr+0x40) -group (type) -writeonly
      register ((type)+"REFRESHINT") (addr+0x48) -group (type)
  }

  register ((type)+"FLASHCLKSEL") (addr+0x50) -group (type)  

  if (sdram == true) {
     register ((type)+"SDRAMCLKSEL") (addr+0x58) -group (type)
  }

  if (mpx == true) {
     register ((type)+"MPXCLKSEL") (addr+0x60) -group (type)
  }

  register ((type)+"CLKENABLE") (addr+0x68) -group (type) -writeonly

  if (clsymbol ST_reg_debug) { write "EMI4Registers @ " -x (addr) " mpx=" (mpx) " sdram=" (sdram) " chiptype=" (chiptype) " type=" (type)}
  offset=0
  addr += 0x100
  for (b=0;b<6;b++) { 
    for (i=0;i<4;i++) {
      register ((type)+"ConfigData"+(mkstr(i))+"Bank"+(mkstr(b))) (addr+offset) -group (type)
      offset += 0x8
    } 
    offset += 0x20
  }
}


proc ExceptionVectorTableRegisters addr=$1 numint=$2 i=0 {
  if (clsymbol ST_reg_debug) { write "ExceptionVectorTableRegisters @ " -x (addr) } 
  register TimesliceTrap         (addr-0x01c) -group ExceptionVectorTable
  register StopTrap              (addr-0x018) -group ExceptionVectorTable
  register RunTrap               (addr-0x014) -group ExceptionVectorTable
  register ScheduleExceptionTrap (addr-0x010) -group ExceptionVectorTable
  register IdleTrap              (addr-0x00c) -group ExceptionVectorTable
  register IllegalIntrTrap       (addr-0x008) -group ExceptionVectorTable
  register BreakpointTrap        (addr-0x004) -group ExceptionVectorTable

  for (i=0; i<numint; i++) {
    register ("Interrupt"+(mkstr(i))+"Trap") (addr+     +(4*i)) -group ExceptionVectorTable
  }

}

proc IEEE1284ParallelPortRegisters addr=$1 {
  if (clsymbol ST_reg_debug) { write "IEEE1284ParallelPortRegisters @ " -x (addr) } 
  register 1284ModeEnable  (addr)      -group IEEE1284ParallelPort -writeonly
  register 1284PulseWidth  (addr+0x4)  -group IEEE1284ParallelPort -writeonly
  register 1284Control     (addr+0x8)  -group IEEE1284ParallelPort -writeonly
  register 1284Status      (addr+0xc)  -group IEEE1284ParallelPort -readonly
  register 1284PinIn       (addr+0x10) -group IEEE1284ParallelPort -readonly
  register 1284PinInEnable (addr+0x14) -group IEEE1284ParallelPort
  register 1284PinInValue  (addr+0x18) -group IEEE1284ParallelPort
  register 1284PinOut      (addr+0x1c) -group IEEE1284ParallelPort
  ## don't touch DataIn,DataOut
  ## register 1284DataIn     (addr+0x20) -group IEEE1284ParallelPort -readonly
  ## register 1284DataOut    (addr+0x20) -group IEEE1284ParallelPort -writeonly
  register 1284Checksum    (addr+0x28) -group IEEE1284ParallelPort
  register 1284PacketSize  (addr+0x2c) -group IEEE1284ParallelPort -writeonly
  register 1284DmaToken    (addr+0x30) -group IEEE1284ParallelPort
  register 1284DmaAddress  (addr+0x40) -group IEEE1284ParallelPort -writeonly
  register 1284DmaCount    (addr+0x44) -group IEEE1284ParallelPort
  register 1284DmaControl  (addr+0x48) -group IEEE1284ParallelPort
  register 1284IntEnable   (addr+0x4c) -group IEEE1284ParallelPort

⌨️ 快捷键说明

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