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

📄 conftest.gel

📁 使用於 TI dsk6711中的很多好用的例子可以看
💻 GEL
📖 第 1 页 / 共 2 页
字号:
/*  (revision 2.15.05) + C6711 changes
 * 
 * This GEL file (ConfTest.gel) is loaded on the command line 
 * of Code Composer. It loads the CnfDSP.out file and sets up 
 * hotmenu items to run the DSP code without the Host program.
 * Also, it provides example code on how to reset the C6x DSP 
 * and initialize the External Memory Interface.
 * 
 */

/*
 * The StartUp() function is called every time you start
 * Code Composer.  You can customize this function to
 * initialize wait states in the EMIF or to perform 
 * other initialization.
 */
StartUp()
{
    setup_memory_map();
    init_emif();
    GEL_Load("c:\\ti\\c6000\\dsk6x11\\conftest\\CnfDSP.out");
}

/*
 * Menuitem creates a selection available beneath the GEL
 * menu selection in Code Composer Studio.
 */
menuitem "Resets";

hotmenu Reset_BreakPts_and_EMIF()
{
  GEL_BreakPtReset();
  GEL_Reset();
  init_emif();
}

hotmenu Halt_Proc()
{
    GEL_Halt();
}

menuitem "Memory Map";

hotmenu SetMemoryMap()
{
    setup_memory_map();
}

hotmenu ClearMemoryMap()
{
    clear_memory_map();
}

menuitem "Confidence Test";

hotmenu Handshake()
{
    do_HandShake();
    GEL_OpenWindow("CnfTst Errors",0,10);
}

hotmenu ISRAM()
{
    CheckResults();
    do_ISRAM();
}

hotmenu SDRAM()
{
    CheckResults();
    do_SDRAM();
}

hotmenu MCBSP()
{
    CheckResults();
    do_MCBSP();
}

hotmenu TIMER()
{
    CheckResults();
    do_TIMER();
}

hotmenu QDMA()
{
    CheckResults();
    do_QDMA();
}

hotmenu LEDS()
{
    CheckResults();
    do_LEDS();
}

hotmenu CODEC()
{
    CheckResults();
    do_CODEC();
}

hotmenu PGMEM()
{
    CheckResults();
    do_PGMEM();
}

hotmenu Quit()
{
    CheckResults();
    do_QUIT();
}

menuitem "User Interface"

slider Blinks(0, 10 ,1, 1, numblinks)
{
	handShakingBuffer[0] = numblinks;
}

slider Period(100, 1000, 1, 1, tperiod)
{
	handShakingBuffer[1] = tperiod;
}

dialog Program_SDRAM(Value "Value to Write",Offset "Address Offset",NumTimes "Number of Words")
{
	handShakingBuffer[0] = Value;
	handShakingBuffer[1] = Offset;
	handShakingBuffer[2] = NumTimes;
}

menuitem "HandShakingBuffer Check";

hotmenu Command_Word()
{
    ReadCommand();
}

hotmenu Return_Word()
{
    CheckResults();
}

hotmenu Status_Word()
{
    ReadStatus();
}

hotmenu Memory_View_HSB()
{
    GEL_OpenWindow("HandShakingBuffer",0,10);
	ShowHSB();
}

dialog HandShakingBuffer(Word0 "handShakingBuffer[0] = IDPARM1 Word",
                         Word1 "handShakingBuffer[1] = IDPARM2 Word",
                         Word2 "handShakingBuffer[2] = IDPARM3 Word",
                         Word3 "handShakingBuffer[3] = COMMAND Word",
                         Word4 "handShakingBuffer[4] = STATUS Word",
                         Word5 "handShakingBuffer[5] = RETURN Word")
{
	handShakingBuffer[0] = Word0;
	handShakingBuffer[1] = Word1;
	handShakingBuffer[2] = Word2;       
	handShakingBuffer[3] = Word3;
	handShakingBuffer[4] = Word4;
	handShakingBuffer[5] = Word5;
}

/*
 * Initialize the EMIF
 */
