Changes between Version 11 and Version 12 of library_mwmr


Ignore:
Timestamp:
Nov 12, 2014, 10:56:05 PM (10 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • library_mwmr

    v11 v12  
    1818WARNING (iii) The channel must be declared in a non cacheable segment, if the platform does not provide hardware cache coherence.
    1919
    20 == __Initialisation Function__ ==
     20== Initialisation Function ==
    2121
    2222=== void '''mwmr_init'''( mwmr_channel_t* mwmr, unsigned int width, unsigned int    items ) ===
     
    2727It must be called by one single task.
    2828
    29 == __ Blocking Access Functions__ ==
     29== Blocking Access Functions ==
    3030
    3131The ''mwmr_read()'' and ''mwmr_write()'' functions are blocking functions, that return only when the requested transfer is completed.
     
    3434This function transfer (nitems * width) 32 bits words from a task private buffer to the MWMR channel.
    3535 * '''mwmr''' : MWMR channel virtual base address.
     36 * '''buffer''' : virtual base address of local buffer.
    3637 * '''nitems''' : number of items to be transfered.
    37  * '''buffer''' : virtual base address of local buffer.
    3838It takes the lock for exclusive access before testing the channel state. If there is not enough space in mwmr channel to write nitems, it writes as many items as possible, releases the lock, and retry  after a random delay.
    3939
     
    4141This function transfer (nitems * width) 32 bits words from the MWMR channel to a task private buffer.
    4242 * '''mwmr''' : MWMR channel virtual base address.
     43 * '''buffer''' : virtual base address of local buffer.
    4344 * '''nitems''' : number of items to be transfered.
    44  * '''buffer''' : virtual base address of local buffer.
    4545It takes the lock for exclusive access before testing the channel state. If there is not enough space in mwmr channel to write nitems, it writes as many items as possible, releases the lock, and retry  after a random delay.
    4646
    4747
    48 == __Non Blocking Access Functions__ ==
     48== Non Blocking Access Functions ==
    4949
    5050The ''nb_mwmr_read()'' and ''nb_mwmr_write()'' functions are non-blocking functions.
     
    5353This function request to transfer (nitems * width) 32 bits words from a task private buffer tot he MWMR channel.
    5454 * '''mwmr''' : MWMR channel virtual base address.
     55 * '''buffer''' : virtual base address of local buffer.
    5556 * '''nitems''' : number of items to be transfered.
    56  * '''buffer''' : virtual base address of local buffer.
    5757It takes the lock for exclusive access before testing the channel state. If there is not enough free space in the channel, it transfer as many items as possible, releases the lock, and returns the number of actually transfered items (it can be 0).
    5858
     
    6060This function request to transfer (nitems * width) 32 bits words from the MWMR channel to a task private buffer.
    6161 * '''mwmr''' : MWMR channel virtual base address.
     62 * '''buffer''' : virtual base address of local buffer.
    6263 * '''nitems''' : number of items to be transfered.
    63  * '''buffer''' : virtual base address of local buffer.
    6464It takes the lock for exclusive access before testing the channel state. If there is not enough data in the channel, it transfer as many items as possible, releases the lock, and returns the number of actually transfered items (it can be 0).
    6565