this is avaiable project
Fork of LoRaMacLib by
system/utilities.cpp
- Committer:
- GregCr
- Date:
- 2015-08-12
- Revision:
- 0:9be122c18509
File content as of revision 0:9be122c18509:
/* / _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (C)2013 Semtech Description: Helper functions implementation License: Revised BSD License, see LICENSE.TXT file include in the project Maintainer: Miguel Luis and Gregory Cristian */ #include <stdlib.h> #include <stdio.h> #include "board.h" #include "utilities.h" /*! * Redefinition of rand() and srand() standard C functions. * These functions are redefined in order to get the same behavior across * different compiler toolchains implementations. */ // Standard random functions redefinition start #define RAND_LOCAL_MAX 2147483647 static unsigned long next = 1; int rand1( void ) { return ( ( next = next * 1103515245 + 12345 ) % RAND_LOCAL_MAX ); } void srand1( unsigned int seed ) { next = seed; } // Standard random functions redefinition end int32_t randr( int32_t min, int32_t max ) { return ( int32_t )rand1( ) % ( max - min + 1 ) + min; } void memcpy1( uint8_t *dst, uint8_t *src, uint16_t size ) { while( size-- ) { *dst++ = *src++; } } void memset1( uint8_t *dst, uint8_t value, uint16_t size ) { while( size-- ) { *dst++ = value; } } int8_t Nibble2HexChar( uint8_t a ) { if( a < 10 ) { return '0' + a; } else if( a < 16 ) { return 'A' + ( a - 10 ); } else { return '?'; } } #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ int __io_putchar( int c ) #else /* __GNUC__ */ int fputc( int c, FILE *stream ) #endif { return( ITM_SendChar( c ) ); }