#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //for pow #include "../../define.h" int main(int argc,char *argv[]) { unsigned int MaxLen=25*1024*1024, ImageLen=0; unsigned char *ptr; int fd,wrd; ptr=malloc(MaxLen); if(ptr==NULL) { printf("UpdateRootfs NG - can not malloc\n"); return 0; } memset(ptr,0xFF,MaxLen); fd = open(argv[1], O_RDONLY); if(fd < 0) { printf("UpdateRootfs NG - can not open rootfs\n"); free(ptr); return 0; } ImageLen=read(fd,ptr,MaxLen); close(fd); printf("ImageLen=0x%x\n",ImageLen); if(ImageLen<(24*1024*1024)) { printf("ImageLen size mismatch\n"); free(ptr); return 0; } fd = open("/dev/mtdblock8", O_RDWR); if (fd < 0) { printf("UpdateRootfs NG - can not open mtdblock8\n"); free(ptr); return 0; } wrd=write(fd, ptr, ImageLen); close(fd); if(wrd!=ImageLen) { printf("UpdateRootfs NG - wrd(0x%x) != ImageLen(0x%x)\n",wrd,ImageLen); free(ptr); return 0; } free(ptr); printf("UpdateRootfs OK\n"); }