DISCO-L072CZ-LRWAN1-base

Dependencies:   BufferedSerial LoRaWAN-lib-st-murata ST-DEVKIT-LRWAN mbed

Committer:
alphaemmeo
Date:
Mon Dec 04 14:28:30 2017 +0000
Revision:
1:dcf49b02bfd9
Parent:
0:60680ad16314
base porting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alphaemmeo 0:60680ad16314 1 /*
alphaemmeo 0:60680ad16314 2 / _____) _ | |
alphaemmeo 0:60680ad16314 3 ( (____ _____ ____ _| |_ _____ ____| |__
alphaemmeo 0:60680ad16314 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
alphaemmeo 0:60680ad16314 5 _____) ) ____| | | || |_| ____( (___| | | |
alphaemmeo 0:60680ad16314 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
alphaemmeo 0:60680ad16314 7 (C)2013 Semtech
alphaemmeo 0:60680ad16314 8
alphaemmeo 0:60680ad16314 9 Description: Helper functions implementation
alphaemmeo 0:60680ad16314 10
alphaemmeo 0:60680ad16314 11 License: Revised BSD License, see LICENSE.TXT file include in the project
alphaemmeo 0:60680ad16314 12
alphaemmeo 0:60680ad16314 13 Maintainer: Miguel Luis and Gregory Cristian
alphaemmeo 0:60680ad16314 14 */
alphaemmeo 0:60680ad16314 15 #include <stdlib.h>
alphaemmeo 0:60680ad16314 16 #include <stdio.h>
alphaemmeo 0:60680ad16314 17 #include "board.h"
alphaemmeo 0:60680ad16314 18 #include "utilities.h"
alphaemmeo 0:60680ad16314 19
alphaemmeo 0:60680ad16314 20 /*!
alphaemmeo 0:60680ad16314 21 * Redefinition of rand() and srand() standard C functions.
alphaemmeo 0:60680ad16314 22 * These functions are redefined in order to get the same behavior across
alphaemmeo 0:60680ad16314 23 * different compiler toolchains implementations.
alphaemmeo 0:60680ad16314 24 */
alphaemmeo 0:60680ad16314 25 // Standard random functions redefinition start
alphaemmeo 0:60680ad16314 26 #define RAND_LOCAL_MAX 2147483647L
alphaemmeo 0:60680ad16314 27
alphaemmeo 0:60680ad16314 28 static uint32_t next = 1;
alphaemmeo 0:60680ad16314 29
alphaemmeo 0:60680ad16314 30 int32_t rand1( void )
alphaemmeo 0:60680ad16314 31 {
alphaemmeo 0:60680ad16314 32 return ( ( next = next * 1103515245L + 12345L ) % RAND_LOCAL_MAX );
alphaemmeo 0:60680ad16314 33 }
alphaemmeo 0:60680ad16314 34
alphaemmeo 0:60680ad16314 35 void srand1( uint32_t seed )
alphaemmeo 0:60680ad16314 36 {
alphaemmeo 0:60680ad16314 37 next = seed;
alphaemmeo 0:60680ad16314 38 }
alphaemmeo 0:60680ad16314 39 // Standard random functions redefinition end
alphaemmeo 0:60680ad16314 40
alphaemmeo 0:60680ad16314 41 int32_t randr( int32_t min, int32_t max )
alphaemmeo 0:60680ad16314 42 {
alphaemmeo 0:60680ad16314 43 return ( int32_t )rand1( ) % ( max - min + 1 ) + min;
alphaemmeo 0:60680ad16314 44 }
alphaemmeo 0:60680ad16314 45
alphaemmeo 0:60680ad16314 46 void memcpy1( uint8_t *dst, const uint8_t *src, uint16_t size )
alphaemmeo 0:60680ad16314 47 {
alphaemmeo 0:60680ad16314 48 while( size-- )
alphaemmeo 0:60680ad16314 49 {
alphaemmeo 0:60680ad16314 50 *dst++ = *src++;
alphaemmeo 0:60680ad16314 51 }
alphaemmeo 0:60680ad16314 52 }
alphaemmeo 0:60680ad16314 53
alphaemmeo 0:60680ad16314 54 void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size )
alphaemmeo 0:60680ad16314 55 {
alphaemmeo 0:60680ad16314 56 dst = dst + ( size - 1 );
alphaemmeo 0:60680ad16314 57 while( size-- )
alphaemmeo 0:60680ad16314 58 {
alphaemmeo 0:60680ad16314 59 *dst-- = *src++;
alphaemmeo 0:60680ad16314 60 }
alphaemmeo 0:60680ad16314 61 }
alphaemmeo 0:60680ad16314 62
alphaemmeo 0:60680ad16314 63 void memset1( uint8_t *dst, uint8_t value, uint16_t size )
alphaemmeo 0:60680ad16314 64 {
alphaemmeo 0:60680ad16314 65 while( size-- )
alphaemmeo 0:60680ad16314 66 {
alphaemmeo 0:60680ad16314 67 *dst++ = value;
alphaemmeo 0:60680ad16314 68 }
alphaemmeo 0:60680ad16314 69 }
alphaemmeo 0:60680ad16314 70
alphaemmeo 0:60680ad16314 71 int8_t Nibble2HexChar( uint8_t a )
alphaemmeo 0:60680ad16314 72 {
alphaemmeo 0:60680ad16314 73 if( a < 10 )
alphaemmeo 0:60680ad16314 74 {
alphaemmeo 0:60680ad16314 75 return '0' + a;
alphaemmeo 0:60680ad16314 76 }
alphaemmeo 0:60680ad16314 77 else if( a < 16 )
alphaemmeo 0:60680ad16314 78 {
alphaemmeo 0:60680ad16314 79 return 'A' + ( a - 10 );
alphaemmeo 0:60680ad16314 80 }
alphaemmeo 0:60680ad16314 81 else
alphaemmeo 0:60680ad16314 82 {
alphaemmeo 0:60680ad16314 83 return '?';
alphaemmeo 0:60680ad16314 84 }
alphaemmeo 0:60680ad16314 85 }