小编Rav*_*avi的帖子

如何在微控制器的内部Flash ROM上编写.hex文件?

我想写一个大小为28 kb闪存的".hex"文件到大小为32 kb的内部闪存ROM.上面提到的问题是初始化flashROM.我正在做什么来编写该文件和代码如下所述:

  • 我有一个英特尔十六进制格式的.hex文件,我必须读写At91(8051)微控制器的内部FlashROM.
  • 以"rb +"模式打开.hex文件.
  • 获取文件的长度并将指针设置为起始地址(第0个地址).
  • 因为我需要逐页编写该文件,而在我的情况下pagesize是256字节,我将文件除以256.
  • 之后我尝试编写该文件.

请让我知道我哪里出错了.代码如下.

int a,b; int size,last_chunk; FILE *file; char *buffer1,name[20]; unsigned long fileLen;

file = fopen("flashROM.hex", "rb+");
if (!file)
{
    fprintf(stderr, "Unable to open file %s", name);
    return;
}

fseek(file, 0, SEEK_END);
fileLen=ftell(file);
printf("the file length is:%d\n",fileLen);
fseek(file, 0, SEEK_SET);

//Allocate memory
buffer1 =(char *)malloc(fileLen+1);

if (!buffer1)
{
    fprintf(stderr, "Memory error!");
            fclose(file);
    return;
}

//Read file contents into buffer
fread(buffer1, fileLen, 1, file);
/* We have to divide the entire file into …
Run Code Online (Sandbox Code Playgroud)

c linux embedded

0
推荐指数
1
解决办法
4271
查看次数

标签 统计

c ×1

embedded ×1

linux ×1