搜索
bottom↓
回复: 119

U盘下载升级文件源码

  [复制链接]

出0入0汤圆

发表于 2016-5-26 10:13:50 | 显示全部楼层 |阅读模式
本帖最后由 LingYi 于 2016-5-27 09:10 编辑

很长时间没有发过帖子了,也在论坛里面索取过不少的有用信息,

现将回馈一个占用ROM和RAM超小的USB bootloader

系统抛弃了FATFS ,借鉴了电脑圈圈 “我的假U盘”,虚拟的一个FAT16,直接将文件拖拽到U盘里面,即可完成系统升级。


下面是编译后内存的使用情况:
    Total RO  Size (Code + RO Data)                12764 (  12.46kB)
    Total RW  Size (RW Data + ZI Data)              3104 (   3.03kB)
    Total ROM Size (Code + RO Data + RW Data)      12964 (  12.66kB)

(如果对你有用,就打个赏,实在不行盖个楼也行啊!别只是来索取源码!互利才能互惠。后面本人会放一个优秀的操作系统应用框架)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出100入85汤圆

发表于 2016-5-26 10:18:13 | 显示全部楼层
本帖最后由 whatcanitbe 于 2016-5-26 10:19 编辑

有代码,有图。谢谢分享。

出0入0汤圆

发表于 2016-5-26 10:24:04 | 显示全部楼层
感谢分享,下载回来学习一下

出0入0汤圆

发表于 2016-5-26 10:51:24 | 显示全部楼层
加密文件升级?

出0入0汤圆

 楼主| 发表于 2016-5-26 10:53:12 | 显示全部楼层

暂时没有做,只是做了基本的升级。可以自己添加。

出0入0汤圆

发表于 2016-5-26 11:02:31 | 显示全部楼层
SST25VF016B 才16Mbit / 2MBytes

楼主怎么虚拟到 512Mbytes 去了

出0入0汤圆

发表于 2016-5-26 11:34:04 | 显示全部楼层
感谢分享,好东西

出100入101汤圆

发表于 2016-5-26 11:37:23 | 显示全部楼层
是stm32的板子出USB口连电脑?

出0入0汤圆

发表于 2016-5-26 11:49:32 | 显示全部楼层
这个怎么用呢?求楼主指点一下

出0入0汤圆

发表于 2016-5-26 12:02:40 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2016-5-26 12:04:05 | 显示全部楼层
Magicfjpg 发表于 2016-5-26 11:02
SST25VF016B 才16Mbit / 2MBytes

楼主怎么虚拟到 512Mbytes 去了

扩容盘就这样来的

出0入0汤圆

发表于 2016-5-26 12:42:49 | 显示全部楼层


首先感谢楼主发源代码.

楼主能说一下基本原理吗

用户程序是否需要修改中断向量,修改到多少.

文件名是否特殊要求

出0入0汤圆

发表于 2016-5-26 13:06:40 来自手机 | 显示全部楼层
感谢分享,好东西,赞!

出0入0汤圆

发表于 2016-5-26 13:41:30 | 显示全部楼层
先顶了           

出0入13汤圆

发表于 2016-5-26 14:01:01 来自手机 | 显示全部楼层
感谢分享!楼主没说怎么用啊?

出0入0汤圆

 楼主| 发表于 2016-5-26 14:12:23 | 显示全部楼层
Magicfjpg 发表于 2016-5-26 11:02
SST25VF016B 才16Mbit / 2MBytes

楼主怎么虚拟到 512Mbytes 去了

没有关系,如果容量太小了,操作系统会把FAT16 转换成FAT12,不知道是不是所有的系统都支持FAT12,所以容量就虚拟大了。

出0入0汤圆

 楼主| 发表于 2016-5-26 14:13:14 | 显示全部楼层
zhuyihua001 发表于 2016-5-26 12:42
首先感谢楼主发源代码.

楼主能说一下基本原理吗