init_emif()
{
  #define EMIF_GCTL         0x01800000
  #define EMIF_CE1          0x01800004
  #define EMIF_CE0          0x01800008
  #define EMIF_CE2          0x01800010
  #define EMIF_CE3          0x01800014
  #define EMIF_SDRAMCTL     0x01800018
  #define EMIF_SDRAMTIMING  0x0180001C
  #define EMIF_SDRAMEXT     0x01800020
  
/*************************************************************************
* Standard 6211 DSK includes 2 MT48LC1M16A1-7 devices =>4MB SDRAM        *
*   16Mb (16-bit x 2 banks x 512K) parts = 2MB / part                    *
*   EMIF_SDCTRL=0x07227000                                               *
*   EMIF_SDEXT=0x54529                         Board Rev = 1             *
*------------------------------------------------------------------------*
* Standard 6711 DSK includes 2 MT48LC4M16A2-8 devices =>16MB SDRAM       *
*   64Mb (16-bit x 4 banks x 1M)   parts = 8MB / part                    *
*   EMIF_SDCTRL=0x57116000                                               *
*   EMIF_SDEXT=0x54529 (Hitachi 0x54509)       Board Rev = 2             *
*------------------------------------------------------------------------*
* Other 6711 DSK configurations are as follows:                          *
*   128Mb (16-bit x 4 banks x 2M)  parts = 16MB / part (=>32MB SDRAM)    *
*   EMIF_SDCTRL=0x53116000                                               *
*   EMIF_SDEXT=0x54529 (Hitachi 0x54509)       Board Rev = 3             *
*   ---------------------------------------------------------------------*
*   256Mb (16-bit x 4 banks x 4M)  parts = 32MB / part (=>64MB SDRAM)    *
*   EMIF_SDCTRL=0x63116000                                               *
*   EMIF_SDEXT=0x54529                         Board Rev = 4             *
*************************************************************************/

  *(int *)EMIF_GCTL = 0x00003040;/* EMIF global control register         */
  *(int *)EMIF_CE1 = 0xFFFFFF23; /* CE1 - 32-bit asynch access after boot*/
  *(int *)EMIF_CE0 = 0xFFFFFF30; /* CE0 - SDRAM                          */
  *(int *)EMIF_CE2 = 0xFFFFFF23; /* CE2 - 32-bit asynch on daughterboard */
  *(int *)EMIF_CE3 = 0xFFFFFF23; /* CE3 - 32-bit asynch on daughterboard */
  *(int *)EMIF_SDRAMCTL = 0x57116000; /* SDRAM control register (100 MHz)*/
  *(int *)EMIF_SDRAMTIMING = 0x0000061A; /* SDRAM Timing register        */
  *(int *)EMIF_SDRAMEXT = 0x00054529; /* SDRAM Extension register        */
}

/*
 * Clear the memory map settings
 */
clear_memory_map()
{
    GEL_MapOff();
}

/*
 * Setup the memory map for the c6211 DSK
 */
setup_memory_map()
{
    /* enable the memory map feature in Code Composer Studio */
    GEL_MapOn();            

    /* start out by resetting all memory to unreadable and unwritable */
    GEL_MapReset();         

    /* the syntax for GEL_MapAdd(address, page, length, readable, writeable)
     *            page:      Program Memory = 0, Data Memory = 1, I/O Space = 2
     *            readable:  Not Readable = 0,  Readable = 1
     *            writeable: Not Writeable = 0, Writeable = 1
    */

    /* C6211 DSK-specific memory mapping                                        */
    /*--------------------------------------------------------------------------*/
    GEL_MapAdd(0x00000000,0,0x00010000,1,1); /* Internal L2 memory              */
    GEL_MapAdd(0x01800000,0,0x00000024,1,1); /* EMIF control registers          */
    GEL_MapAdd(0x01840000,0,0x00000004,1,1); /* L2 cache configuration register */
    GEL_MapAdd(0x01844000,0,0x00000038,1,1); /* L2 control registers            */
    GEL_MapAdd(0x01845000,0,0x00000008,1,1); /* L2 flush/clean registers        */
    GEL_MapAdd(0x01848200,0,0x00000010,1,1); /* CE0 memory attribute registers  */
    GEL_MapAdd(0x01848240,0,0x00000010,1,1); /* CE1 memory attribute registers  */
    GEL_MapAdd(0x01848280,0,0x00000010,1,1); /* CE2 memory attribute registers  */
    GEL_MapAdd(0x018482c0,0,0x00000010,1,1); /* CE3 memory attribute registers  */
    GEL_MapAdd(0x01880000,0,0x00000004,1,1); /* HPI registers                   */
    GEL_MapAdd(0x018c0000,0,0x00000028,1,1); /* McBSP0 registers                */
    GEL_MapAdd(0x01900000,0,0x00000028,1,1); /* McBSP1 registers                */
    GEL_MapAdd(0x01940000,0,0x0000000c,1,1); /* Timer0 registers                */
    GEL_MapAdd(0x01980000,0,0x0000000c,1,1); /* Timer1 registers                */
    GEL_MapAdd(0x019c0000,0,0x0000000c,1,1); /* Interrupt selector registers    */
    GEL_MapAdd(0x01a00000,0,0x00000800,1,1); /* EDMA parameter RAM              */
    GEL_MapAdd(0x01a0ffe0,0,0x00000020,1,1); /* EDMA control registers          */
    GEL_MapAdd(0x02000000,0,0x00000014,0,1); /* QDMA registers                  */
    GEL_MapAdd(0x02000020,0,0x00000014,0,1); /* QDMA pseudo-registers           */
    GEL_MapAdd(0x30000000,0,0x04000000,1,1); /* McBSP0 data                     */
    GEL_MapAdd(0x34000000,0,0x04000000,1,1); /* McBSP1 data                     */
    GEL_MapAdd(0x80000000,0,0x10000000,1,1); /* CE0 - SDRAM                     */
    GEL_MapAdd(0x90000000,0,0x00200000,1,1); /* CE1 - 8-bit ROM                 */
    GEL_MapAdd(0x90080000,0,0x00000004,1,1); /* 8-bit I/O port LED              */
    GEL_MapAdd(0xA0000000,0,0x10000000,1,1); /* CE2 - Daughtercard              */
}

