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

📄 f2407a.gel

📁 2407的代码程序
💻 GEL
📖 第 1 页 / 共 2 页
字号:
/********************************************************************/

/* 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 + -