view target-utils/libload/hexstrings.c @ 561:392525355ee7

loadtools/scripts: gtm900.config renamed to gen4.config It turns out that a GTM900 variant exists with 8 MiB flash, thus -h gen8 needs to be used for GTM900 modules as the general case, and the old -h gtm900 config is best renamed to -h gen4, although not currently official for any actual target.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 30 Jan 2020 07:10:20 +0000
parents e7502631a0f9
children
line wrap: on
line source

/*
 * The decode_hex_digits() function contained in this module
 * will be used by the XRAM and flash loading commands
 * which take SREC-like long hex string arguments.
 */

#include <ctype.h>
#include "types.h"

decode_hex_digits(str, ndigits, valp)
	char *str;
	int ndigits;
	u32 *valp;
{
	u32 accum;
	int i, c;

	accum = 0;
	for (i = 0; i < ndigits; i++) {
		c = *str++;
		if (!isxdigit(c))
			return(-1);
		accum <<= 4;
		if (isdigit(c))
			accum += c - '0';
		else if (islower(c))
			accum += c - 'a' + 10;
		else
			accum += c - 'A' + 10;
	}
	*valp = accum;
	return(0);
}