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

📄 stv0396chip.cfg

📁 flash programming STI 5.5.1.4 DCU3
💻 CFG
字号:
##
## STV0396chip.cfg
##
## Copyright (C) STMicroelectronics Ltd. 2001
##
## Description of the STV0396 device.
##

include ST20C2_C200chip.cfg
include STV0396addr.cfg

## STV0396 watchdog and timer peripheral
##
proc WDTRegisters addr=$1 i=0 {
  if (clsymbol ST_reg_debug) { write "WDTRegisters @ " -x (addr) } 

  register WDTRestart     (addr+0x08)   -group WDT ## reload value is 0xbf3c
  register WDTDelay       (addr+0x04)   -group WDT ## delay before irq, 1 sec is 50000000 ticks
  register WDTCtrl        (addr+0x00)   -group WDT ## bits 0 .. 15 are timeout, bit 16 running, bit 17 enable, bit 19 msk_irq (0 == enable), bit 20 msk_timeout (0 == enable)
  register WDTDelay_Cnt   (addr+0x200)  -group WDT -readonly    ## remaining delay
  register WDTTimeout_Cnt (addr+0x204)  -group WDT -readonly    ## remaining timeout


  register WDTTimer1Retrig  (addr+0x14)  -group WDT ## reload value is 0xd4f1
  register WDTTimer1Preload (addr+0x10)  -group WDT ## delay,  1 sec is 195312 ticks
  register WDTTimer1Ctrl    (addr+0x0c)  -group WDT ## prescalar buts 0 .. 7, mode bits 8 .. 9, enable bit 10
  register WDTTimer1Cnt     (addr+0x208) -group WDT ## remain delay

  register WDTTimer2Retrig  (addr+0x20)  -group WDT ## reload value is 0xd4f1
  register WDTTimer2Preload (addr+0x1c)  -group WDT ## delay,  1 sec is 195312 ticks
  register WDTTimer2Ctrl    (addr+0x18)  -group WDT ## prescalar buts 0 .. 7, mode bits 8 .. 9, enable bit 10
  register WDTTimer2Cnt     (addr+0x20c) -group WDT ## remain delay
}


proc STV0396_registers {
	## TMARegisters
	EMI4Registers (Devices[Devices.EMIindex].addr, false, true, "STV0396")
	## GPDMARegisters
	## MailBoxRegisters
	## EthernetRegisters
	## USBRegisters
	InterruptLevelController2Registers ( \
		Devices[Devices.INTLEVELCTRLindex].addr, \
		Devices[Devices.INTLEVELCTRLNUMINPUTSindex].addr)
	WDTRegisters (Devices[Devices.WDTindex].addr)
	AsynchronousSerialControllerRegisters ( \
		Devices[Devices.ASC0index].addr, 0, true, true, "STV0396")
	for (i=0;i<Devices.NUMSSC;i++) {
		SynchronousSerialController2Registers ( \
			Devices[Devices.SSCindex+i].addr, i)
	} 
	for (i=0;i<Devices.NUMPIO;i++) {
		PIOControllerRegisters (Devices[Devices.PIOindex+i].addr, i)
	}
}

proc STV0396_map {
	memory TMA      (Devices[Devices.TMAindex].addr)      ( 4*K) DEVICE
	memory EMI      (Devices[Devices.EMIindex].addr)      ( 4*K) DEVICE
	memory GPDMA    (Devices[Devices.GPDMAindex].addr)    ( 4*K) DEVICE
	memory MailBox  (Devices[Devices.MailBoxindex].addr)  ( 4*K) DEVICE
	memory Ethernet (Devices[Devices.Ethernetindex].addr) (64*K) DEVICE
	memory USB      (Devices[Devices.USBindex].addr)      (64*K) DEVICE
	memory INT_LEVEL_CTRL (Devices[Devices.INTLEVELCTRLindex].addr) \
	                                                      ( 8*K) DEVICE
	memory WDT      (Devices[Devices.WDTindex].addr)      ( 4*K) DEVICE
	memory ASC0     (Devices[Devices.ASC0index].addr)     ( 4*K) DEVICE
	for (i=0;i<Devices.NUMSSC;i++) {
		memory ("SSC"+(mkstr(i))) \
		        (Devices[Devices.SSCindex+i].addr)    ( 4*K) DEVICE
	}
	for (i=0;i<Devices.NUMPIO;i++) {
		memory ("PIO"+(mkstr(i))) \
		        (Devices[Devices.PIOindex+i].addr)    ( 4*K) DEVICE
	}
}

proc STV0396_chip {
	st20c2_c200_chip
	STV0396_registers
	STV0396_map
}

⌨️ 快捷键说明

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