偏移量16K

出0入0汤圆

发表于 2016-5-26 14:33:43 | 显示全部楼层
学习下,多谢分享

出0入0汤圆

发表于 2016-5-26 14:35:50 | 显示全部楼层
LingYi 发表于 2016-5-26 10:53
暂时没有做,只是做了基本的升级。可以自己添加。


额,看你图片README说是加密文件呢。    如果只是BIN烧写,12K似乎太大了。 我也是仿照的本坛的http://www.amobbs.com/thread-5638810-1-1.html加圈圈的虚拟FAT12, BIN烧写只留32位校验和验证,去掉调试代码  优化最高编译试了下  Program Size: Code=4608 RO-data=1980 RW-data=104 ZI-data=1760   编译完可以正常运行枚举

出0入0汤圆

发表于 2016-5-26 14:40:09 | 显示全部楼层
LingYi 发表于 2016-5-26 14:12
没有关系,如果容量太小了,操作系统会把FAT16 转换成FAT12,不知道是不是所有的系统都支持FAT12,所以容 ...

这个地方我也是愣了半个小时,模拟的256K U盘 指定FAT16格式  连续读写多个小文件怎么跟想象的不一样,结果发现强制用FAT12了,FAT12的FAT表要拼半字节。

出0入0汤圆

 楼主| 发表于 2016-5-26 14:46:37 | 显示全部楼层
huangqi412 发表于 2016-5-26 14:40
这个地方我也是愣了半个小时,模拟的256K U盘 指定FAT16格式  连续读写多个小文件怎么跟想象的不一样,结 ...

是的,FAT12 是使用的半字节来表示簇的使用情况的,不知道现在的系统是不是都还支持FAT12了。
里面有限制,写多个文件会出错了,FLASH 空间溢出,FAT表溢出  根目录溢出

出0入0汤圆

 楼主| 发表于 2016-5-26 14:56:12 | 显示全部楼层
huangqi412 发表于 2016-5-26 14:40
这个地方我也是愣了半个小时,模拟的256K U盘 指定FAT16格式  连续读写多个小文件怎么跟想象的不一样,结 ...

可以看一下你的代码吗?求求631640356

出0入0汤圆

发表于 2016-5-26 15:15:27 | 显示全部楼层
收藏学习了。

出0入0汤圆

发表于 2016-5-26 15:36:00 | 显示全部楼层
收藏了。下载学习学习。

出0入0汤圆

发表于 2016-5-26 15:41:03 | 显示全部楼层
LingYi 发表于 2016-5-26 14:56
可以看一下你的代码吗?求求631640356

大小差别很大应该是你用库的关系。 我用MDK,没用ST的库,所有代码用键盘敲出来的,USB库在圈圈书基础上写的。  你从工程去掉一些不要的库文件,选择优化等级应该可以缩一些下来。  

出0入0汤圆

发表于 2016-5-26 15:57:13 | 显示全部楼层
楼主用了很多const,把数组编译到flash中去了,实际上去掉const,编译到RAM去就可以了,反正在bootloader阶段需要节省flash更重要。

出0入0汤圆

发表于 2016-5-26 17:18:55 | 显示全部楼层

出0入0汤圆

发表于 2016-5-26 17:33:11 | 显示全部楼层
多谢分享      

出0入0汤圆

发表于 2016-5-26 17:41:41 | 显示全部楼层
sblpp 发表于 2016-5-26 15:57
楼主用了很多const,把数组编译到flash中去了,实际上去掉const,编译到RAM去就可以了,反正在bootloader阶 ...

说明这些数组是有初值的,所以即使放在RAM中,也需要把初始值放到flash中,并不能省。
但如果编译器支持压缩的话,确实可以略小一些。

出0入0汤圆

