Changes between Version 51 and Version 52 of library_stdio
- Timestamp:
- Mar 2, 2015, 11:40:17 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
library_stdio
v51 v52 11 11 Therefore, for all these system calls, the return value has not to be tested by the calling task. 12 12 13 == Processor related system calls==13 == __Processor related system calls__ == 14 14 15 15 === 1) void '''giet_proc_xyp'''( unsigned int* cluster_x, unsigned int* cluster_y unsigned int* lpid )=== … … 28 28 No error possible, as the return value is always between 0 & 65535. 29 29 30 == Task related system calls==30 == __Task related system calls__ == 31 31 32 32 === 1) unsigned int '''giet_proc_task_id'''() === … … 43 43 No error possible. 44 44 45 == Coprocessors related system calls==45 == __Coprocessors related system calls__ == 46 46 47 47 The 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. … … 76 76 77 77 === 2) void '''giet_coproc_channel_init'''( unsigned int cluster_xy, unsigned int channel, giet_coproc_channel_t* desc ) === 78 This 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 {{{ 80 typedef 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 78 92 79 93 === 3) void '''giet_coproc_channel_start'''( unsigned int cluster_xy, unsigned int channel ) === 80 94 81 95 === 4) void '''giet_coproc_channel_stop'''( unsigned int cluster_xy, unsigned int channel ) === 96 97 === 5) void '''giet_coproc_completed'''( unsigned int cluster_xy ) === 98 This blocking function can be used to synchronize a software task with an hardware coprocessor running in DMA mode. 99 It 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]. 82 100 83 101