您尚未登录。

楼主 #1 2020-11-08 22:28:35

微凉VeiLiang
会员
所在地: 深圳
注册时间: 2018-10-28
已发帖子: 627
积分: 522
个人网站

看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

这个工具是之前做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位置 。具体可以看程序源码。

软件截图
QQ%E6%88%AA%E5%9B%BE20201108214323.png

直接上附件
编译好的软件
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)

离线

#2 2021-01-18 15:25:07

大帅
会员
注册时间: 2019-01-17
已发帖子: 169
积分: 128.5

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

感谢分享!

离线

#3 2021-01-20 10:30:09

hanzixi_angel
会员
注册时间: 2020-09-21
已发帖子: 54
积分: 45.5

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

不错不错  相当给力

离线

#4 2021-01-20 13:10:31

LinjieGuo
Moderator
注册时间: 2019-07-24
已发帖子: 581
积分: 585
个人网站

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

好东西,才看到。感谢分享。

离线

#5 2021-01-20 22:55:54

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
已发帖子: 916
积分: 903
个人网站

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

我可以集成到DKTool吗

离线

#6 2021-01-20 23:49:25

马前卒
会员
注册时间: 2020-08-08
已发帖子: 60
积分: 57

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

迪卡 说:

我可以集成到DKTool吗

完全可以有! 哈哈

离线

楼主 #7 2021-01-21 00:21:59

微凉VeiLiang
会员
所在地: 深圳
注册时间: 2018-10-28
已发帖子: 627
积分: 522
个人网站

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

迪卡 说:

我可以集成到DKTool吗

嘿嘿,完全可以

离线

#8 2021-01-21 10:09:14

hanzixi_angel
会员
注册时间: 2020-09-21
已发帖子: 54
积分: 45.5

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

有烧写SD Nand的软件吗  楼主

离线

#9 2021-01-23 15:25:43

hzqlz
会员
注册时间: 2018-03-23
已发帖子: 168
积分: 146

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

这个工具很给力,先研究一下

离线

#10 2021-09-19 21:27:39

九重天
会员
注册时间: 2020-10-06
已发帖子: 26
积分: 18.5

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

代码如何区分 U盘 和 硬盘?

离线

#11 2023-02-01 14:57:24

bright
会员
注册时间: 2022-10-21
已发帖子: 10
积分: 0

Re: 看到有兄弟用win32diskimager不小心把磁盘给格式化掉了,分享一个C#写的磁盘烧录工具,源码

这个确实是厉害,直接调用XFEl写个通用的烧录工具我感觉会更实用!

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn