Changes between Version 51 and Version 52 of library_stdio


Ignore:
Timestamp:
Mar 2, 2015, 11:40:17 AM (9 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_stdio

    v51 v52  
    1111Therefore, for all these system calls, the return value has not to be tested by the calling task.
    1212
    13  == Processor related system calls ==
     13 == __Processor related system calls__ ==
    1414
    1515 === 1) void '''giet_proc_xyp'''( unsigned int* cluster_x, unsigned int* cluster_y unsigned int* lpid )===
     
    2828No error possible, as the return value is always between 0 & 65535.
    2929
    30  == Task related system calls ==
     30 == __Task related system calls__ ==
    3131
    3232 === 1) unsigned int '''giet_proc_task_id'''() ===
     
    4343No error possible.
    4444
    45  ==  Coprocessors related system calls ==
     45 ==  __Coprocessors related system calls__ ==
    4646
    4747The GIET_VM allows user applications to use hardware accelerators, called coprocessors. These coprocessors can be distributed in the architecture, but there is at most one coprocessor per cluster. To be supported by the GIET_VM, a coprocessor must use the ''vci_mwmr_dma'' component, that is a multi-channels DMA controller.
     
    7676 
    7777 === 2) void '''giet_coproc_channel_init'''( unsigned int  cluster_xy,  unsigned int channel,  giet_coproc_channel_t*  desc ) ===
     78This function initializes a communication channel. It uses the he following structure (defined in the [source:soft/giet_vm/giet_libs/stdio.h stdio.h] file) to specicy the channel parameters:
     79{{{
     80typedef struct giet_coproc_channel
     81{
     82    unsigned int  channel_mode;    // MWMR / DMA_IRQ / DMA_NO_IRQ
     83    unsigned int  buffer_size;     // memory buffer size
     84    unsigned int  buffer_vaddr;    // memory buffer virtual address
     85    unsigned int  mwmr_vaddr;      // MWMR descriptor virtual address
     86    unsigned int  lock_vaddr;      // lock for MWMR virtual address
     87} giet_coproc_channel_t;
     88}}}
     89 * '''cluster_xy''' cluster coordinates
     90 * '''channel''' communication channel index
     91 * '''desc''' pointer on the giet_coproc_channel_t structure
    7892
    7993 === 3) void '''giet_coproc_channel_start'''( unsigned int  cluster_xy,  unsigned int    channel ) ===
    8094
    8195 === 4) void '''giet_coproc_channel_stop'''( unsigned int  cluster_xy,   unsigned int  channel ) ===
     96
     97 === 5) void '''giet_coproc_completed'''( unsigned int cluster_xy ) ===
     98This blocking function can be used to synchronize a software task with an hardware coprocessor running in DMA mode.
     99It polls the ''_coproc_done[x][y]'' kernel variable, and returns only when this variable has been set by the ISR associated to  coprocessor in cluster[x][y].
    82100
    83101