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" 7 start 8 9 ///////////////////////////////////////////////////////////////////////////// 10 ///////////////////////// Include Files ///////////////////////////// 11 ///////////////////////////////////////////////////////////////////////////// 12 13 include(std.inc) 14 include(selfcheck.inc) 15 include(symtable.inc) 16 include(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 39 INIT_R_REGS(0); 40 41 // Initialize Pregs 42 INIT_P_REGS(0); 43 44 // Initialize ILBM Registers 45 INIT_I_REGS(0); 46 INIT_M_REGS(0); 47 INIT_L_REGS(0); 48 INIT_B_REGS(0); 49 50 // Initialize the Address of the Checkreg data segment 51 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 52 CHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 53 54 // Setup User Stack 55 LD32_LABEL(sp, USTACK); 56 USP = SP; 57 58 // Setup Kernel Stack 59 LD32_LABEL(sp, KSTACK); 60 61 // Setup Frame Pointer 62 FP = SP; 63 64 // Setup Event Vector Table 65 LD32(p0, EVT0); 66 67 LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 68 [ P0 ++ ] = R0; 69 LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 70 [ P0 ++ ] = R0; 71 LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 72 [ P0 ++ ] = R0; 73 LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 74 [ P0 ++ ] = R0; 75 [ P0 ++ ] = R0; // IVT4 not used 76 LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 77 [ P0 ++ ] = R0; 78 LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 79 [ P0 ++ ] = R0; 80 LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 81 [ P0 ++ ] = R0; 82 LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 83 [ P0 ++ ] = R0; 84 LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 85 [ P0 ++ ] = R0; 86 LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 87 [ P0 ++ ] = R0; 88 LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 89 [ P0 ++ ] = R0; 90 LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 91 [ P0 ++ ] = R0; 92 LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 93 [ P0 ++ ] = R0; 94 LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 95 [ P0 ++ ] = R0; 96 LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 97 [ P0 ++ ] = R0; 98 99 // Setup the EVT_OVERRIDE MMR 100 R0 = 0; 101 LD32(p0, EVT_OVERRIDE); 102 [ P0 ] = R0; 103 104 // Setup Interrupt Mask 105 R0 = -1; 106 LD32(p0, IMASK); 107 [ P0 ] = R0; 108 109 // Sync it! 110 CSYNC; 111 112 LD32_LABEL(r0, USER_CODE); 113 RETI = R0; 114 RTI; 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 133 RTE; 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 149 RTN; 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 165 RTX; 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 181 RTI; 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 197 RTI; 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 213 RTI; 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 229 RTI; 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 245 RTI; 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 261 RTI; 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 277 RTI; 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 293 RTI; 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 309 RTI; 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 325 RTI; 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 341 RTI; 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 358 NOP;NOP;NOP;NOP; 359 NOP;NOP;NOP;NOP; 360 NOP;NOP;NOP;NOP; 361 NOP;NOP;NOP;NOP; 362 363 P0 = 0x5 (Z); 364 365 LSETUP ( l0s , l0s ) LC0 = P0; 366 CSYNC; 367 l0s:[ -- SP ] = ( R7:5 ); 368 369 LSETUP ( l3s , l3e ) LC0 = P0; 370 l3s:[ -- SP ] = ( R7:5 ); 371 R6 += 2; 372 R7 += 3; 373 NOP; 374 375 CSYNC; 376 NOP; 377 NOP; 378 NOP; 379 l3e:R5 += 1; 380 381 NOP; 382 383 LSETUP ( m0s , m0s ) LC1 = P0; 384 CSYNC; 385 m0s:[ -- SP ] = ( R7:5 ); 386 387 LSETUP ( m3s , m3e ) LC1 = P0; 388 m3s:[ -- SP ] = ( R7:5 ); 389 R6 += 2; 390 R7 += 3; 391 NOP; 392 393 CSYNC; 394 NOP; 395 NOP; 396 NOP; 397 m3e:R5 += 1; 398 399 NOP; 400 NOP; 401 NOP; 402 NOP; 403 NOP; 404 NOP; 405 dbg_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