Changes between Version 3 and Version 4 of tim_driver


Ignore:
Timestamp:
Oct 25, 2014, 9:26:20 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • tim_driver

    v3 v4  
    55The [source:soft/giet_vm/giet_drivers/tim_driver.c tim_driver.c] and [source:soft/giet_vm/giet_drivers/tim_driver.h tim_driver.h] files define the TIM driver.
    66
    7 The ''vci_multi_timer'' component is a multi-channels timer controller.
     7The ''vci_multi_timer'' component is a multi-channels timer controller. It is an ''external'' peripheral.
    88
    9 For the GIET, it is an ''internal'' peripheral, replicated in each cluster.
     9The total number of channels must be defined by the configuration parameter NB_TIM_CHANNELS in the ''hard_config.h'' file.
    1010
    11 The SEG_TIM_BASE address must be defined in the hard_config.h file.
     11The user timers  are allocated to applications by the GIET-VM in the boot phase, as defined in the mapping. The corresponding global index is stored in the context of the task.
    1212
    13 There is two types of timers:
    14  * '''kernel timers''' : one per processor, used for context switch. The local_id is in [0, NB_PROCS_MAX-1].
    15  * '''user timers''' : requested by the task in the mapping_info data structure. The local_id is in [NB_PROCS_MAX, NB_PROCS_MAX + NB_TIM_CHANNELS -1].
     13The SEG_TIM_BASE address must be defined in the ''hard_config.h'' file.
    1614
    17 The global timer index is cluster_xy * (NB_PROCS_MAX + NB_TIM_CHANNELS) + local_id
    18 
    19 The virtual base address of the associated segment is:   vbase = SEG_TIM_BASE + cluster_xy * PERI_CLUSTER_INCREMENT
    20 
    21 The SEG_TIM_BASE, PERI_CLUSTER_INCREMENT, NB_PROCS_MAX and NB_TIM_CHANNELS values must be defined in hard_config.h file.
     15The virtual base address of the associated segment is:   vbase = SEG_TIM_BASE + cluster_io << 32.
    2216
    2317The addressable registers map is defined [source:soft/giet_vm/giet_drivers/tim_driver.h here].