140 | | === 1) void '''giet_coproc_alloc'''( unsigned int x , unsigned int y , unsigned int coproc_type , unsigned int* return_info ) === |
141 | | This function allocates a private coprocessor of type <coproc_type>, from the cluster identified by the <x,y> arguments. It takes the lock granting exclusive ownership, and register the coprocessor coordinates in the calling thread context. |
142 | | In the current implementation, the thread exit if there is no coprocessor of requested type in cluster[x,y]. |
143 | | The supported values for the caprice_type> argument are specified above (and actually defined in the mapping_info.h file). |
| 142 | === 1) void '''giet_coproc_alloc'''( unsigned int cluster_xy , unsigned int coproc_type , unsigned int* return_info ) === |
| 143 | This function allocates a private coprocessor of type <coproc_type>, located in cluster identified by the <cluster_xy> arguments. It takes the lock granting exclusive ownership to the calling application. |
| 144 | In the current implementation, the calling thread exit if there is no coprocessor of requested type in cluster[x,y]. |
| 145 | The supported values for the <coproc_type> argument are specified above (and actually defined in the mapping_info.h file). |
147 | | === 2) void '''giet_coproc_channel_init'''( unsigned int channel , giet_coproc_channel_t* desc ) === |
148 | | This function initializes a TO_COPROC/FROM_COPROC communication channel for the coprocessor allocated to the calling thread. The <channel> argument define the channel index (TO_COPROC channels use the smallest indexes). The <desc argument is a pointer on the structure containing the channel parameters (defined in the [source:soft/giet_vm/giet_libs/stdio.h stdio.h] file). |
| 149 | === 2) void '''giet_coproc_release'''( unsigned int cluster_xy , unsigned int coproc_type ) === |
| 150 | This function releases the lock granting exclusive access to the coprocessor identified by the <cluster_xy> and <coproc_type> arguments, after coprocessor and channels deactivation. |
| 151 | |
| 152 | === 3) void '''giet_coproc_channel_init'''( unsigned int cluster_xy , unsigned int coproc_type , unsigned int channel , giet_coproc_channel_t* desc ) === |
| 153 | This function initializes a TO_COPROC/FROM_COPROC communication channel for the coprocessor identified by the <cluster_xy> and <coproc_type> arguments. The <channel> argument define the channel index (TO_COPROC channels use the smallest indexes). The <desc> argument is a pointer on the structure containing the channel parameters ( actually defined in the [source:soft/giet_vm/giet_libs/stdio.h stdio.h] file). |
160 | | === 3) void '''giet_coproc_run'''( unsigned int coproc_reg_index ) === |
161 | | This function activates all communication channels and the allocated coprocessor itself. |
162 | | * '''coproc_reg_index''' : coprocessor configuration register index to be written for coprocessor activation. |
163 | | |
164 | | === 4) void '''giet_coproc_completed'''( ) === |
165 | | This blocking function can be used to synchronize a software thread with an hardware coprocessor running in DMA_NO_IRQ mode. |
| 165 | === 4) void '''giet_coproc_run'''( unsigned int cluster_xy , unsigned int coproc_type ) === |
| 166 | This function activates all communication channels and the allocated coprocessor itself in the cluster identified by the <x,y> arguments. |
| 167 | |
| 168 | === 5) void '''giet_coproc_completed'''( unsigned int cluster_xy , unsigned int cluster_xy ) === |
| 169 | This blocking function can be used to synchronize a software thread with an hardware coprocessor identified by the <x,y> arguments, and running in DMA_NO_IRQ mode. |