/* Confidence Test Commands */
#define ISRAM 0x1000
#define SDRAM 0x2000
#define MCBSP 0x3000
#define TIMER 0x4000
#define QDMA  0x5000
#define LEDS  0x6000
#define CODEC 0x7000
#define PGMEM 0x9000
/* Confidence Test Status */
#define HOST_RECEIVE_HAND_SHAKING_INFO 0x55555555
#define HOST_STATUS_INPUT_READY	       0x77777777
#define HOST_STATUS_END_PROCESSING	   0xFFFFFFFF
#define DSP_STATUS_OUTPUT_READY		   0x66666666
#define DSP_PROCESSING_COMMAND		   0x88888888
/*Confidence Test Return Codes */
#define HANDSHAKEOK	0xCCCCCCCC
#define ISRAM_OK	0x10000000
#define ISRAM_ERR55 0x10005555
#define ISRAM_ERRAA 0x1000AAAA
#define ISRAM_ERROR 0x1000FFFF
#define SDRAM_OK  	0x20000000
#define SDRAM_ERR55 0x20005555
#define SDRAM_ERRAA 0x2000AAAA
#define SDRAM_ERROR 0x2000FFFF
#define MCBSP_OK  	0x40000000
#define MCBSP_ERROR 0x4000FFFF
#define TIMER_OK  	0x50000000
#define TIMER_ERROR 0x5000FFFF
#define QDMA_OK     0x60000000
#define QDMA_ERROR  0x6000FFFF
#define LEDS_OK     0x70000000
#define LEDS_ERROR  0x7000FFFF
#define CODEC_OK    0x80000000
#define CODEC_ERRTN 0x80005555
#define CODEC_ERRCD 0x8000AAAA
#define CODEC_ERROR 0x8000FFFF
#define PGMEM_OK    0xA0000000
#define PGMEM_ERROR 0xA000FFFF
#define TEST_DISABLED 0xFF00FFFF
#define DEFAULT_ERROR 0xF000FFFF
/* Confidence Test HandShakingBuffer  */
#define HSB_IDPARM1      0x00000200
#define HSB_IDPARM2      0x00000204
#define HSB_IDPARM3      0x00000208
#define HSB_COMMAND      0x0000020C
#define HSB_STATUS       0x00000210
#define HSB_RETURN       0x00000214

#define IO_PORT 0x90080000
#define CE1_32  0xFFFFFF23
#define CE1_8   0xFFFFFF03

/* Turns on/off LEDs */
TurnOnUserLED1()
{
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_32);
	GEL_MemoryFill(IO_PORT,2,0x1,0xe000000);      
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_8);           
}
TurnOnUserLED2()
{
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_32);
	GEL_MemoryFill(IO_PORT,2,0x1,0xd000000);                 
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_8);           
}
TurnOnUserLED3()
{
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_32);
	GEL_MemoryFill(IO_PORT,2,0x1,0xb000000);                 
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_8);           
}
TurnOffUserLEDs()
{
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_32);
    GEL_MemoryFill(IO_PORT,2,0x1,0x7000000);                 
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_8);           
}
ToggleUserLEDs(value)
{
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_32);
	GEL_MemoryFill(IO_PORT,2,0x1,value);                 
	GEL_MemoryFill(EMIF_CE1,2,0x1,CE1_8);           
}

do_HandShake()
{
    /* Set Handshake ready */
    GEL_MemoryFill(HSB_STATUS,0,0x1,HOST_RECEIVE_HAND_SHAKING_INFO); 
    GEL_MemoryFill(HSB_RETURN,0,0x1,HANDSHAKEOK); 
    TurnOffUserLEDs();
}

do_ISRAM()
{
    /* Modify Command and Chg status */
    GEL_MemoryFill(HSB_COMMAND,0,0x1,ISRAM);
    GEL_MemoryFill(HSB_STATUS,0,0x1,HOST_STATUS_INPUT_READY);
    TurnOnUserLED1(); /* Test 1 */
}

do_SDRAM()
{
    /* Modify Command and Chg status */
    GEL_MemoryFill(HSB_COMMAND,0,0x1,SDRAM);
    GEL_MemoryFill(HSB_STATUS,0,0x1,HOST_STATUS_INPUT_READY);
    TurnOnUserLED2(); /* Test 2 */
}

do_MCBSP()
{
    /* Modify Command and Chg status */
    GEL_MemoryFill(HSB_COMMAND,0,0x1,MCBSP);
    GEL_MemoryFill(HSB_STATUS,0,0x1,HOST_STATUS_INPUT_READY);
    TurnOnUserLED3(); /* Test 3 */
}

⌨️ 快捷键说明

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