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)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.