You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.7 KiB
85 lines
1.7 KiB
/*
|
|
/ _____) _ | |
|
|
( (____ _____ ____ _| |_ _____ ____| |__
|
|
\____ \| ___ | (_ _) ___ |/ ___) _ \
|
|
_____) ) ____| | | || |_| ____( (___| | | |
|
|
(______/|_____)_|_|_| \__)_____)\____)_| |_|
|
|
(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 <stdint.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 2147483647L
|
|
|
|
static uint32_t next = 1;
|
|
|
|
int32_t rand1( void )
|
|
{
|
|
return ( ( next = next * 1103515245L + 12345L ) % RAND_LOCAL_MAX );
|
|
}
|
|
|
|
void srand1( uint32_t 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, const uint8_t *src, uint16_t size )
|
|
{
|
|
while( size-- )
|
|
{
|
|
*dst++ = *src++;
|
|
}
|
|
}
|
|
|
|
void memcpyr( uint8_t *dst, const uint8_t *src, uint16_t size )
|
|
{
|
|
dst = dst + ( size - 1 );
|
|
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 '?';
|
|
}
|
|
}
|
|
|