发表于 2016-5-26 21:30:32 | 显示全部楼层
sblpp 发表于 2016-5-26 15:57
楼主用了很多const,把数组编译到flash中去了,实际上去掉const,编译到RAM去就可以了,反正在bootloader阶 ...

   模拟FAT表之类的数组,都是有固定值的,放在RAM里一样要从FLASH拷出来,不然默认值哪来。   U8 BUF[]={1,2,3,4,5,6,7}   你试试前面加CONST和不加CONST.

出0入0汤圆

发表于 2016-5-26 22:08:13 | 显示全部楼层
非常感谢分享

出0入0汤圆

发表于 2016-5-26 22:28:28 | 显示全部楼层
这个不错 前段时间 论坛也有个哦

出0入0汤圆

发表于 2016-5-27 08:42:23 | 显示全部楼层
试试可不可以用在自己的项目中

出0入0汤圆

发表于 2016-5-27 08:58:23 | 显示全部楼层
这个可以学习一下哦,搞一搞;

出0入0汤圆

发表于 2016-5-27 09:40:38 来自手机 | 显示全部楼层
支持楼主,请问你这个是用mcu内部的flash还是外扩的flash,模拟U盘

出0入0汤圆

 楼主| 发表于 2016-5-27 09:44:43 | 显示全部楼层
xyz2008 发表于 2016-5-27 09:40
支持楼主,请问你这个是用mcu内部的flash还是外扩的flash,模拟U盘

内部,直接下载bin就可以跑起来了

出350入8汤圆

发表于 2016-5-27 09:45:58 | 显示全部楼层
不错,支持楼主!!

出0入0汤圆

发表于 2016-5-27 10:48:19 | 显示全部楼层
非常感谢楼主分享!这里有个疑问,Bootloader\USER\USB里面的是st官方库吗?我没找到。如果想要移植到stmf407,这些应该都要修改吧?

出0入0汤圆

发表于 2016-5-27 11:03:06 | 显示全部楼层
本帖最后由 LVmcu 于 2016-5-27 11:09 编辑

