1//Original:/proj/frio/dv/testcases/seq/se_loop_ppm_int/se_loop_ppm_int.dsp 2# mach: bfin 3# sim: --environment operating 4 5#include "test.h" 6.include "testutils.inc" 7start 8 9///////////////////////////////////////////////////////////////////////////// 10///////////////////////// Include Files ///////////////////////////// 11///////////////////////////////////////////////////////////////////////////// 12 13include(std.inc) 14include(selfcheck.inc) 15include(symtable.inc) 16include(mmrs.inc) 17 18///////////////////////////////////////////////////////////////////////////// 19///////////////////////// Defines ///////////////////////////// 20///////////////////////////////////////////////////////////////////////////// 21 22#ifndef USER_CODE_SPACE 23#define USER_CODE_SPACE CODE_ADDR_1 // 24#endif 25#ifndef STACKSIZE 26#define STACKSIZE 0x00000010 27#endif 28#ifndef ITABLE 29#define ITABLE CODE_ADDR_2 // 30#endif 31 32///////////////////////////////////////////////////////////////////////////// 33///////////////////////// RESET ISR ///////////////////////////// 34///////////////////////////////////////////////////////////////////////////// 35 36 RST_ISR : 37 38 // Initialize Dregs 39INIT_R_REGS(0); 40 41 // Initialize Pregs 42INIT_P_REGS(0); 43 44 // Initialize ILBM Registers 45INIT_I_REGS(0); 46INIT_M_REGS(0); 47INIT_L_REGS(0); 48INIT_B_REGS(0); 49 50 // Initialize the Address of the Checkreg data segment 51 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 52CHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 53 54 // Setup User Stack 55LD32_LABEL(sp, USTACK); 56USP = SP; 57 58 // Setup Kernel Stack 59LD32_LABEL(sp, KSTACK); 60 61 // Setup Frame Pointer 62FP = SP; 63 64 // Setup Event Vector Table 65LD32(p0, EVT0); 66 67LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 68 [ P0 ++ ] = R0; 69LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 70 [ P0 ++ ] = R0; 71LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 72 [ P0 ++ ] = R0; 73LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 74 [ P0 ++ ] = R0; 75 [ P0 ++ ] = R0; // IVT4 not used 76LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 77 [ P0 ++ ] = R0; 78LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 79 [ P0 ++ ] = R0; 80LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 81 [ P0 ++ ] = R0; 82LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 83 [ P0 ++ ] = R0; 84LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 85 [ P0 ++ ] = R0; 86LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 87 [ P0 ++ ] = R0; 88LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 89 [ P0 ++ ] = R0; 90LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 91 [ P0 ++ ] = R0; 92LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 97 [ P0 ++ ] = R0; 98 99 // Setup the EVT_OVERRIDE MMR 100 R0 = 0; 101LD32(p0, EVT_OVERRIDE); 102 [ P0 ] = R0; 103 104 // Setup Interrupt Mask 105 R0 = -1; 106LD32(p0, IMASK); 107 [ P0 ] = R0; 108 109 // Sync it! 110CSYNC; 111 112LD32_LABEL(r0, USER_CODE); 113RETI = R0; 114RTI; 115 116.dw 0xFFFF 117.dw 0xFFFF 118.dw 0xFFFF 119.dw 0xFFFF 120.dw 0xFFFF 121.dw 0xFFFF 122.dw 0xFFFF 123 124///////////////////////////////////////////////////////////////////////////// 125 126 127///////////////////////////////////////////////////////////////////////////// 128///////////////////////// EMU ISR ///////////////////////////// 129///////////////////////////////////////////////////////////////////////////// 130 131 EMU_ISR : 132 133RTE; 134 135.dw 0xFFFF 136.dw 0xFFFF 137.dw 0xFFFF 138.dw 0xFFFF 139.dw 0xFFFF 140.dw 0xFFFF 141.dw 0xFFFF 142 143///////////////////////////////////////////////////////////////////////////// 144///////////////////////// NMI ISR ///////////////////////////// 145///////////////////////////////////////////////////////////////////////////// 146 147 NMI_ISR : 148 149RTN; 150 151.dw 0xFFFF 152.dw 0xFFFF 153.dw 0xFFFF 154.dw 0xFFFF 155.dw 0xFFFF 156.dw 0xFFFF 157.dw 0xFFFF 158 159///////////////////////////////////////////////////////////////////////////// 160///////////////////////// EXC ISR ///////////////////////////// 161///////////////////////////////////////////////////////////////////////////// 162 163 EXC_ISR : 164 165RTX; 166 167.dw 0xFFFF 168.dw 0xFFFF 169.dw 0xFFFF 170.dw 0xFFFF 171.dw 0xFFFF 172.dw 0xFFFF 173.dw 0xFFFF 174 175///////////////////////////////////////////////////////////////////////////// 176///////////////////////// HWE ISR ///////////////////////////// 177///////////////////////////////////////////////////////////////////////////// 178 179 HWE_ISR : 180 181RTI; 182 183.dw 0xFFFF 184.dw 0xFFFF 185.dw 0xFFFF 186.dw 0xFFFF 187.dw 0xFFFF 188.dw 0xFFFF 189.dw 0xFFFF 190 191///////////////////////////////////////////////////////////////////////////// 192///////////////////////// TMR ISR ///////////////////////////// 193///////////////////////////////////////////////////////////////////////////// 194 195 TMR_ISR : 196 197RTI; 198 199.dw 0xFFFF 200.dw 0xFFFF 201.dw 0xFFFF 202.dw 0xFFFF 203.dw 0xFFFF 204.dw 0xFFFF 205.dw 0xFFFF 206 207///////////////////////////////////////////////////////////////////////////// 208///////////////////////// IGV7 ISR ///////////////////////////// 209///////////////////////////////////////////////////////////////////////////// 210 211 IGV7_ISR : 212 213RTI; 214 215.dw 0xFFFF 216.dw 0xFFFF 217.dw 0xFFFF 218.dw 0xFFFF 219.dw 0xFFFF 220.dw 0xFFFF 221.dw 0xFFFF 222 223///////////////////////////////////////////////////////////////////////////// 224///////////////////////// IGV8 ISR ///////////////////////////// 225///////////////////////////////////////////////////////////////////////////// 226 227 IGV8_ISR : 228 229RTI; 230 231.dw 0xFFFF 232.dw 0xFFFF 233.dw 0xFFFF 234.dw 0xFFFF 235.dw 0xFFFF 236.dw 0xFFFF 237.dw 0xFFFF 238 239///////////////////////////////////////////////////////////////////////////// 240///////////////////////// IGV9 ISR ///////////////////////////// 241///////////////////////////////////////////////////////////////////////////// 242 243 IGV9_ISR : 244 245RTI; 246 247.dw 0xFFFF 248.dw 0xFFFF 249.dw 0xFFFF 250.dw 0xFFFF 251.dw 0xFFFF 252.dw 0xFFFF 253.dw 0xFFFF 254 255///////////////////////////////////////////////////////////////////////////// 256///////////////////////// IGV10 ISR ///////////////////////////// 257///////////////////////////////////////////////////////////////////////////// 258 259 IGV10_ISR : 260 261RTI; 262 263.dw 0xFFFF 264.dw 0xFFFF 265.dw 0xFFFF 266.dw 0xFFFF 267.dw 0xFFFF 268.dw 0xFFFF 269.dw 0xFFFF 270 271///////////////////////////////////////////////////////////////////////////// 272///////////////////////// IGV11 ISR ///////////////////////////// 273///////////////////////////////////////////////////////////////////////////// 274 275 IGV11_ISR : 276 277RTI; 278 279.dw 0xFFFF 280.dw 0xFFFF 281.dw 0xFFFF 282.dw 0xFFFF 283.dw 0xFFFF 284.dw 0xFFFF 285.dw 0xFFFF 286 287///////////////////////////////////////////////////////////////////////////// 288///////////////////////// IGV12 ISR ///////////////////////////// 289///////////////////////////////////////////////////////////////////////////// 290 291 IGV12_ISR : 292 293RTI; 294 295.dw 0xFFFF 296.dw 0xFFFF 297.dw 0xFFFF 298.dw 0xFFFF 299.dw 0xFFFF 300.dw 0xFFFF 301.dw 0xFFFF 302 303///////////////////////////////////////////////////////////////////////////// 304///////////////////////// IGV13 ISR ///////////////////////////// 305///////////////////////////////////////////////////////////////////////////// 306 307 IGV13_ISR : 308 309RTI; 310 311.dw 0xFFFF 312.dw 0xFFFF 313.dw 0xFFFF 314.dw 0xFFFF 315.dw 0xFFFF 316.dw 0xFFFF 317.dw 0xFFFF 318 319///////////////////////////////////////////////////////////////////////////// 320///////////////////////// IGV14 ISR ///////////////////////////// 321///////////////////////////////////////////////////////////////////////////// 322 323 IGV14_ISR : 324 325RTI; 326 327.dw 0xFFFF 328.dw 0xFFFF 329.dw 0xFFFF 330.dw 0xFFFF 331.dw 0xFFFF 332.dw 0xFFFF 333.dw 0xFFFF 334 335///////////////////////////////////////////////////////////////////////////// 336///////////////////////// IGV15 ISR ///////////////////////////// 337///////////////////////////////////////////////////////////////////////////// 338 339 IGV15_ISR : 340 341RTI; 342 343.dw 0xFFFF 344.dw 0xFFFF 345.dw 0xFFFF 346.dw 0xFFFF 347.dw 0xFFFF 348.dw 0xFFFF 349.dw 0xFFFF 350 351///////////////////////////////////////////////////////////////////////////// 352///////////////////////// USER CODE ///////////////////////////// 353///////////////////////////////////////////////////////////////////////////// 354 355 356 USER_CODE : 357 358NOP;NOP;NOP;NOP; 359NOP;NOP;NOP;NOP; 360NOP;NOP;NOP;NOP; 361NOP;NOP;NOP;NOP; 362 363 P0 = 0x5 (Z); 364 365LSETUP ( l0s , l0s ) LC0 = P0; 366CSYNC; 367l0s:[ -- SP ] = ( R7:5 ); 368 369LSETUP ( l3s , l3e ) LC0 = P0; 370l3s:[ -- SP ] = ( R7:5 ); 371 R6 += 2; 372 R7 += 3; 373NOP; 374 375CSYNC; 376NOP; 377NOP; 378NOP; 379l3e:R5 += 1; 380 381NOP; 382 383LSETUP ( m0s , m0s ) LC1 = P0; 384CSYNC; 385m0s:[ -- SP ] = ( R7:5 ); 386 387LSETUP ( m3s , m3e ) LC1 = P0; 388m3s:[ -- SP ] = ( R7:5 ); 389 R6 += 2; 390 R7 += 3; 391NOP; 392 393CSYNC; 394NOP; 395NOP; 396NOP; 397m3e:R5 += 1; 398 399NOP; 400NOP; 401NOP; 402NOP; 403NOP; 404NOP; 405dbg_pass; // Call Endtest Macro 406 407///////////////////////////////////////////////////////////////////////////// 408///////////////////////// DATA MEMRORY ///////////////////////////// 409///////////////////////////////////////////////////////////////////////////// 410 411.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 412.dd 0xdeadbeef; 413.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw" 414.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 415.dd 0x02020202; 416.dd 0x03030303; 417.dd 0x04040404; 418 419// Define Kernal Stack 420.data 421 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 422 KSTACK : 423 424 .space (STACKSIZE); 425 USTACK : 426 427///////////////////////////////////////////////////////////////////////////// 428///////////////////////// END OF TEST ///////////////////////////// 429///////////////////////////////////////////////////////////////////////////// 430