这个工具是之前做v3s的时候,因为用到nand。然后参考晕哥的帖子
V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写
通过调用脚本烧录然后跑linux,启动完成后把nand挂载u盘,然后用Win32DiskImager烧录。
发现Win32DiskImager会把本地的硬盘也显示出来,这个时候如果不小心选错的话,后果非常严重。心想着就自己做个工具,保险一点。顺便把脚本启动也一并做进去了,通过C#调用
做好的工具如下图
1.烧写的盘符为所需要烧写的盘符地址,默认会选择小于10GB的U盘或者硬盘,而且盘符包括Linux字样,具体可以看源码实现
2.第一阶段boot,指的是spl的boot。可以自己做nand boot驱动,利用xoot 精简
3.选择需要跳的page大小,如果用W25N01GV选择跳2K。意思是页大小,为什么说是跳呢,全志的brom里面默认一个页就只读1024byte,如果一个nand的页是2K,也是只读前面的1K。所以烧录时候要对应把SPL数据拆开1K,1K地放入nand的页中。
4.第二阶段的boot。第二阶段boot一般是自己拿来做bootloader,烧录完BootLoader后面app的升级就不需要这个工具了,自己做对应BootLoader的升级工具例如usb,或者网络tftp。很方便。当然,这个第二阶段boot也可以直接把APP烧录进去。
5.把设备进入sunxi-fel模式,点击烧录按钮,这个时候,软件会调用晕哥帖子给出的烧录脚本进行linux烧录并启动,烧录成功软件后会倒计时等待linux启动并挂载u盘。等待倒计时结束后就开始操作底层磁盘,把第一阶段boot和第二阶段的boot烧录到对应位置,默认这个软件第二阶段boot烧录位置是磁盘的0x10000位置 。具体可以看程序源码。
软件截图
直接上附件
编译好的软件
SPL_SPINand_烧录软件.rar
windows下sunxi-fel的驱动安装,zadig
zadig-2_3.rar
下面是源代码
SPL_Proc_For_SPINand.rar
注:
因为是底层磁盘操作,所以运行时候需要获取管理员权限
如果电脑插着有小于10GB的U盘或者硬盘,而且盘符包括Linux字样的不能 用本软件!
使用时候千万要小心看软件提示,不然烧录bin到硬盘的0扇区后果很严重!!!
用W25N01GV,选择跳2K
最近编辑记录 微凉VeiLiang (2020-11-08 22:30:52)
离线
感谢分享!
离线
不错不错 相当给力
离线
我可以集成到DKTool吗
完全可以有! 哈哈
离线
我可以集成到DKTool吗
嘿嘿,完全可以
离线
有烧写SD Nand的软件吗 楼主
离线
这个工具很给力,先研究一下
离线
代码如何区分 U盘 和 硬盘?
离线
这个确实是厉害,直接调用XFEl写个通用的烧录工具我感觉会更实用!
离线