FS2410重新分区nandflash
来源:互联网 发布:淘宝收藏量会下降吗 编辑:程序博客网 时间:2024/05/16 08:48
转载请注明出处
作者:小马
优龙的FS2410开发板. 这个板子默认配有linux和Wince两个系统. 两系统占了64m nandflash的大部分, 加上bootloader最后我能wince系统下能看到的可以留给我用的只有2m.
c#写完基于wince的应用程序后发现安装文件大于2m, 没办法,只能牺牲linux了. 我打算把放linux的那部分近30m的空间擦除,然后把这部分这间”移”到wince下给我当硬盘用.
从网上找了一些资料, 搞了两天没成功. 于是带着板子去了优龙公司,下面这个方法就是他们提供的,我在板子上实验成功. 把它贴在下面供有同样问题的朋友参阅(我加了一些注释以便于理解).
首先用ADS打开S3C2410_BIOS,这个是公司光盘提供的bootloader的源程序. 打开其中的Nand.c文件,原来的代码如下
static struct Partition NandPart[] = { {0, 0x00040000, "bootloader"}, //256K {0x00040000, 0x001c0000, "zImage"},//0.75M {0x00200000, 0x01e00000, "cramfs"}, //30M {0x02000000, 0x02000000, "WinCE"}, //32M {0, 0 , 0}};
//分区1用来放bootloader, 分区2是linux的内核,分区3是linux文件系统. 最后32m wince占了30m,剩下2m可以当硬盘用. 最后一个0是作结束标志的. 把它改成如下的形式:static struct Partition NandPart[] = { {0, 0x00040000, "boot"}, //256K {0x00040000, 0x02000000, "kernel"}, //32M, 用来放wince {0x02040000, 0x01fc0000, "flash"},//用来做硬盘, 31.75 {0, 0 , 0}};
然后在nand.c文件里找到LoadRun函数
void LoadRun(int part_sel)函数里面的
if(part_sel == 3)
size = 0x01e00000;
这两行代码注释掉.
void NandLoadRunW(void)里面的
LoadRun(3);
改成LoadRun(1);//这表示从flash第一分区加载.
在ADS下编译一下,可以得到S3C2410_BIOS.bin文件。
用sjf2410(flash 烧写工具)将上述bios烧写到NandFlash中,(用上述文件替换原来“flash烧写”文件夹下的.bin文件).
将“//SMDK2410/DRIVERS/NandFlsh/FMD”中的cfnand.h文件中的下面几个定义改动一下,如下所示:
#define NUM_BLOCKS_NK 0x800 // 每个块有16384字节,和在nand.c中定义的大小相同即可, 用NUM_BLOCKS_NK*16384,得到的结果看是不是之前在nand.c里定义的用来存放wince映像的大小.
需要在bootload中修改WIN CE烧写的地址与引导WIN CE启动的地址,确保它们相同
.将“//SMDK2410/INC”文件下的loader.h中的下面几个定义改动一下,如下所示:
#define RESERVED_BOOT_BLOCKS 0xF80//改为如下:#define RESERVED_BOOT_BLOCKS 0x810 // 0x02040000/0x4000=0x810#define IMAGE_START_BLOCK RESERVED_BOOT_BLOCKS
这里Reserved_Boot_Blocks是指给bootloader和NK在NAND上保留多少块,剩下的就可以用作wince中的NandFlash了。我的前两个分区占了0x02040000的空间,共0x810个块。原文件中有这样的注释:(NBOOT_BLOCK_SIZE + TOC_BLOCK_SIZE + EBOOT_BLOCK_SIZE),其实根本不是那么回事,优龙用自己的bootloader装载wince,没用nboot,也没用eboot,所以不要看这个注释,否则想穿脑袋也想不通。
点“build and sygen”编译平台,得到NK.nb0,通过USB下载到Nandflash中,运行,进入wince系统后,如使用手册4.4.5的步骤格式化及重新分区,可以看到Nandflash的空间由原来的2M扩展到35.5M
- FS2410重新分区nandflash
- nandflash 分区
- nandflash分区
- nandflash分区
- nandflash格式化分区
- nandflash mtd分区
- FS2410
- [转]NandFlash的分区实现
- 64M nandflash分区示意图
- 最终版本NandFlash分区信息
- 64M nandflash分区示意图
- 硬盘重新分区
- Vista 硬盘重新分区
- Vista 硬盘重新分区
- Win7重新分区指令
- ubunut 重新分区
- 重新加载分区
- Linux重新分区
- MYSQL的慢查询分析
- iPad 和 iPhone Simulator Mac.OS.X.Leopard
- 函数指针与面向对象思想
- NSXMLParser解析多层嵌套xml
- 使用C#多线程程序(2)
- FS2410重新分区nandflash
- 制作一个不在任务栏及任务列表中显示的幽灵程序
- NAND闪存芯片的深入解析
- Linux下C和C++开发基础
- 百年方略:企业战略咨询之要点
- PHILIPS 为什么这样做
- 如何选择虚拟主机(asp,php篇)1
- 网页里的各种高度和宽度(3)scrollTop、scrollLeft、scrollWidth、scrollHeight
- 屏蔽Flash右键信息的js代码