Exemplo n.º 1
0
unsigned long C_SWI_HANDLER(unsigned swi_num, void* regs) {
        unsigned long result = 0;
        /*Decide which swi to run based on swi number */
        switch(swi_num) {
                case EXIT_SWI:
                    /* call swi_exit */
                    result = swi_exit(*(int*)regs);
                    break;
                case READ_SWI:
                    /* call swi_read */
                    result = swi_read(regs);          
                    break;                            
                case WRITE_SWI:                           
                    /* call swi_write */
                    result = swi_write(regs);      
                    break;    
		case TIME_SWI:
		    /* call swi_time */
		    result = swi_time();
		    break;
		case SLEEP_SWI:
		    /*call swi_sleep */
		    swi_sleep(regs);
		    break;
                default:                           
                    /* return with status bad code */
                    swi_exit(BADCODE);                 
        }                                    

        return result;                       
}                     
Exemplo n.º 2
0
int main() 
{
  int i; 
  //reset the processor
  reset_proc();
  
  //load the program memory
  load_program_memory();
  print();
  
  
  
  //$$$$$$$$$$$$$$ set pc=0X0
  R[15]=0;
  ex_flag=0;
  //run the simulator  
  run_armsim();
  printreg();

  // $$$$$$$$$$$  printing the memory array
  MEM[w+1]=R[7]+48; 
 // printf("\n\n%d",R[7]);
  printf("\n\nPrinting the elements of MEM array\n\n");
    for(i=0;i<w+2;i++)
      printf("%d ",MEM[i]-48);
  printf("\n"); 
  swi_exit();
  
  return 0;
}