📄 dsp641x.gel
字号:
/*--------------------------------------------------------------*/
/* DSP641x.gel */
/* This GEL file is to be used with the TMS320C6416 DSP. */
/* Changes may be required to support specific hardware designs */
/*--------------------------------------------------------------*/
/*
* New GEL commands for 2.00
***********************************************************************
* OnPreFileLoaded()
* If defined, this is executed before all file loads
*
* OnFileLoaded(int nErrorCode, int bSymbolsOnly)
* If defined, this is executed after all file loads
*
* OnReset(int nErrorCode)
* If defined, this is executed after "Reset DSP'
*
* OnRestart(int nErrorCode)
* If defined, this is executed after "Restart'
***********************************************************************
*/
/*--------------------------------------------------------------*/
/* The StartUp() function is called each time CCS is started. */
/* Customize this function to perform desired initialization. */
/*--------------------------------------------------------------*/
StartUp()
{
/* setup_memory_map(); this will be hardware specific */
GEL_Reset();
/* init_emif(); this will be hardware specific */
}
/*--------------------------------------------------------------*/
/* init_emif() */
/*--------------------------------------------------------------*/
init_emif()
{
#define EVMDM642_EMIFA_GCTL 0x01800000
#define EVMDM642_EMIFA_CE1 0x01800004
#define EVMDM642_EMIFA_CE0 0x01800008
#define EVMDM642_EMIFA_CE2 0x01800010
#define EVMDM642_EMIFA_CE3 0x01800014
#define EVMDM642_EMIFA_SDRAMCTL 0x01800018
#define EVMDM642_EMIFA_SDRAMTIM 0x0000081b /* SDRAM timing (refresh) */
#define EVMDM642_EMIFA_SDRAMEXT 0x01800020
#define EVMDM642_EMIFA_CE1SECCTL 0x01800044
#define EVMDM642_EMIFA_CE0SECCTL 0x01800048
#define EVMDM642_EMIFA_CE2SECCTL 0x01800050
#define EVMDM642_EMIFA_CE3SECCTL 0x01800054
/*
#define EMIFB_GCTL 0x01A80000
#define EMIFB_CE1 0x01A80004
#define EMIFB_CE0 0x01A80008
#define EMIFB_CE2 0x01A80010
#define EMIFB_CE3 0x01A80014
#define EMIFB_SDRAMCTL 0x01A80018
#define EMIFB_SDRAMREF 0x01A8001c
#define EMIFB_SDRAMEXT 0x01A80020
#define EMIFB_CE1SECCTL 0x01A80044
#define EMIFB_CE0SECCTL 0x01A80048
#define EMIFB_CE2SECCTL 0x01A80050
#define EMIFB_CE3SECCTL 0x01A80054
*/
/*
Put your memory system initialization here
*(int *)EMIFA_GCTL = 0x0001307c;
///EMIFA CE0 SDRAM
*(int *)EMIFA_CE0 = 0xffffffdf;
*(int *)EMIFA_SDRAMCTL = 0x47116000;
*(int *)EMIFA_SDRAMREF = 0x00000600;
*(int *)EMIFA_SDRAMEXT = 0x00054549;
*(int *)EMIFB_GCTL = 0x0001307c;
///EMIFB CE0 CPLD, 8 Bit
*(int *)EMIFB_CE0 = 0xffffff0F;
///EMIFB CE1 FLASH, 8 Bit
*(int *)EMIFB_CE1 = 0xffffff0F;
*/
/***********************added by lixt ***********************/
*(int *)EVMDM642_EMIFA_GCTL = 0x00052078;
*(int *)EVMDM642_EMIFA_CE0 = 0xffffffd3; /* CE0 SDRAM */
*(int *)EVMDM642_EMIFA_CE1 = 0x73a28e01; /* CE1 Flash + CPLD */
*(int *)EVMDM642_EMIFA_CE2 = 0xffffffc3; /* CE2 Daughtercard 32-bit async */
*(int *)EVMDM642_EMIFA_CE3 = 0x22a28a42; /* CE3 Daughtercard 32-bit sync */
*(int *)EVMDM642_EMIFA_SDRAMCTL = 0x57116000; /* SDRAM control */
*(int *)EVMDM642_EMIFA_SDRAMTIM = 0x0000081b; /* SDRAM timing (refresh) */
*(int *)EVMDM642_EMIFA_SDRAMEXT = 0x001faf4d; /* SDRAM extended control */
*(int *)EVMDM642_EMIFA_CE0SECCTL= 0x00000002; /* CE0 Secondary Control Reg. */
*(int *)EVMDM642_EMIFA_CE1SECCTL= 0x00000002; /* CE1 Secondary Control Reg. */
*(int *)EVMDM642_EMIFA_CE2SECCTL= 0x00000002; /* CE2 Secondary Control Reg. */
*(int *)EVMDM642_EMIFA_CE3SECCTL= 0x00000073; /* CE3 Secondary Control Reg. */
}
/*--------------------------------------------------------------*/
/* OnReset() */
/*--------------------------------------------------------------*/
OnReset(int nErrorCode)
{
/* FlushCache(); */
init_emif();
}
/*--------------------------------------------------------------*/
/* FlushCache() */
/*--------------------------------------------------------------*/
FlushCache()
{
/* Invalidate L1I and L1D via CCFG */
*(int *)0x01840000 = (*(int *)0x01840000 | 0x00000300);
/* Clean L2 via L2CLEAN */
*(int *)0x01845004 = 0x1;
}
/*
* OnPreFileLoaded()
* This function is called automatically when the 'Load Program'
* Menu item is selected .....
*/
OnPreFileLoaded()
{
/* GEL_Reset(); -- Commented out for CCS 2.20 */
FlushCache();
init_emif();
}
/*--------------------------------------------------------------*/
/* RESET MENU */
/*--------------------------------------------------------------*/
menuitem "Resets";
hotmenu Reset_BreakPts_and_EMIF()
{
GEL_BreakPtReset();
GEL_Reset();
}
/*
hotmenu Flush_Cache()
{
FlushCache();
}
*/
/*--------------------------------------------------------------*/
/* MEMORY MAP MENU */
/*--------------------------------------------------------------*/
menuitem "Memory Map";
hotmenu SetMemoryMap()
{
setup_memory_map();
}
hotmenu ClearMemoryMap()
{
clear_memory_map();
}
/*--------------------------------------------------------------*/
/* clear_memory_map() */
/*--------------------------------------------------------------*/
clear_memory_map()
{
GEL_MapOff();
}
/*--------------------------------------------------------------*/
/* setup memory map */
/*--------------------------------------------------------------*/
setup_memory_map()
{
GEL_MapOn();
GEL_MapReset();
/*
put hardware specific info here
GEL_MapAdd(0x00000000, 0, 0x00100000, 1, 1);
GEL_MapAdd(0x01800000, 0, 0x00000054, 1, 1);
GEL_MapAdd(0x01A80000, 0, 0x00000054, 1, 1);
GEL_MapAdd(0x01A40000, 0, 0x00001000, 1, 1);
GEL_MapAdd(0x80000000, 0, 0x00080000, 1, 1);
GEL_MapAdd(0x60000000, 0, 0x00800000, 1, 1);
GEL_MapAdd(0x64000000, 0, 0x00800000, 1, 1);
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -