FreeCalypso > hg > freecalypso-tools
diff target-utils/libload/hexstrings.c @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Jun 2016 00:13:35 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/target-utils/libload/hexstrings.c Sat Jun 11 00:13:35 2016 +0000 @@ -0,0 +1,33 @@ +/* + * 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); +}