📄 stv0396chip.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 + -