Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Tue Nov 24 14:06:22 2015 +0000
Revision:
137:32dd35a6dbc9
Parent:
135:2f4290590e51
core source of the .bin (09/21/2015) in the field

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 72:895ca792c647 1 #include "ring_buffer.h"
klauss 72:895ca792c647 2
klauss 72:895ca792c647 3 ring_buffer * ring_buffer_init( ring_buffer * rb ){
klauss 72:895ca792c647 4 if( rb == NULL ){
klauss 72:895ca792c647 5 rb = ( ring_buffer * )malloc( sizeof( ring_buffer ) );
klauss 72:895ca792c647 6 rb->begin = 0;
klauss 72:895ca792c647 7 rb->end = 0;
klauss 72:895ca792c647 8 rb->size = 0;
klauss 119:ee6a53069455 9 rb->data = ( uint8_t * )malloc( sizeof( uint8_t ) * CB_BUFFER_SIZE * RING_BUFFER_SIZE );
klauss 72:895ca792c647 10 return( rb );
klauss 72:895ca792c647 11 }else return( rb );
klauss 72:895ca792c647 12 }
klauss 72:895ca792c647 13
klauss 72:895ca792c647 14 uint8_t ring_buffer_add( ring_buffer * rb, uint8_t * data ){
klauss 72:895ca792c647 15 if( rb == NULL ) return 0x99;
klauss 72:895ca792c647 16
klauss 72:895ca792c647 17 if( data == NULL ) return 0x98;
klauss 72:895ca792c647 18
klauss 99:e80850c51106 19 if( rb->size >= RING_BUFFER_SIZE ) return 0x01;
klauss 72:895ca792c647 20
klauss 72:895ca792c647 21 else{
klauss 119:ee6a53069455 22 rb_xmemcpy( rb->data + ( CB_BUFFER_SIZE * rb->end ), data, CB_BUFFER_SIZE );
klauss 99:e80850c51106 23 if( ++( rb->end ) >= RING_BUFFER_SIZE ) rb->end = 0;
klauss 72:895ca792c647 24 rb->size++;
klauss 72:895ca792c647 25 }
klauss 72:895ca792c647 26
klauss 72:895ca792c647 27 return( 0x00 );
klauss 72:895ca792c647 28 }
klauss 72:895ca792c647 29
klauss 72:895ca792c647 30 uint8_t * ring_buffer_get_next( ring_buffer * rb ){
klauss 72:895ca792c647 31 if( rb == NULL ) return( NULL );
klauss 72:895ca792c647 32
klauss 72:895ca792c647 33 if( rb->size == 0 ) return( NULL );
klauss 72:895ca792c647 34
klauss 119:ee6a53069455 35 uint8_t * ret = rb->data + ( rb->begin * CB_BUFFER_SIZE );
klauss 99:e80850c51106 36
klauss 99:e80850c51106 37 if( ++( rb->begin ) >= RING_BUFFER_SIZE ) rb->begin = 0;
klauss 72:895ca792c647 38
klauss 99:e80850c51106 39 if( rb->size > 0 ) rb->size--;
klauss 72:895ca792c647 40
klauss 99:e80850c51106 41 return( ret );
klauss 72:895ca792c647 42 }
klauss 72:895ca792c647 43
klauss 135:2f4290590e51 44 void rb_xmemcpy (uint8_t * dest, uint8_t * src, uint16_t size)
klauss 135:2f4290590e51 45 {
klauss 135:2f4290590e51 46 while ( size-- ) *dest++ = *src++;
klauss 72:895ca792c647 47 }