fs_hdr.c

来自「ARM开发用的启动代码」· C语言 代码 · 共 61 行

C
61
字号
#include <stdio.h>
#include <stdlib.h>
#include "board.h"#include "bios.h"
#define MAX_FILENAME_LEN   80
long filesize(FILE *stream)
{
   long curpos, length;

   curpos = ftell(stream);
   fseek(stream, 0L, SEEK_END);
   length = ftell(stream);
   fseek(stream, curpos, SEEK_SET);
   return length;
}
int main(int argc, char **argv)
{
	struct firmware_section_hdr fs_hdr;	char SectionFileName[MAX_FILENAME_LEN + 1];
	char HeaderFileName[MAX_FILENAME_LEN + 1];
	FILE *f;	unsigned short type;	long size;	long param;

	if (argc != 5)
	{
		printf("Usage: fs_hdr <section file name> <type> <param> <header file name>\n\n");
		exit(0);
	}

	strncpy(SectionFileName, argv[1], MAX_FILENAME_LEN);
	SectionFileName[MAX_FILENAME_LEN] = '\0';	type = atol(argv[2]);
	param = atol(argv[3]);
	strncpy(HeaderFileName, argv[4], MAX_FILENAME_LEN);
	HeaderFileName[MAX_FILENAME_LEN] = '\0';
	size = 0;	if (type > 0) {		f = fopen(SectionFileName, "rb");		size = filesize(f);
		fclose(f);	}
	fs_hdr.flags = 0;	fs_hdr.type = type;	fs_hdr.offset = sizeof(struct firmware_section_hdr);	fs_hdr.size = size;	fs_hdr.param = param;	f = fopen(HeaderFileName, "wb");
	fwrite((char *)(&fs_hdr), 1, sizeof(struct firmware_section_hdr), f);
	fclose(f);
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?