diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/firmware-utils/Makefile | 1 | ||||
| -rw-r--r-- | tools/firmware-utils/src/mksyshdr.c | 44 | 
2 files changed, 45 insertions, 0 deletions
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile index 9f5346b44..88e3a4964 100644 --- a/tools/firmware-utils/Makefile +++ b/tools/firmware-utils/Makefile @@ -26,6 +26,7 @@ define Build/Compile  	$(call cc,ptgen)  	$(call cc,airlink)  	$(call cc,srec2bin) +	$(call cc,mksyshdr)  endef  define Build/Install diff --git a/tools/firmware-utils/src/mksyshdr.c b/tools/firmware-utils/src/mksyshdr.c new file mode 100644 index 000000000..8f6604c6a --- /dev/null +++ b/tools/firmware-utils/src/mksyshdr.c @@ -0,0 +1,44 @@ +#include <stdlib.h>
 +#include <stdio.h>
 +int main(int argc, char* argv[])
 +{
 +	FILE* fp;
 +	long  nImgSize;
 +	char* pHeader1 = "CSYS";
 +	long  nHeader2 = 0x80500000;
 +
 +	if (argc != 3)
 +	{
 +		printf("Usage: mksyshdr <header file> <image file>\n");
 +		return -1;
 +	}
 +
 +	fp = fopen(argv[2], "rb");
 +	if (fp != NULL)
 +	{
 +		fseek(fp, 0, SEEK_END);
 +		nImgSize = ftell(fp);
 +		fclose(fp);
 +		fp = fopen(argv[1], "wb+");
 +		if (fp != NULL)
 +		{
 +			fwrite(pHeader1,  sizeof(char), 4, fp);
 +			fwrite(&nHeader2, sizeof(long), 1, fp);
 +			fwrite(&nImgSize, sizeof(long), 1, fp);
 +			fclose(fp);
 +		}
 +		else
 +		{
 +			printf("Cannot create %s.\n", argv[1]);
 +			return -1;
 +		}
 +	}
 +	else
 +	{
 +		printf("Cannot open %s.\n", argv[2]);
 +		return -1;
 +	}
 +
 +	return 0;
 +}
 +
  | 
