1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
|
/********************************************************************/
/* f28335.gel */
/* Version 4.00.2 */
/* */
/* This GEL file is to be used with the TMS320F28335 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()
{
/* The next line automatically loads the .gel file that comes */
/* with the DSP2833x Peripheral Header Files download. To use, */
/* uncomment, and copy the peripheral header .gel file to */
/* same directory as device .gel file. */
// GEL_LoadGel("$(GEL_file_dir)\\DSP2833x_Peripheral.gel");
}
OnReset(int nErrorCode)
{
C28x_Mode();
XINTF_Enable();
}
OnRestart(int nErrorCode)
{
/* CCS will call OnRestart() when you do a Debug->Restart and */
/* after you load a new file. Between running interrupt based */
/* programs, this function will clear interrupts and help keep */
/* the processor from going off into invalid memory. */
C28x_Mode();
IER = 0;
IFR = 0;
}
OnPreFileLoaded()
{
C28x_Mode();
XINTF_Enable();
GEL_Reset();
}
OnFileLoaded(int nErrorCode, int bSymbolsOnly)
{
}
OnTargetConnect()
{
C28335_Memory_Map(); /* Initialize the CCS memory map */
/* Check to see if CCS has been started-up with the DSP already */
/* running in real-time mode. The user can add whatever */
/* custom initialization stuff they want to each case. */
if (GEL_IsInRealtimeMode()) /* Do real-time mode target initialization */
{
// Note: This case never executes with the simulator
}
else /* Do stop-mode target initialization */
{
// Note: This case always executes with the simulator
}
}
/********************************************************************/
/* F28335 Memory Map */
/* */
/* Note: M0M1MAP and VMAP signals tied high on F28335 core */
/* */
/* 0x000000 - 0x0003ff M0 SARAM (Prog and Data) */
/* 0x000400 - 0x0007ff M1 SARAM (Prog and Data) */
/* 0x000800 - 0x001fff Peripheral Frame0 (PF0) (Data only) */
/* 0x004000 - 0x004fff XINTF Zone 0 (Prog and Data) */
/* 0x005000 - 0x005fff Peripheral Frame3 (PF3) (Data only) */
/* 0x006000 - 0x006fff Peripheral Frame1 (PF1) (Data only) */
/* 0x007000 - 0x007fff Peripheral Frame2 (PF2) (Data only) */
/* 0x008000 - 0x008fff L0 SARAM (Prog and Data) */
/* 0x009000 - 0x009fff L1 SARAM (Prog and Data) */
/* 0x00A000 - 0x00Afff L2 SARAM (Prog and Data) */
/* 0x00B000 - 0x00Bfff L3 SARAM (Prog and Data) */
/* 0x00C000 - 0x00Cfff L4 SARAM (Prog and Data) */
/* 0x00D000 - 0x00Dfff L5 SARAM (Prog and Data) */
/* 0x00E000 - 0x00Efff L6 SARAM (Prog and Data) */
/* 0x00F000 - 0x00Ffff L7 SARAM (Prog and Data) */
/* 0x100000 - 0x1fffff XINTF Zone 6 (Prog and Data) */
/* 0x200000 - 0x2fffff XINTF Zone 7 (Prog and Data */
/* 0x300000 - 0x33ffff Flash (Prog and Data) */
/* 0x380080 - 0x380088 ADC_cal function (Prog and Data) */
/* 0x380090 - 0x380090 PARTID value (Prog and Data) */
/* 0x380400 - 0x3807ff OTP (Prog and Data) */
/* 0x3f8000 - 0x3f8fff L0 SARAM (Prog and Data) */
/* 0x3f9000 - 0x3f9fff L1 SARAM (Prog and Data) */
/* 0x3fA000 - 0x3fAfff L2 SARAM (Prog and Data) */
/* 0x3fB000 - 0x3fBfff L3 SARAM (Prog and Data) */
/* 0x3fe000 - 0x3fffff BOOT ROM (Prog and Data) */
/********************************************************************/
menuitem "Initialize Memory Map";
hotmenu Memory_Map_Off()
{
GEL_MapReset();
GEL_MapOff();
}
hotmenu C28335_Memory_Map()
{
GEL_MapReset();
GEL_MapOn();
/* Program memory map */
GEL_MapAdd(0x000,0,0x400,1,1); /* M0 SARAM */
GEL_MapAdd(0x400,0,0x400,1,1); /* M1 SARAM */
GEL_MapAdd(0x4000,0,0x1000,1,1); /* Zone 0 */
GEL_MapAdd(0x8000,0,0x1000,1,1); /* L0 SARAM */
GEL_MapAdd(0x9000,0,0x1000,1,1); /* L1 SARAM */
GEL_MapAdd(0xA000,0,0x1000,1,1); /* L2 SARAM */
GEL_MapAdd(0xB000,0,0x1000,1,1); /* L3 SARAM */
GEL_MapAdd(0xC000,0,0x1000,1,1); /* L4 SARAM */
GEL_MapAdd(0xD000,0,0x1000,1,1); /* L5 SARAM */
GEL_MapAdd(0xE000,0,0x1000,1,1); /* L6 SARAM */
GEL_MapAdd(0xF000,0,0x1000,1,1); /* L7 SARAM */
GEL_MapAdd(0x100000,0,0x100000,1,1); /* Zone 6 */
GEL_MapAdd(0x200000,0,0x100000,1,1); /* Zone 7 */
GEL_MapAdd(0x300000,0,0x40000,1,1); /* FLASH */
GEL_MapAdd(0x380080,0,0x00009,1,0); /* ADC_cal function*/
GEL_MapAdd(0x380090,0,0x00001,1,0); /* PARTID value */
GEL_MapAdd(0x380400,0,0x00400,1,0); /* OTP */
GEL_MapAdd(0x3f8000,0,0x1000,1,1); /* L0 SARAM Mirror */
GEL_MapAdd(0x3f9000,0,0x1000,1,1); /* L1 SARAM Mirror */
GEL_MapAdd(0x3fA000,0,0x1000,1,1); /* L2 SARAM Mirror */
GEL_MapAdd(0x3fb000,0,0x1000,1,1); /* L3 SARAM Mirror */
GEL_MapAdd(0x3fe000,0,0x2000,1,0); /* BOOT ROM */
/* Data memory map */
GEL_MapAdd(0x000,1,0x400,1,1); /* M0 SARAM */
GEL_MapAdd(0x400,1,0x400,1,1); /* M1 SARAM */
GEL_MapAdd(0x800,1,0x1800,1,1); /* PF0 */
GEL_MapAdd(0x4000,1,0x1000,1,1); /* Zone 0 */
GEL_MapAdd(0x5000,1,0x1000,1,1); /* PF3 */
GEL_MapAdd(0x6000,1,0x1000,1,1); /* PF1 */
GEL_MapAddStr(0x7000,1,0x1000,"R|W|AS2",0); /* PF2 */
GEL_MapAdd(0x8000,1,0x1000,1,1); /* L0 SARAM */
GEL_MapAdd(0x9000,1,0x1000,1,1); /* L1 SARAM */
GEL_MapAdd(0xA000,1,0x1000,1,1); /* L2 SARAM */
GEL_MapAdd(0xB000,1,0x1000,1,1); /* L3 SARAM */
GEL_MapAdd(0xC000,1,0x1000,1,1); /* L4 SARAM */
GEL_MapAdd(0xD000,1,0x1000,1,1); /* L5 SARAM */
GEL_MapAdd(0xE000,1,0x1000,1,1); /* L6 SARAM */
GEL_MapAdd(0xF000,1,0x1000,1,1); /* L7 SARAM */
GEL_MapAdd(0x100000,1,0x100000,1,1); /* Zone 6 */
GEL_MapAdd(0x200000,1,0x100000,1,1); /* Zone 7 */
GEL_MapAdd(0x300000,1,0x40000,1,0); /* FLASH */
GEL_MapAdd(0x380400,1,0x00400,1,0); /* OTP */
GEL_MapAdd(0x380080,1,0x00009,1,0); /* ADC_cal function*/
GEL_MapAdd(0x380090,1,0x00001,1,0); /* PARTID value */
GEL_MapAdd(0x3f8000,1,0x1000,1,1); /* L0 SARAM Mirror */
GEL_MapAdd(0x3f9000,1,0x1000,1,1); /* L1 SARAM Mirror */
GEL_MapAdd(0x3fA000,1,0x1000,1,1); /* L2 SARAM Mirror */
GEL_MapAdd(0x3fb000,1,0x1000,1,1); /* L3 SARAM Mirror */
GEL_MapAdd(0x3fe000,1,0x2000,1,0); /* BOOT ROM */
}
/********************************************************************/
menuitem "Addressing Modes";
hotmenu C28x_Mode()
{
ST1 = ST1 & (~0x0100); /* AMODE = 0 */
ST1 = ST1 | 0x0200; /* OBJMODE = 1 */
}
hotmenu C24x_Mode()
{
ST1 = ST1 | 0x0100; /* AMODE = 1 */
ST1 = ST1 | 0x0200; /* OBJMODE = 1 */
}
hotmenu C27x_Mode()
{
ST1 = ST1 & (~0x0100); /* AMODE = 0 */
ST1 = ST1 & (~0x0200); /* OBJMODE = 0 */
}
/********************************************************************/
/* Enable the XINTF and configure GPIOs for XINTF function */
/********************************************************************/
int TxtOutCtl=0;
menuitem "XINTF Enable"
hotmenu XINTF_Enable()
{
if (TxtOutCtl==0)
{
GEL_TextOut("\nNOTES:\nTo configure the XINTF automatically on reset:\n uncomment the XINTF_Enable call in the OnReset function of the GEL file.");
GEL_TextOut("\nNOTES:\nGel will enable XINTFx16 during Debug only.\nEnable XINTF in code prior to use.");
TxtOutCtl=1;
}
/* enable XINTF clock (XTIMCLK) */
*0x7020 = 0x3700;
/* GPBMUX1: XA0-XA7, XA16, XZCS0, */
/* XZCS7, XREADY, XRNW, XWE0 */
/* GPAMUX2: XA17-XA19, XZCS6 */
/* GPCMUX2: XA8-XA15 */
/* GPCMUX1: XD0-XD15 */
*(unsigned long *)0x6F96 = 0xFFFFFFC0; /* GPBMUX1 */
*(unsigned long *)0x6f88 = 0xFF000000; /* GPAMUX2 */
*(unsigned long *)0x6FA8 = 0x0000AAAA; /* GPCMUX2 */
*(unsigned long *)0x6FA6 = 0xAAAAAAAA; /* GPCMUX1 */
/* Uncomment for x32 data bus */
/* GPBMUX2: XD16-XD31 */
// *(unsigned long *)0x6F98 = 0xFFFFFFFF; /* GPBMUX2 */
/* Zone timing.
/* Each zone can be configured seperately */
/* Uncomment the x16 or the x32 timing */
/* depending on the data bus width for */
/* the zone */
/* x16 Timing */
*(unsigned long *)0x0B20 = 0x0043FFFF; /* Zone0 */
*(unsigned long *)0x0B2C = 0x0043FFFF; /* Zone6 */
*(unsigned long *)0x0B2E = 0x0043FFFF; /* Zone7 */
/* x32 Timing:
// *(unsigned long *)0x0B20 = 0x0041FFFF; /* x32 */
// *(unsigned long *)0x0B2C = 0x0041FFFF; /* x32 */
// *(unsigned long *)0x0B2E = 0x0041FFFF; /* x32 */
}
/********************************************************************/
/*** End of file ***/
|