Tiny6410 mlc2 uboot


Tiny6410 mlc2 支持K9GAG08U0E nand flash启动,没有实现ECC校验,有待继续完善
资源截图
代码片段和文件信息
#include 
#include 
#include 

int main (int argc char *argv[])
{
FILE *fp;    /* 定义一个文件指针 */
unsigned char *Buf *a;
int BufLen;
int nbytes fileLen curPosition;
unsigned int checksum count;
int i;

if (argc != 3) /* 如果参数个数错误,打印帮助信息 */
{
/* 应用工具时格式必须是 ./mlc_boot_tool.exe old.bin new.bin */
printf(“Usage: mkbl1  
“);
return -1;
}

fp = fopen(argv[1] “rb“); /* 以读二进制的方式打开没有头部信号的old.bin文件 */
if( fp == NULL)
{
printf(“source file open error
“);
return -1;
}

fseek(fp 0L SEEK_END); /* 让文件位置指针指向文件末尾,便于下行的统计大小的操作 */
fileLen = ftell(fp); /* 用于得到文件位置指针当前位置相对于文件首的偏移字节数即文件大小*/

BufLen = 16*1024;
Buf = (char *)malloc(BufLen); /* 动态分配一段24k的内存空间 */
if (!Buf) /* 分配失败,将返回0 */
{
printf(“Alloc buffer failed!
“);
return -1;
}

memset(Buf 0x00 BufLen); /* 将上面分配的空间清零 */

if(fileLen < 2048)
{
printf(“source file too small !! do not need the tool !!
“);
free(Buf); /* 释放内存 */
return -1;
}

fseek(fp 0L SEEK_SET); /* 让文件位置指针指向文件开始 */
nbytes = fread(Buf 1 2048 fp); /* 将编译生成的old.bin文件拷贝前2K数据到到buf中 */
if ( nbytes != 2048 ) /* 返回值等于拷贝的元素的个数 */
{
printf(“0 page. source file read error
“); /* 如果个数和实际的不想等,则失败 */
free(Buf); /* 释放内存 */
fclose(fp); /* 关闭文件 */
return -1;
}

curPosition = ftell(fp);  /* 获得当前文件指针的位置 */

nbytes = fread(Buf + 8192 1 2048 fp);
if ( nbytes != 2048 ) /* 返回值等于拷贝的元素的个数 */
{
printf(“1 page. source file read error
“); /* 如果个数和实际的不想等,则失败 */
free(Buf); /* 释放内存 */
fclose(fp); /* 关闭文件 */
return -1;
}



fclose(fp); /* 关闭文件 */

/* 到这里为止,把新的bin的数据已经构造完成,现在要把这些数据写入到新的bin文件中 */
fp = fopen(argv[2] “wb“); /* 以二进制写的方式创建一个新的二进制文件 */
if (fp == NULL)
{
printf(“destination file open error
“);
free(Buf); /* 释放内存 */
return -1;
}

a = Buf; /* 指向内存的首地址 */
nbytes = fwrite( a 1 BufLen fp); /* 把buf中的数据写入新创建的bin文件 */

if ( nbytes != BufLen ) /* 返回值等于写入的元素的个数 */
{
printf(“destination file write error
“);
free(Buf); /* 释放内存 */
fclose(fp);/* 关闭文件 */
return -1;
}

free(Buf); /* 释放内存 */
fclose(fp);/* 关闭文件 */

return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     823818  2013-04-16 09:11  u-boot-2010.09-tiny6410u-boot

     文件        615  2013-04-15 13:48  u-boot-2010.09-tiny6410u-boot.lds

     文件     682342  2013-04-16 09:11  u-boot-2010.09-tiny6410u-boot.srec

     文件        732  2010-09-28 21:20  u-boot-2010.09-tiny6410.gitignore

     文件     227432  2013-04-16 09:11  u-boot-2010.09-tiny6410u-boot.bin

     文件      22744  2013-04-16 06:14  u-boot-2010.09-tiny6410l1.dis

     文件    1781499  2013-04-16 06:48  u-boot-2010.09-tiny6410l2.dis

     文件      15951  2010-09-28 21:20  u-boot-2010.09-tiny6410COPYING

     文件      12701  2010-09-28 21:20  u-boot-2010.09-tiny6410CREDITS

     文件      19807  2010-09-28 21:20  u-boot-2010.09-tiny6410MAINTAINERS

     文件      17659  2013-03-23 05:41  u-boot-2010.09-tiny6410MAKEALL

     文件      88616  2013-03-23 11:12  u-boot-2010.09-tiny6410Makefile

     文件     149798  2010-09-28 21:20  u-boot-2010.09-tiny6410README

     文件      12442  2010-09-28 21:20  u-boot-2010.09-tiny6410oards.cfg

     文件       8012  2010-09-28 21:20  u-boot-2010.09-tiny6410config.mk

     文件       2919  2010-09-28 21:20  u-boot-2010.09-tiny6410mkconfig

     文件       1631  2010-09-28 21:20  u-boot-2010.09-tiny6410
ules.mk

     文件         74  2010-09-28 21:20  u-boot-2010.09-tiny6410snapshot.commit

     文件     198118  2013-04-16 09:11  u-boot-2010.09-tiny6410u-boot.map

     文件      29443  2013-04-16 09:11  u-boot-2010.09-tiny6410System.map

     文件     231528  2013-04-16 09:11  u-boot-2010.09-tiny6410u-boot-nand.bin

     文件      16384  2013-04-16 06:35  u-boot-2010.09-tiny641016k.bin

     文件       1632  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548Makefile

     文件       8014  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548atum8548.c

     文件        945  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548config.mk

     文件       1766  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548ddr.c

     文件       2317  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548law.c

     文件       3147  2010-09-28 21:20  u-boot-2010.09-tiny6410oardatum8548 lb.c

     文件       1445  2010-09-28 21:20  u-boot-2010.09-tiny6410oardesptMakefile

     文件        168  2010-09-28 21:20  u-boot-2010.09-tiny6410oardesptconfig.mk

............此处省略7621个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)