OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_39/] [or1ksim/] [testbench/] [uos/] [uos.c] - Diff between revs 343 and 600

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 343 Rev 600
Line 68... Line 68...
        tid_t t;
        tid_t t;
 
 
        for(t = 1; t <= MAX_TASKS; t++) {
        for(t = 1; t <= MAX_TASKS; t++) {
                printf("\ntask TID=%d: PC=0x%x ", t, (unsigned)tasks[t].regs.pc & ~0x3);
                printf("\ntask TID=%d: PC=0x%x ", t, (unsigned)tasks[t].regs.pc & ~0x3);
                printf("SP(r1)=0x%x ", (unsigned)tasks[t].regs.sp);
                printf("SP(r1)=0x%x ", (unsigned)tasks[t].regs.sp);
                printf("SR[EXR]=%d ", (unsigned)(tasks[t].regs.pc & SPR_SR_EXR) >> 1);
                printf("SR[IEE]=%d\n", (unsigned)tasks[t].regs.sr & SPR_SR_IEE);
                printf("SR[SUPV]=%d\n", (unsigned)tasks[t].regs.pc & SPR_SR_SUPV);
                printf("SR[TEE]=%d\n", (unsigned)tasks[t].regs.sr & SPR_SR_TEE);
 
                printf("SR[SM]=%d\n", (unsigned)tasks[t].regs.sr & SPR_SR_SM);
                for(i = 1; i < GPRS; i++) {
                for(i = 1; i < GPRS; i++) {
                        if (i % 4 == 0)
                        if (i % 4 == 0)
                                printf("\n");
                                printf("\n");
                        printf("r%d=0x%.8x ", i, (unsigned)tasks[t].regs.gprs[i]);
                        printf("r%d=0x%.8x ", i, (unsigned)tasks[t].regs.gprs[i]);
                }
                }
Line 276... Line 277...
        tasks_entries();
        tasks_entries();
 
 
        for(t = 0; t <= MAX_TASKS; t++) {
        for(t = 0; t <= MAX_TASKS; t++) {
                tasks[t].regs.sp = (unsigned long)stacks[t] + STACK_SIZE - 4;
                tasks[t].regs.sp = (unsigned long)stacks[t] + STACK_SIZE - 4;
                /* Disable EXR for kernel context */
                /* Disable EXR for kernel context */
                tasks[t].regs.sr |= (t == 0 ? SPR_SR_SUPV : SPR_SR_EXR | SPR_SR_EIR);
                tasks[t].regs.sr |= (t == 0 ? SPR_SR_SM : SPR_SR_TEE | SPR_SR_IEE);
                tasks[t].regs.gprs[1] = t;
                tasks[t].regs.gprs[1] = t;
        }
        }
 
 
        /* First task runs in seprvisor mode */
        /* First task runs in seprvisor mode */
        tasks[1].regs.sr |= SPR_SR_SUPV;
        tasks[1].regs.sr |= SPR_SR_SM;
 
 
        /* TID=0 is reserved for kernel use */
        /* TID=0 is reserved for kernel use */
        kernel_context = (unsigned long *)&tasks[0].regs;
        kernel_context = (unsigned long *)&tasks[0].regs;
 
 
        /* First task to be scheduled is task TID=1 */
        /* First task to be scheduled is task TID=1 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.