File: sim28335.gel

package info (click to toggle)
cpputest 4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,688 kB
  • sloc: cpp: 31,212; sh: 4,978; ansic: 1,360; makefile: 775; ruby: 676; xml: 8; sed: 1
file content (247 lines) | stat: -rw-r--r-- 11,144 bytes parent folder | download | duplicates (4)
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 ***/