将楼主的bootload烧到板子了,正确识别出U盘,可以给个APP的示例程序吗? (应为没有用过bootload,所以想有个APP的示例少走些弯路。

出0入0汤圆

发表于 2016-5-27 11:49:07 | 显示全部楼层
楼主刚发现一问题,直接拔USB没事,但是点 安全删除 删除之后电脑死机。 xp系统SP2

出0入0汤圆

 楼主| 发表于 2016-5-27 11:52:34 | 显示全部楼层
LVmcu 发表于 2016-5-27 11:03
将楼主的bootload烧到板子了,正确识别出U盘,可以给个APP的示例程序吗? (应为没有用过bootload,所以想 ...

APP地址偏移16K

出0入0汤圆

 楼主| 发表于 2016-5-27 11:52:49 | 显示全部楼层
LVmcu 发表于 2016-5-27 11:49
楼主刚发现一问题,直接拔USB没事,但是点 安全删除 删除之后电脑死机。 xp系统SP2 ...

计算机问题吧

出0入0汤圆

发表于 2016-5-27 12:05:56 来自手机 | 显示全部楼层
好东西暂时没想到用途!

出0入8汤圆

发表于 2016-5-27 12:37:51 | 显示全部楼层
谢谢楼主资料!!

出0入0汤圆

发表于 2016-5-27 17:44:40 | 显示全部楼层
顶一下楼主,多谢分享。

出0入0汤圆

发表于 2016-5-27 18:25:39 来自手机 | 显示全部楼层
盖楼支持,谢谢楼主经验。

出0入0汤圆

发表于 2016-5-27 22:25:16 | 显示全部楼层
U盘升级,谢谢了

出0入0汤圆

发表于 2016-5-27 22:34:38 来自手机 | 显示全部楼层
马克一下,U盘形式升级

出0入0汤圆

发表于 2016-5-27 22:56:32 | 显示全部楼层
感谢无私的分享。顶上

出0入0汤圆

发表于 2016-5-27 23:37:25 | 显示全部楼层
http://www.amobbs.com/thread-5638746-1-1.html

楼主和这个的区别是什么啊?

出0入0汤圆

发表于 2016-5-29 02:41:01 | 显示全部楼层
大家加油盖楼呀。 继续顶上

出0入0汤圆

发表于 2016-5-29 08:11:33 | 显示全部楼层
好东西, 必须支持!

出0入0汤圆

发表于 2016-5-29 22:13:13 | 显示全部楼层
这个东西是不是所有的芯片都支持?

出0入0汤圆

 楼主| 发表于 2016-5-30 09:11:34 | 显示全部楼层
zyw19987 发表于 2016-5-27 23:37
http://www.amobbs.com/thread-5638746-1-1.html

楼主和这个的区别是什么啊?

应用上没有区别,最大的区别在于我的是源码提供。

出0入0汤圆

 楼主| 发表于 2016-5-30 09:13:00 | 显示全部楼层
xiaoliusheng 发表于 2016-5-29 22:13
这个东西是不是所有的芯片都支持?

51楼回复的链接里面的都可以

出0入0汤圆

发表于 2016-5-30 09:16:50 | 显示全部楼层
学习一下,感谢分享源码。

出0入0汤圆

发表于 2016-5-30 11:16:11 | 显示全部楼层
非常感谢分享

出0入0汤圆

发表于 2016-5-30 11:18:07 来自手机 | 显示全部楼层
支持下感谢分享

出50入0汤圆

发表于 2016-5-30 13:39:49 | 显示全部楼层
支持楼主,下载来折腾下

出0入0汤圆

发表于 2016-5-30 18:21:31 | 显示全部楼层

看了好像是17K

出0入0汤圆

发表于 2016-5-30 18:47:28 | 显示全部楼层
感谢分享!!!

出0入0汤圆

发表于 2016-5-30 21:27:04 | 显示全部楼层
本帖最后由 zyw19987 于 2016-5-30 21:28 编辑
LingYi 发表于 2016-5-30 09:11
应用上没有区别,最大的区别在于我的是源码提供。


赞一个
那个楼主后面好像也开源了。

如果他后面是真实开源,那他的封装应该还是可以学习的(因为他原来考虑开源不彻底)。
当然两位的代码我都还没拜读。

出0入0汤圆

发表于 2016-5-31 09:51:25 | 显示全部楼层
所有mcu都可以用吗?PIC和STM32可以吗??

出0入0汤圆

发表于 2016-5-31 11:43:53 | 显示全部楼层
记号        

出0入0汤圆

发表于 2016-5-31 14:21:53 | 显示全部楼层
不错,这个要试试

出0入0汤圆

发表于 2016-5-31 19:41:12 | 显示全部楼层
这个文件名需要有特殊要求吗?

出0入0汤圆

发表于 2016-5-31 21:15:15 | 显示全部楼层
感谢分享,下载学习一下

出0入0汤圆

发表于 2016-5-31 21:18:17 | 显示全部楼层
厉害呀,高手

出0入0汤圆

发表于 2016-6-5 11:26:46 | 显示全部楼层
LingYi 发表于 2016-5-30 09:13
51楼回复的链接里面的都可以

恩,看见了

出0入0汤圆

发表于 2016-6-5 12:12:25 | 显示全部楼层
不错不错!先研究一下

出0入0汤圆

发表于 2016-6-5 21:04:34 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2016-6-5 21:05:25 | 显示全部楼层
#define                APP_FLAG_ADDR                        (16*1024)
#define                APP_FLAG_SIZE                        (1*1024)
#define                APP_APP_ADDR                        (APP_FLAG_ADDR + APP_FLAG_SIZE)  //1c00
#define                APP_APP_SIZE                        (128*1024)
#define                APP_Address                                (0x8000000 + APP_APP_ADDR)

从代码中判断 APP的起始地址应该为:0x4400(17KB)吧?

出0入0汤圆

 楼主| 发表于 2016-6-6 10:26:13 | 显示全部楼层
caizhiwei 发表于 2016-6-5 21:05
#define                APP_FLAG_ADDR                        (16*1024)
#define                APP_FLAG_SIZE                        (1*1024)
#define                APP_APP_ADDR                        (APP_FL ...

对的,17K的位置

出0入4汤圆

发表于 2016-6-6 10:28:32 | 显示全部楼层
支持下。空了研究研究

指不定用上

出0入0汤圆

 楼主| 发表于 2016-6-6 10:44:22 | 显示全部楼层
我做我的王 发表于 2016-5-31 09:51
所有mcu都可以用吗?PIC和STM32可以吗??

虚拟文件系统的方法,什么CPU都可以用。

出0入0汤圆

发表于 2016-6-6 13:08:15 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2016-6-8 08:45:46 | 显示全部楼层
感谢楼主分享 下载后学习

出0入0汤圆

发表于 2016-6-8 13:26:21 | 显示全部楼层
谢谢,正好用的上

出0入0汤圆

发表于 2016-6-9 11:18:15 | 显示全部楼层
感谢分享,好东西

出0入12汤圆

发表于 2016-6-9 19:03:52 | 显示全部楼层
本帖最后由 kuanglf 于 2016-6-9 19:55 编辑

学习一下,感谢分享源码。
请问,晶振用12M时能用吗?
怎么找不到在哪改时钟。

出0入0汤圆

发表于 2016-6-9 19:10:10 | 显示全部楼层
学习。感谢。实际 上暂时用不到。不过要做个记号。

出0入0汤圆

发表于 2016-6-10 10:35:15 来自手机 | 显示全部楼层
我的泰克示波器大U盘不认,能这么做个小U?

出0入0汤圆

发表于 2016-6-10 14:05:57 | 显示全部楼层
多谢分享

出0入12汤圆

发表于 2016-6-10 15:27:19 | 显示全部楼层
win8和win10下不能用吗

出0入0汤圆

发表于 2016-6-10 21:16:08 | 显示全部楼层
好东西,谢谢楼主的共享呀

出0入0汤圆

发表于 2016-6-15 14:24:28 | 显示全部楼层
辛苦发帖了。。。这个不错。论坛还有好多相关

出0入0汤圆

发表于 2016-6-15 14:25:55 | 显示全部楼层
有代码,有图。!!!

出0入0汤圆

发表于 2016-6-15 16:28:08 | 显示全部楼层
学习下,高手

出0入0汤圆

发表于 2016-6-15 17:09:52 | 显示全部楼层
很不错 谢谢分享

出0入0汤圆

发表于 2017-1-12 16:04:30 | 显示全部楼层
mark              

出0入0汤圆

发表于 2017-1-12 16:30:32 | 显示全部楼层
好资料,终于等到源码....

出0入0汤圆

发表于 2017-1-12 19:13:05 | 显示全部楼层
好资料。学习了。谢谢楼主

出0入0汤圆

发表于 2017-1-12 22:45:14 | 显示全部楼层
先下了理解下,谢谢

出0入0汤圆

发表于 2017-1-13 08:20:38 | 显示全部楼层
marke           

出0入0汤圆

发表于 2017-1-14 18:26:31 | 显示全部楼层
很不错,谢谢了啊啊

出0入0汤圆

发表于 2017-1-15 17:02:28 | 显示全部楼层
学习中,谢谢楼主分享。。。

出0入0汤圆

发表于 2017-1-16 13:02:33 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2017-1-16 14:04:04 | 显示全部楼层
厉害,正需要,谢谢您,U盘下载升级文件源码

出0入0汤圆

发表于 2017-1-17 15:53:33 | 显示全部楼层
谢谢分享。

出0入0汤圆

发表于 2017-1-18 18:43:06 | 显示全部楼层
感谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 20:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表