1//Original:/proj/frio/dv/testcases/seq/se_rts_rti/se_rts_rti.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 // Load RETS 110LD32_LABEL(r0, USER_CODE); 111RETS = R0; 112 113 // Return to Supervisor Code 114RAISE 2; 115RAISE 5; 116RAISE 6; 117RAISE 7; 118RAISE 8; 119RAISE 9; 120RAISE 10; 121RAISE 11; 122RAISE 12; 123RAISE 13; 124RAISE 14; 125RAISE 15; 126NOP; 127 128LD32_LABEL(r0, USER_CODE); 129RETI = R0; 130RTI; 131 132.dw 0xFFFF 133.dw 0xFFFF 134.dw 0xFFFF 135.dw 0xFFFF 136.dw 0xFFFF 137.dw 0xFFFF 138.dw 0xFFFF 139 140///////////////////////////////////////////////////////////////////////////// 141 142 143///////////////////////////////////////////////////////////////////////////// 144///////////////////////// EMU ISR ///////////////////////////// 145///////////////////////////////////////////////////////////////////////////// 146 147 EMU_ISR : 148 149RTE; 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///////////////////////// NMI ISR ///////////////////////////// 161///////////////////////////////////////////////////////////////////////////// 162 163 NMI_ISR : 164 165RTN; 166NOP; 167NOP; 168RTS; 169 170.dw 0xFFFF 171.dw 0xFFFF 172.dw 0xFFFF 173.dw 0xFFFF 174.dw 0xFFFF 175.dw 0xFFFF 176.dw 0xFFFF 177 178///////////////////////////////////////////////////////////////////////////// 179///////////////////////// EXC ISR ///////////////////////////// 180///////////////////////////////////////////////////////////////////////////// 181 182 EXC_ISR : 183 184RTX; 185NOP; 186NOP; 187RTS; 188 189.dw 0xFFFF 190.dw 0xFFFF 191.dw 0xFFFF 192.dw 0xFFFF 193.dw 0xFFFF 194.dw 0xFFFF 195.dw 0xFFFF 196 197///////////////////////////////////////////////////////////////////////////// 198///////////////////////// HWE ISR ///////////////////////////// 199///////////////////////////////////////////////////////////////////////////// 200 201 HWE_ISR : 202 203RTI; 204NOP; 205NOP; 206RTS; 207 208.dw 0xFFFF 209.dw 0xFFFF 210.dw 0xFFFF 211.dw 0xFFFF 212.dw 0xFFFF 213.dw 0xFFFF 214.dw 0xFFFF 215 216///////////////////////////////////////////////////////////////////////////// 217///////////////////////// TMR ISR ///////////////////////////// 218///////////////////////////////////////////////////////////////////////////// 219 220 TMR_ISR : 221 222RTI; 223NOP; 224NOP; 225RTS; 226 227.dw 0xFFFF 228.dw 0xFFFF 229.dw 0xFFFF 230.dw 0xFFFF 231.dw 0xFFFF 232.dw 0xFFFF 233.dw 0xFFFF 234 235///////////////////////////////////////////////////////////////////////////// 236///////////////////////// IGV7 ISR ///////////////////////////// 237///////////////////////////////////////////////////////////////////////////// 238 239 IGV7_ISR : 240 241RTI; 242NOP; 243NOP; 244RTS; 245 246.dw 0xFFFF 247.dw 0xFFFF 248.dw 0xFFFF 249.dw 0xFFFF 250.dw 0xFFFF 251.dw 0xFFFF 252.dw 0xFFFF 253 254///////////////////////////////////////////////////////////////////////////// 255///////////////////////// IGV8 ISR ///////////////////////////// 256///////////////////////////////////////////////////////////////////////////// 257 258 IGV8_ISR : 259 260RTI; 261NOP; 262NOP; 263RTS; 264 265.dw 0xFFFF 266.dw 0xFFFF 267.dw 0xFFFF 268.dw 0xFFFF 269.dw 0xFFFF 270.dw 0xFFFF 271.dw 0xFFFF 272 273///////////////////////////////////////////////////////////////////////////// 274///////////////////////// IGV9 ISR ///////////////////////////// 275///////////////////////////////////////////////////////////////////////////// 276 277 IGV9_ISR : 278 279RTI; 280NOP; 281NOP; 282RTS; 283 284.dw 0xFFFF 285.dw 0xFFFF 286.dw 0xFFFF 287.dw 0xFFFF 288.dw 0xFFFF 289.dw 0xFFFF 290.dw 0xFFFF 291 292///////////////////////////////////////////////////////////////////////////// 293///////////////////////// IGV10 ISR ///////////////////////////// 294///////////////////////////////////////////////////////////////////////////// 295 296 IGV10_ISR : 297 298RTI; 299NOP; 300NOP; 301RTS; 302 303.dw 0xFFFF 304.dw 0xFFFF 305.dw 0xFFFF 306.dw 0xFFFF 307.dw 0xFFFF 308.dw 0xFFFF 309.dw 0xFFFF 310 311///////////////////////////////////////////////////////////////////////////// 312///////////////////////// IGV11 ISR ///////////////////////////// 313///////////////////////////////////////////////////////////////////////////// 314 315 IGV11_ISR : 316 317RTI; 318NOP; 319NOP; 320RTS; 321 322.dw 0xFFFF 323.dw 0xFFFF 324.dw 0xFFFF 325.dw 0xFFFF 326.dw 0xFFFF 327.dw 0xFFFF 328.dw 0xFFFF 329 330///////////////////////////////////////////////////////////////////////////// 331///////////////////////// IGV12 ISR ///////////////////////////// 332///////////////////////////////////////////////////////////////////////////// 333 334 IGV12_ISR : 335 336RTI; 337NOP; 338NOP; 339RTS; 340 341.dw 0xFFFF 342.dw 0xFFFF 343.dw 0xFFFF 344.dw 0xFFFF 345.dw 0xFFFF 346.dw 0xFFFF 347.dw 0xFFFF 348 349///////////////////////////////////////////////////////////////////////////// 350///////////////////////// IGV13 ISR ///////////////////////////// 351///////////////////////////////////////////////////////////////////////////// 352 353 IGV13_ISR : 354 355RTI; 356NOP; 357NOP; 358RTS; 359 360.dw 0xFFFF 361.dw 0xFFFF 362.dw 0xFFFF 363.dw 0xFFFF 364.dw 0xFFFF 365.dw 0xFFFF 366.dw 0xFFFF 367 368///////////////////////////////////////////////////////////////////////////// 369///////////////////////// IGV14 ISR ///////////////////////////// 370///////////////////////////////////////////////////////////////////////////// 371 372 IGV14_ISR : 373 374RTI; 375NOP; 376NOP; 377RTS; 378 379.dw 0xFFFF 380.dw 0xFFFF 381.dw 0xFFFF 382.dw 0xFFFF 383.dw 0xFFFF 384.dw 0xFFFF 385.dw 0xFFFF 386 387///////////////////////////////////////////////////////////////////////////// 388///////////////////////// IGV15 ISR ///////////////////////////// 389///////////////////////////////////////////////////////////////////////////// 390 391 IGV15_ISR : 392 393RTI; 394NOP; 395NOP; 396RTS; 397 398.dw 0xFFFF 399.dw 0xFFFF 400.dw 0xFFFF 401.dw 0xFFFF 402.dw 0xFFFF 403.dw 0xFFFF 404.dw 0xFFFF 405 406///////////////////////////////////////////////////////////////////////////// 407///////////////////////// USER CODE ///////////////////////////// 408///////////////////////////////////////////////////////////////////////////// 409 410 411 USER_CODE : 412 413EXCPT 0x5; 414NOP; 415NOP; 416NOP; 417NOP; 418dbg_pass; // Call Endtest Macro 419 420///////////////////////////////////////////////////////////////////////////// 421///////////////////////// DATA MEMRORY ///////////////////////////// 422///////////////////////////////////////////////////////////////////////////// 423 424.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 425.dd 0xdeadbeef; 426.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw" 427.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 428.dd 0x02020202; 429.dd 0x03030303; 430.dd 0x04040404; 431 432// Define Kernal Stack 433.data 434 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 435 KSTACK : 436 437 .space (STACKSIZE); 438 USTACK : 439 440///////////////////////////////////////////////////////////////////////////// 441///////////////////////// END OF TEST ///////////////////////////// 442///////////////////////////////////////////////////////////////////////////// 443