Ignore:
Timestamp:
Jan 17, 2014, 11:49:27 PM (11 years ago)
Author:
cfuguet
Message:
  • Bugfix: The ISR_SWITCH index should be NB_PROCS_MAX + local_pid. This is because the first NB_PROCS_MAX indexes on the XICU in each cluster are used for the WAKEUP software interrupts.
  • Relocating the memcpy and memset functions into the giet_libs/stdlib.* files.
  • Modification of the sort application to used 8 threads instead of
    1. Modifying the mapping files to distribute the 8 threads on the available processors. (Ex. When using 4 processors, each one executes 2 threads)
Location:
soft/giet_vm/giet_kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_kernel/ctx_handler.c

    r267 r271  
    119119        // reset timer counter
    120120#if USE_XICU
    121         _xcu_timer_reset_cpt(cluster_id, local_id);
     121        _xcu_timer_reset_cpt(cluster_id, NB_PROCS_MAX + local_id);
    122122#else
    123         _timer_reset_cpt(cluster_id, local_id);
     123        _timer_reset_cpt(cluster_id, NB_PROCS_MAX + local_id);
    124124#endif
    125125
  • soft/giet_vm/giet_kernel/kernel_init.c

    r263 r271  
    290290        }
    291291
     292        // the ISR_SWITCH irq index must be NB_PROCS_MAX + local_pid because
     293        // the first NB_PROCS_MAX irqs are used by the WAKEUP ones
     294        if (isr_switch_index != (NB_PROCS_MAX + local_pid))
     295        {
     296            _tty_get_lock( 0 );
     297            _puts("\n[GIET ERROR] ISR_SWITCH wrong index for processor ");
     298            _putx(global_pid);
     299            _puts("\n. It should be NB_PROCS_MAX + local_pid =");
     300            _putd(NB_PROCS_MAX + local_pid);
     301            _puts("\n");
     302            _tty_release_lock( 0 );
     303            _exit();
     304        }
     305
    292306        // start system timer
    293307        unsigned int ko;
    294308#if USE_XICU
    295         ko = _xcu_timer_start( cluster_xy, local_pid, GIET_TICK_VALUE );
     309        ko = _xcu_timer_start( cluster_xy, isr_switch_index, GIET_TICK_VALUE );
    296310#else
    297         ko = _timer_start( cluster_xy, local_pid, GIET_TICK_VALUE );
     311        ko = _timer_start( cluster_xy, isr_switch_index, GIET_TICK_VALUE );
    298312#endif
    299313        if ( ko )
Note: See TracChangeset for help on using the changeset viewer.