You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/tools/firmware-utils/src/mksyshdr.c

47 lines
757 B
C

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
int main(int argc, char* argv[])
{
FILE* fp;
uint32_t nImgSize;
char* pHeader1 = "CSYS";
uint32_t 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(nHeader2), 1, fp);
fwrite(&nImgSize, sizeof(nImgSize), 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;
}