📄 f2407a.gel
字号:
/********************************************************************/
/* f2407A.gel */
/* Version 3.10 */
/* */
/* This GEL file is to be used with the TMS320LF2407A DSP. */
/* Changes may be required to support specific hardware designs. */
/* */
/* Code Composer Studio supports six reserved GEL functions that */
/* automatically get executed if they are defined. They are: */
/* */
/* StartUp() - Executed whenever CCS is invoked */
/* OnReset() - Executed after Debug->Reset CPU */
/* OnRestart() - Executed after Debug->Restart */
/* OnPreFileLoaded() - Executed before File->Load Program */
/* OnFileLoaded() - Executed after File->Load Program */
/* OnTargetConnect() - Executed after Debug->Connect */
/* */
/********************************************************************/
StartUp()
{
}
OnReset(int nErrorCode)
{
}
OnRestart(int nErrorCode)
{
}
OnPreFileLoaded()
{
}
OnFileLoaded(int nErrorCode, int bSymbolsOnly)
{
}
OnTargetConnect()
{
F2407A_Memory_Map(); /* Initialize the CCS memory map */
GEL_Reset(); /* Reset DSP */
Unlock_CSM(); /* Unlock the CSM */
}
/********************************************************************/
/* These functions are useful to engage/dis-enagage the realtime */
/* monitor during debug. They save the user from having to */
/* manually perform these steps in CCS. */
/* */
/* The user must have included the realtime monitor software in */
/* their application code. */
/********************************************************************/
menuitem "Realtime Monitor Control";
hotmenu Run_Monitor_with_Reset()
{
GEL_Reset(); /* Reset the DSP */
GEL_Go(MON_GO); /* Run the RTM init function */
GEL_EnableRealtime(); /* Enable Realtime mode */
GEL_Run(); /* Run the DSP */
}
hotmenu Run_Monitor_with_Restart()
{
GEL_Restart(); /* Reset the DSP */
GEL_Go(MON_GO); /* Run the RTM init function */
GEL_EnableRealtime(); /* Enable Realtime mode */
GEL_Run(); /* Run the DSP */
}
hotmenu Full_Halt()
{
GEL_Halt(); /* Halt the DSP */
GEL_DisableRealtime(); /* Disable Realtime mode */
}
hotmenu Full_Halt_with_Reset()
{
GEL_Halt(); /* Halt the DSP */
GEL_DisableRealtime(); /* Disable Realtime mode */
GEL_Reset(); /* Reset the DSP */
}
/********************************************************************/
/* F2407A Memory Map */
/* */
/* Map all available program, data, and I/O space memory into CCS. */
/* Illegal and reserved addresses are NOT mapped. */
/* */
/********************************************************************/
menuitem "Initialize Memory Map";
hotmenu F2407A_Memory_Map()
{
int SCSR2; /* SCSR2 Register definition */
GEL_MapReset(); /* Reset the CCS memory map */
GEL_MapOff(); /* Turn off memory mapping */
SCSR2 = *0x7019; /* Read the SCSR2 register */
GEL_MapOn(); /* Turn on memory mapping */
/* Add Flash or external RAM to lower 32Kw of Program Space */
/* based on setting of MPNMC bit (SCSR2.2) */
if(SCSR2 & 4)
GEL_MapAdd(0x0000,0,0x8000,1,1); /* External RAM */
else
GEL_MapAdd(0x0000,0,0x8000,1,0); /* Flash */
/* Other Program Space Memory */
GEL_MapAdd(0x8000,0,0x0800,1,1); /* SARAM */
GEL_MapAdd(0x8800,0,0x7800,1,1); /* External RAM */
/* Data Space Memory */
GEL_MapAdd(0x0004,1,0x0001,1,1); /* IMR Reg */
GEL_MapAdd(0x0006,1,0x0001,1,1); /* IFR Reg */
GEL_MapAdd(0x0060,1,0x0020,1,1); /* DARAM B2 */
GEL_MapAdd(0x0200,1,0x0100,1,1); /* DARAM B0 */
GEL_MapAdd(0x0300,1,0x0100,1,1); /* DARAM B1 */
GEL_MapAdd(0x0800,1,0x0800,1,1); /* SARAM */
GEL_MapAdd(0x7010,1,0x0003,1,1); /* Sys Config and Ctrl Regs */
GEL_MapAdd(0x7014,1,0x0003,1,1); /* Sys Config and Ctrl Regs */
GEL_MapAdd(0x7018,1,0x0002,1,1); /* Sys Config and Ctrl Regs */
GEL_MapAdd(0x701C,1,0x0001,1,1); /* Sys Config and Ctrl Regs */
GEL_MapAdd(0x701E,1,0x0001,1,1); /* Sys Config and Ctrl Regs */
GEL_MapAdd(0x7023,1,0x0001,1,1); /* WD Timer Regs */
GEL_MapAdd(0x7025,1,0x0001,1,1); /* WD Timer Regs */
GEL_MapAdd(0x7029,1,0x0001,1,1); /* WD Timer Regs */
GEL_MapAdd(0x7040,1,0x0003,1,1); /* SPI Regs */
GEL_MapAdd(0x7044,1,0x0001,1,1); /* SPI Regs */
GEL_MapAdd(0x7046,1,0x0004,1,1); /* SPI Regs */
GEL_MapAdd(0x704F,1,0x0001,1,1); /* SPI Regs */
GEL_MapAdd(0x7050,1,0x0008,1,1); /* SCI Regs */
GEL_MapAdd(0x7059,1,0x0001,1,1); /* SCI Regs */
GEL_MapAdd(0x705F,1,0x0001,1,1); /* SCI Regs */
GEL_MapAdd(0x7070,1,0x0002,1,1); /* External-Interrupt Regs */
GEL_MapAdd(0x7090,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x7092,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x7094,1,0x0003,1,1); /* GPIO Regs */
GEL_MapAdd(0x7094,1,0x0003,1,1); /* GPIO Regs */
GEL_MapAdd(0x7098,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x709A,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x709C,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x709E,1,0x0001,1,1); /* GPIO Regs */
GEL_MapAdd(0x70A0,1,0x0018,1,1); /* ADC Regs */
GEL_MapAdd(0x7100,1,0x000F,1,1); /* CAN Control Regs */
GEL_MapAdd(0x7200,1,0x0003,1,1); /* CAN Mailboxes #0 */
GEL_MapAdd(0x7204,1,0x0004,1,1); /* CAN Mailboxes #0 */
GEL_MapAdd(0x7208,1,0x0003,1,1); /* CAN Mailboxes #1 */
GEL_MapAdd(0x720C,1,0x0004,1,1); /* CAN Mailboxes #1 */
GEL_MapAdd(0x7210,1,0x0003,1,1); /* CAN Mailboxes #2 */
GEL_MapAdd(0x7214,1,0x0004,1,1); /* CAN Mailboxes #2 */
GEL_MapAdd(0x7218,1,0x0003,1,1); /* CAN Mailboxes #3 */
GEL_MapAdd(0x721C,1,0x0004,1,1); /* CAN Mailboxes #3 */
GEL_MapAdd(0x7220,1,0x0003,1,1); /* CAN Mailboxes #4 */
GEL_MapAdd(0x7224,1,0x0004,1,1); /* CAN Mailboxes #4 */
GEL_MapAdd(0x7228,1,0x0003,1,1); /* CAN Mailboxes #5 */
GEL_MapAdd(0x722C,1,0x0004,1,1); /* CAN Mailboxes #5 */
GEL_MapAdd(0x7400,1,0x0009,1,1); /* EVA Regs */
GEL_MapAdd(0x7411,1,0x0001,1,1); /* EVA Regs */
GEL_MapAdd(0x7413,1,0x0001,1,1); /* EVA Regs */
GEL_MapAdd(0x7415,1,0x0001,1,1); /* EVA Regs */
GEL_MapAdd(0x7417,1,0x0003,1,1); /* EVA Regs */
GEL_MapAdd(0x7420,1,0x0001,1,1); /* EVA Regs */
GEL_MapAdd(0x7422,1,0x0004,1,1); /* EVA Regs */
GEL_MapAdd(0x7427,1,0x0003,1,1); /* EVA Regs */
GEL_MapAdd(0x742C,1,0x0006,1,1); /* EVA Regs */
GEL_MapAdd(0x7500,1,0x0009,1,1); /* EVB Regs */
GEL_MapAdd(0x7511,1,0x0001,1,1); /* EVB Regs */
GEL_MapAdd(0x7513,1,0x0001,1,1); /* EVB Regs */
GEL_MapAdd(0x7515,1,0x0001,1,1); /* EVB Regs */
GEL_MapAdd(0x7517,1,0x0003,1,1); /* EVB Regs */
GEL_MapAdd(0x7520,1,0x0001,1,1); /* EVB Regs */
GEL_MapAdd(0x7522,1,0x0004,1,1); /* EVB Regs */
GEL_MapAdd(0x7527,1,0x0003,1,1); /* EVB Regs */
GEL_MapAdd(0x752C,1,0x0006,1,1); /* EVB Regs */
GEL_MapAdd(0x77F0,1,0x0004,1,1); /* Code Security Passwords */
GEL_MapAdd(0x8000,1,0x8000,1,1); /* External RAM */
/* I/O Space Memory */
GEL_MapAdd(0x0000,2,0xFF00,1,1); /* External I/O space */
GEL_MapAdd(0xFFFF,2,0x0001,1,1); /* WSGR Reg */
}
/********************************************************************/
menuitem "Watchdog";
hotmenu Disable_WD()
{
*0x7029 = *0x7029 | 0x0068; /* Set the WDDIS bit */
*0x7025 = 0x0055; /* Service the WD */
*0x7025 = 0x00AA; /* once to be safe. */
GEL_TextOut("\nWatchdog Timer Disabled");
}
/********************************************************************/
menuitem "Code Security Module"
hotmenu Unlock_CSM()
{
/* Perform dummy reads of the password locations */
AR0 = *0x0040@PROG;
AR0 = *0x0041@PROG;
AR0 = *0x0042@PROG;
AR0 = *0x0043@PROG;
/* Write passwords to the KEY registers. 0xFFFF's are dummy passwords.
User should replace them with the correct password for their DSP */
*0x77F0 = 0xFFFF;
*0x77F1 = 0xFFFF;
*0x77F2 = 0xFFFF;
*0x77F3 = 0xFFFF;
}
/********************************************************************/
/* The below are used to display the symbolic names of the DSP */
/* peripheral registers in the watch window. To view these */
/* registers, click on the GEL menu button in Code Composer Studio, */
/* then select which registers or groups of registers you want to */
/* view. They will appear in the watch window under the Watch1 tab. */
/********************************************************************/
/* Add a space line to the GEL menu */
menuitem "______________________________________";
hotmenu __() {}
/************************************************************/
/* A/D Converter Registers */
/************************************************************/
menuitem "Watch ADC Control Registers";
hotmenu All_ADC_Regs()
{
GEL_WatchAdd("*0x70A0,x","ADCTRL1");
GEL_WatchAdd("*0x70A1,x","ADCTRL2");
GEL_WatchAdd("*0x70A2,x","MAX_CONV");
GEL_WatchAdd("*0x70A3,x","CHSELSEQ1");
GEL_WatchAdd("*0x70A4,x","CHSELSEQ2");
GEL_WatchAdd("*0x70A5,x","CHSELSEQ3");
GEL_WatchAdd("*0x70A6,x","CHSELSEQ4");
GEL_WatchAdd("*0x70A7,x","AUTO_SEQ_SR");
GEL_WatchAdd("*0x70A8,x","RESULT0");
GEL_WatchAdd("*0x70A9,x","RESULT1");
GEL_WatchAdd("*0x70AA,x","RESULT2");
GEL_WatchAdd("*0x70AB,x","RESULT3");
GEL_WatchAdd("*0x70AC,x","RESULT4");
GEL_WatchAdd("*0x70AD,x","RESULT5");
GEL_WatchAdd("*0x70AE,x","RESULT6");
GEL_WatchAdd("*0x70AF,x","RESULT7");
GEL_WatchAdd("*0x70B0,x","RESULT8");
GEL_WatchAdd("*0x70B1,x","RESULT9");
GEL_WatchAdd("*0x70B2,x","RESULT10");
GEL_WatchAdd("*0x70B3,x","RESULT11");
GEL_WatchAdd("*0x70B4,x","RESULT12");
GEL_WatchAdd("*0x70B5,x","RESULT13");
GEL_WatchAdd("*0x70B6,x","RESULT14");
GEL_WatchAdd("*0x70B7,x","RESULT15");
GEL_WatchAdd("*0x70B8,x","CALIBRATION");
}
hotmenu ADCTRL1()
{
GEL_WatchAdd("*0x70A0,x","ADCTRL1");
}
hotmenu ADCTRL2()
{
GEL_WatchAdd("*0x70A1,x","ADCTRL2");
}
hotmenu MAX_CONV()
{
GEL_WatchAdd("*0x70A2,x","MAX_CONV");
}
hotmenu All_CHSELSEQx_Regs()
{
GEL_WatchAdd("*0x70A3,x","CHSELSEQ1");
GEL_WatchAdd("*0x70A4,x","CHSELSEQ2");
GEL_WatchAdd("*0x70A5,x","CHSELSEQ3");
GEL_WatchAdd("*0x70A6,x","CHSELSEQ4");
}
hotmenu AUTO_SEQ_SR()
{
GEL_WatchAdd("*0x70A7,x","AUTO_SEQ_SR");
}
hotmenu RESULT_0_to_3()
{
GEL_WatchAdd("*0x70A8,x","RESULT0");
GEL_WatchAdd("*0x70A9,x","RESULT1");
GEL_WatchAdd("*0x70AA,x","RESULT2");
GEL_WatchAdd("*0x70AB,x","RESULT3");
}
hotmenu RESULT_4_to_7()
{
GEL_WatchAdd("*0x70AC,x","RESULT4");
GEL_WatchAdd("*0x70AD,x","RESULT5");
GEL_WatchAdd("*0x70AE,x","RESULT6");
GEL_WatchAdd("*0x70AF,x","RESULT7");
}
hotmenu RESULT_8_to_11()
{
GEL_WatchAdd("*0x70B0,x","RESULT8");
GEL_WatchAdd("*0x70B1,x","RESULT9");
GEL_WatchAdd("*0x70B2,x","RESULT10");
GEL_WatchAdd("*0x70B3,x","RESULT11");
}
hotmenu RESULT_12_to_15()
{
GEL_WatchAdd("*0x70B4,x","RESULT12");
GEL_WatchAdd("*0x70B5,x","RESULT13");
GEL_WatchAdd("*0x70B6,x","RESULT14");
GEL_WatchAdd("*0x70B7,x","RESULT15");
}
/************************************************************/
/* CAN Registers */
/************************************************************/
menuitem "Watch CAN Registers";
hotmenu CAN_Control_Regs()
{
GEL_WatchAdd("*0x7100,x","MDER");
GEL_WatchAdd("*0x7101,x","TCR");
GEL_WatchAdd("*0x7102,x","RCR");
GEL_WatchAdd("*0x7103,x","MCR");
GEL_WatchAdd("*0x7104,x","BCR2");
GEL_WatchAdd("*0x7105,x","BCR1");
GEL_WatchAdd("*0x7106,x","ESR");
GEL_WatchAdd("*0x7107,x","GSR");
GEL_WatchAdd("*0x7108,x","CEC");
GEL_WatchAdd("*0x7109,x","CAN_IFR");
GEL_WatchAdd("*0x710A,x","CAN_IMR");
GEL_WatchAdd("*0x710B,x","LAM0_H");
GEL_WatchAdd("*0x710C,x","LAM0_L");
GEL_WatchAdd("*0x710D,x","LAM1_H");
GEL_WatchAdd("*0x710E,x","LAM1_L");
}
hotmenu CAN_Mailbox0_Regs()
{
GEL_WatchAdd("*0x7200,x","MSGID0L");
GEL_WatchAdd("*0x7201,x","MSGID0H");
GEL_WatchAdd("*0x7202,x","MSGCTRL0");
GEL_WatchAdd("*0x7204,x","MBX0A");
GEL_WatchAdd("*0x7205,x","MBX0B");
GEL_WatchAdd("*0x7206,x","MBX0C");
GEL_WatchAdd("*0x7207,x","MBX0D");
}
hotmenu CAN_Mailbox1_Regs()
{
GEL_WatchAdd("*0x7208,x","MSGID1L");
GEL_WatchAdd("*0x7209,x","MSGID1H");
GEL_WatchAdd("*0x720A,x","MSGCTRL1");
GEL_WatchAdd("*0x720C,x","MBX1A");
GEL_WatchAdd("*0x720D,x","MBX1B");
GEL_WatchAdd("*0x720E,x","MBX1C");
GEL_WatchAdd("*0x720F,x","MBX1D");
}
hotmenu CAN_Mailbox2_Regs()
{
GEL_WatchAdd("*0x7210,x","MSGID2L");
GEL_WatchAdd("*0x7211,x","MSGID2H");
GEL_WatchAdd("*0x7212,x","MSGCTRL2");
GEL_WatchAdd("*0x7214,x","MBX2A");
GEL_WatchAdd("*0x7215,x","MBX2B");
GEL_WatchAdd("*0x7216,x","MBX2C");
GEL_WatchAdd("*0x7217,x","MBX2D");
}
hotmenu CAN_Mailbox3_Regs()
{
GEL_WatchAdd("*0x7218,x","MSGID3L");
GEL_WatchAdd("*0x7219,x","MSGID3H");
GEL_WatchAdd("*0x721A,x","MSGCTRL3");
GEL_WatchAdd("*0x721C,x","MBX3A");
GEL_WatchAdd("*0x721D,x","MBX3B");
GEL_WatchAdd("*0x721E,x","MBX3C");
GEL_WatchAdd("*0x721F,x","MBX3D");
}
hotmenu CAN_Mailbox4_Regs()
{
GEL_WatchAdd("*0x7220,x","MSGID4L");
GEL_WatchAdd("*0x7221,x","MSGID4H");
GEL_WatchAdd("*0x7222,x","MSGCTRL4");
GEL_WatchAdd("*0x7224,x","MBX4A");
GEL_WatchAdd("*0x7225,x","MBX4B");
GEL_WatchAdd("*0x7226,x","MBX4C");
GEL_WatchAdd("*0x7227,x","MBX4D");
}
hotmenu CAN_Mailbox5_Regs()
{
GEL_WatchAdd("*0x7228,x","MSGID5L");
GEL_WatchAdd("*0x7229,x","MSGID5H");
GEL_WatchAdd("*0x722A,x","MSGCTRL5");
GEL_WatchAdd("*0x722C,x","MBX5A");
GEL_WatchAdd("*0x722D,x","MBX5B");
GEL_WatchAdd("*0x722E,x","MBX5C");
GEL_WatchAdd("*0x722F,x","MBX5D");
}
/************************************************************/
/* Event Manager A (EV-A) Registers */
/************************************************************/
menuitem "Watch Event Manager A Registers";
hotmenu All_EVA_GPTIMER_Regs()
{
GEL_WatchAdd("*0x7400,x","GPTCONA");
GEL_WatchAdd("*0x7401,x","T1CNT");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -