📄 dsk.gel
字号:
/* set PMST to: MP = OVLY = 1; DROM off, CLKOUT on */
#define PMST 0x1d
#define PMST_VAL 0xffe0
/* set wait-state control reg for: 2 w/s or more on i/o; one for ext memory */
#define SWWSR 0x28
#define SWWSR_VAL 0x0209
/* set external-banks switch control for: no bank switching; BH set */
#define BSCR 0x29
#define BSCR_VAL 0x02
/* Set Default Reset Initialization Value */
#define ZEROS 0x0000
/* Set Peripheral Control Register Addresses for DEV_RESET */
#define IFR 0x0001
#define DMPREC 0x0054
#define DMSA 0x0055
#define DMSDI 0x0056
#define DMA_CH0_DMFSC_SUB_ADDR 0x0003
#define DMA_CH1_DMFSC_SUB_ADDR 0x0008
#define DMA_CH2_DMFSC_SUB_ADDR 0x000D
#define DMA_CH3_DMFSC_SUB_ADDR 0x0012
#define DMA_CH4_DMFSC_SUB_ADDR 0x0017
#define DMA_CH5_DMFSC_SUB_ADDR 0x001c
#define MCBSP0_SPSA 0x0038
#define MCBSP0_SPSD 0x0039
#define MCBSP1_SPSA 0x0048
#define MCBSP1_SPSD 0x0049
#define MCBSP2_SPSA 0x0034
#define MCBSP2_SPSD 0x0035
#define MCBSP_SPCR1_SUB_ADDR 0x0000
#define MCBSP_SPCR2_SUB_ADDR 0x0001
#define MCBSP_SRGR1_SUB_ADDR 0x0006
#define MCBSP_SRGR2_SUB_ADDR 0x0007
#define MCBSP_MCR1_SUB_ADDR 0x0008
#define MCBSP_MCR2_SUB_ADDR 0x0009
#define SRGR1_INIT 0x0001
#define PRD0 0x0025
#define TCR0 0x0026
#define PRD1 0x0031
#define TCR1 0x0032
#define TIMER_STOP 0x0010
#define TIMER_RESET 0x0020
#define PRD_DEFAULT 0xFFFF
#define GPIOCR 0x0010
/* The Startup() function is executed when the GEL file is loaded. */
StartUp()
{
GEL_Reset();
GEL_XMDef(0,0x1E,1,0x80000,0x7F);
GEL_XMOn();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x0,0,0xc0000,1,1); /* flash */
GEL_MapAdd(0x0,1,0x10000,1,1); /* flash */
GEL_MemoryFill(0x28,1,1,0xffffH);
}
menuitem "C55x";
hotmenu C55xReset()
{
GEL_Reset();
/* Memory mapping is not used for the C55xx simulator
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(...);
GEL_MapAdd(...);
*/
}
menuitem "C54x";
hotmenu C54x_CPU_Reset()
{
GEL_Reset();
/* GEL_MapReset(); */
/* GEL_MapOff(); */
*(int *)PMST = PMST_VAL;
*(int *)SWWSR = SWWSR_VAL;
*(int *)BSCR = BSCR_VAL;
}
/* All memory maps are based on the PMST value of 0xFFE0 */
hotmenu C541_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x80,0,0x1380,1,1); /* DARAM */
GEL_MapAdd(0x1400,0,0xEC00,1,1); /* External */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x13A0,1,1); /* DARAM */
GEL_MapAdd(0x1400,1,0xEC00,1,1); /* External */
}
hotmenu C542_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x80,0,0x2780,1,1); /* DARAM */
GEL_MapAdd(0x2780,0,0xD880,1,1); /* External */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x27A0,1,1); /* DARAM */
GEL_MapAdd(0x2800,1,0xD800,1,1); /* External */
}
hotmenu C543_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x80,0,0x2780,1,1); /* DARAM */
GEL_MapAdd(0x2780,0,0xD880,1,1); /* External */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x27A0,1,1); /* DARAM */
GEL_MapAdd(0x2800,1,0xD800,1,1); /* External */
}
hotmenu C545_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x80,0,0x1780,1,1); /* DARAM */
GEL_MapAdd(0x1800,0,0xE800,1,1); /* External */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x17A0,1,1); /* DARAM */
GEL_MapAdd(0x1800,1,0xE800,1,1); /* External */
}
hotmenu C546_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_MapAdd(0x80,0,0x1780,1,1); /* DARAM */
GEL_MapAdd(0x1800,0,0xE800,1,1); /* External */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x17A0,1,1); /* DARAM */
GEL_MapAdd(0x1800,1,0xE800,1,1); /* External */
}
hotmenu C548_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x1F80,1,1); /* DARAM */
GEL_MapAdd(0x2000,0,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* External */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x1FA0,1,1); /* DARAM */
GEL_MapAdd(0x2000,1,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C549_Init()
{
C54x_CPU_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x1F80,1,1); /* DARAM */
GEL_MapAdd(0x2000,0,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* External */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x1FA0,1,1); /* DARAM */
GEL_MapAdd(0x2000,1,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5402_Init()
{
/* C54x_CPU_Reset();
* C5402_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x3F80,1,1); /* DARAM */
/*GEL_MapAdd(0x4000,0,0xC000,1,1); /* External */
/*GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
/*GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
/*GEL_MapAdd(0x60,1,0x3FA0,1,1); /* DARAM */
/*GEL_MapAdd(0x4000,1,0xC000,1,1); External */
}
hotmenu C5409_Init()
{
C54x_CPU_Reset();
C5409_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x1F80,1,1); /* DARAM */
GEL_MapAdd(0x2000,0,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* External */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x1FA0,1,1); /* DARAM */
GEL_MapAdd(0x2000,1,0x6000,1,1); /* SARAM */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5410_Init()
{
C54x_CPU_Reset();
C5410_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x1F80,1,1); /* DARAM */
GEL_MapAdd(0x2000,0,0x6000,1,1); /* SARAM1 */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* External */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* SARAM2 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x1FA0,1,1); /* DARAM */
GEL_MapAdd(0x2000,1,0x6000,1,1); /* SARAM1 */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5416_Init()
{
C54x_CPU_Reset();
C5416_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x7F80,1,1); /* DARAM */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* External */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x7FA0,1,1); /* DARAM */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5420_Init()
{
C54x_CPU_Reset();
C5420_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x3F80,1,1); /* DARAM */
GEL_MapAdd(0x4000,0,0x4000,1,1); /* SARAM1 */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* SARAM2 */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* SARAM3 */
GEL_MapAdd(0x28000,0,0x7000,1,1); /* External */
GEL_MapAdd(0x2F000,0,0x1000,1,1); /* SARAM4 */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x3FA0,1,1); /* DARAM */
GEL_MapAdd(0x4000,1,0x4000,1,1); /* SARAM1 */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5421_Init()
{
*(int *)PMST = 0xFFA0;
C5421_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x7F80,1,1); /* DARAM */
GEL_MapAdd(0x8000,0,0x8000,1,1); /* DARAM - Shared */
GEL_MapAdd(0x18000,0,0x8000,1,1); /* DARAM - Shared */
GEL_MapAdd(0x28000,0,0x8000,1,1); /* DARAM - Shared */
GEL_MapAdd(0x38000,0,0x8000,1,1); /* DARAM - Shared */
GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
GEL_MapAdd(0x60,1,0x7FA0,1,1); /* DARAM */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External */
}
hotmenu C5402_DSK_Init()
{
/* C54x_CPU_Reset();
C5402_Periph_Reset();
GEL_MapOn();
GEL_MapReset();
GEL_XMDef(0,0x1e,1,0x8000,0x7f);
GEL_XMOn();
GEL_MapAdd(0x80,0,0x3F80,1,1); /* DARAM */
/* GEL_MapAdd(0x4000,0,0xC000,1,1); /* External */
/* GEL_MapAdd(0x18000,0,0x8000,1,1); /* Extended Addressing - Page 0 */
/* GEL_MapAdd(0x0,1,0x60,1,1); /* MMRs */
/* GEL_MapAdd(0x60,1,0x3FA0,1,1); /* DARAM */
/* GEL_MapAdd(0x4000,1,0xC000,1,1); /* External */
/* GEL_MapAdd(0x0,2,0x6,1,1); /* I/O space */
/* *(int *)0x4@io = 0xff03; /* Enable SRAM */
}
/* ****************************** */
C5402_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
TIMER0_Reset();
TIMER1_Reset();
GPIO_Reset();
}
C5409_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
MCBSP2_Reset();
TIMER0_Reset();
GPIO_Reset();
}
C5410_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
MCBSP2_Reset();
TIMER0_Reset();
GPIO_Reset();
}
C5416_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
MCBSP2_Reset();
TIMER0_Reset();
GPIO_Reset();
}
C5420_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
MCBSP2_Reset();
TIMER0_Reset();
GPIO_Reset();
}
C5421_Periph_Reset()
{
*(int *)IFR = 0xFFFF;
DMA_Reset();
MCBSP0_Reset();
MCBSP1_Reset();
MCBSP2_Reset();
TIMER0_Reset();
GPIO_Reset();
}
DMA_Reset()
{
*(int *)DMPREC = ZEROS;
*(int *)DMSA = DMA_CH0_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
*(int *)DMSA = DMA_CH1_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
*(int *)DMSA = DMA_CH2_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
*(int *)DMSA = DMA_CH3_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
*(int *)DMSA = DMA_CH4_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
*(int *)DMSA = DMA_CH2_DMFSC_SUB_ADDR;
*(int *)DMSDI = ZEROS;
*(int *)DMSDI = ZEROS;
}
MCBSP0_Reset()
{
*(int *)MCBSP0_SPSA = MCBSP_SPCR1_SUB_ADDR;
*(int *)MCBSP0_SPSD = ZEROS;
*(int *)MCBSP0_SPSA = MCBSP_SPCR2_SUB_ADDR;
*(int *)MCBSP0_SPSD = ZEROS;
*(int *)MCBSP0_SPSA = MCBSP_SRGR1_SUB_ADDR;
*(int *)MCBSP0_SPSD = SRGR1_INIT;
*(int *)MCBSP0_SPSA = MCBSP_SRGR2_SUB_ADDR;
*(int *)MCBSP0_SPSD = ZEROS;
*(int *)MCBSP0_SPSA = MCBSP_MCR1_SUB_ADDR;
*(int *)MCBSP0_SPSD = ZEROS;
*(int *)MCBSP0_SPSA = MCBSP_MCR2_SUB_ADDR;
*(int *)MCBSP0_SPSD = ZEROS;
}
MCBSP1_Reset()
{
*(int *)MCBSP1_SPSA = MCBSP_SPCR1_SUB_ADDR;
*(int *)MCBSP1_SPSD = ZEROS;
*(int *)MCBSP1_SPSA = MCBSP_SPCR2_SUB_ADDR;
*(int *)MCBSP1_SPSD = ZEROS;
*(int *)MCBSP1_SPSA = MCBSP_SRGR1_SUB_ADDR;
*(int *)MCBSP1_SPSD = SRGR1_INIT;
*(int *)MCBSP1_SPSA = MCBSP_SRGR2_SUB_ADDR;
*(int *)MCBSP1_SPSD = ZEROS;
*(int *)MCBSP1_SPSA = MCBSP_MCR1_SUB_ADDR;
*(int *)MCBSP1_SPSD = ZEROS;
*(int *)MCBSP1_SPSA = MCBSP_MCR2_SUB_ADDR;
*(int *)MCBSP1_SPSD = ZEROS;
}
MCBSP2_Reset()
{
*(int *)MCBSP2_SPSA = MCBSP_SPCR1_SUB_ADDR;
*(int *)MCBSP2_SPSD = ZEROS;
*(int *)MCBSP2_SPSA = MCBSP_SPCR2_SUB_ADDR;
*(int *)MCBSP2_SPSD = ZEROS;
*(int *)MCBSP2_SPSA = MCBSP_SRGR1_SUB_ADDR;
*(int *)MCBSP2_SPSD = SRGR1_INIT;
*(int *)MCBSP2_SPSA = MCBSP_SRGR2_SUB_ADDR;
*(int *)MCBSP2_SPSD = ZEROS;
*(int *)MCBSP2_SPSA = MCBSP_MCR1_SUB_ADDR;
*(int *)MCBSP2_SPSD = ZEROS;
*(int *)MCBSP2_SPSA = MCBSP_MCR2_SUB_ADDR;
*(int *)MCBSP2_SPSD = ZEROS;
}
TIMER0_Reset()
{
*(int *)TCR0 = TIMER_STOP;
*(int *)PRD0 = PRD_DEFAULT;
*(int *)TCR0 = TIMER_RESET;
}
TIMER1_Reset()
{
*(int *)TCR1 = TIMER_STOP;
*(int *)PRD1 = PRD_DEFAULT;
*(int *)TCR1 = TIMER_RESET;
}
GPIO_Reset()
{
*(int *)GPIOCR = ZEROS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -