OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /eco32/tags/eco32-0.24/tools/bin2mcs
    from Rev 211 to Rev 40
    Reverse comparison

Rev 211 → Rev 40

/intelhex.pdf Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
intelhex.pdf Property changes : Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: Makefile =================================================================== --- Makefile (revision 211) +++ Makefile (nonexistent) @@ -1,19 +0,0 @@ -# -# Makefile for binary to Intel hex converter -# - -BUILD = ../../build - -.PHONY: all install clean - -all: bin2mcs - -install: bin2mcs - mkdir -p $(BUILD)/bin - cp bin2mcs $(BUILD)/bin - -bin2mcs: bin2mcs.c - gcc -m32 -g -Wall -o bin2mcs bin2mcs.c - -clean: - rm -f *~ bin2mcs Index: bin2mcs.c =================================================================== --- bin2mcs.c (revision 211) +++ bin2mcs.c (nonexistent) @@ -1,87 +0,0 @@ -/* - * bin2mcs.c -- convert binary data to Intel hex records - */ - - -#include -#include -#include -#include - - -void error(char *fmt, ...) { - va_list ap; - - va_start(ap, fmt); - printf("Error: "); - vprintf(fmt, ap); - printf("\n"); - va_end(ap); - exit(1); -} - - -int main(int argc, char *argv[]) { - char *endptr; - unsigned int loadAddr; - FILE *infile; - FILE *outfile; - int numBytes, i; - int c; - unsigned char lineData[16]; - unsigned int chksum; - - if (argc != 4) { - printf("Usage: %s \n", - argv[0]); - exit(1); - } - loadAddr = strtoul(argv[1], &endptr, 16); - if (*endptr != '\0') { - error("illegal load address %s", argv[1]); - } - infile = fopen(argv[2], "rb"); - if (infile == NULL) { - error("cannot open input file %s", argv[2]); - } - outfile = fopen(argv[3], "wt"); - if (outfile == NULL) { - error("cannot open output file %s", argv[3]); - } - fprintf(outfile, ":02000004"); - fprintf(outfile, "%04X", loadAddr >> 16); - chksum = 0x02 + 0x04 + - ((loadAddr >> 24) & 0xFF) + - ((loadAddr >> 16) & 0xFF); - fprintf(outfile, "%02X\n", (-chksum) & 0xFF); - while (1) { - chksum = 0; - for (numBytes = 0; numBytes < 16; numBytes++) { - c = fgetc(infile); - if (c == EOF) { - break; - } - lineData[numBytes] = c; - chksum += c; - } - if (numBytes == 0) { - break; - } - fprintf(outfile, ":%02X%04X00", numBytes, loadAddr & 0xFFFF); - for (i = 0; i < numBytes; i++) { - fprintf(outfile, "%02X", lineData[i]); - } - chksum += numBytes; - chksum += ((loadAddr >> 8) & 0xFF) + - ((loadAddr >> 0) & 0xFF); - fprintf(outfile, "%02X\n", (-chksum) & 0xFF); - loadAddr += numBytes; - if (c == EOF) { - break; - } - } - fprintf(outfile, ":00000001FF\n"); - fclose(infile); - fclose(outfile); - return 0; -}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.