搜索
bottom↓
楼主: renjun_EMbest

从今天开始,像使用U盘一样,升级STM32

  [复制链接]

出0入0汤圆

发表于 2015-12-4 10:23:47 | 显示全部楼层
请问楼主加密如何实现?

出0入0汤圆

发表于 2015-12-4 10:30:47 | 显示全部楼层
本帖最后由 likebo 于 2015-12-4 10:32 编辑

lz我有个问题,我的产品本来就是用stm32+tf卡做了U盘功能的,而且随时插上usb都能访问tf卡(包括关机状态)。那么用这个bootloader的话会出现bootloder的U盘,那么就影响了该产品的正常工作流程。能否实现成进入bootloader后,在某种特殊操作下才进入U盘模式,否则就进入用户app。而且这“某种操作”还需具有普遍意义的操作,而不需要改动现有硬件设计......

出0入0汤圆

发表于 2015-12-4 10:30:52 | 显示全部楼层

介质肯定是USB,是直接用单片机的FLASH虚拟U盘?把APP拷到FLASH里的?那就和其他设备间接拷到FLASH原理一样,就是不太清楚怎么让文件系统在指定地址开始写入数据和通过调用STM32的FLASH写入数据的格式、方式真的没区别吗?

出0入0汤圆

发表于 2015-12-4 10:47:50 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2015-12-4 10:57:04 | 显示全部楼层
renjun_EMbest 发表于 2015-12-3 20:56
稍后开放一个lib和相应的加密API给各位用


如果你要做LIB,我再给几个接口的建议:

1、建议使用内部HSI,8M,2分后12倍频到48M,USB分频为1。这样将不依赖外部晶振,因为不是所有的用户设备都有外部晶振。
     如果怀疑其精度,建议留出时钟初始化(含USB时钟)部分给用户写。
     (我用C8T6从来不用外部晶振,最近测试了USB,效果一样的好!连接电脑时降频到48M,断开后恢复到64M。)
2、提供一个初始化钩子函数,用户可能需要打开USB的上拉电阻开关。
3、由用户指定APP程序起始地址。
4、由用户指定上电时Bootloader等待时长。

出0入0汤圆

发表于 2015-12-4 11:00:42 | 显示全部楼层
这个方法不错,收藏一下

出0入0汤圆

发表于 2015-12-4 11:02:30 | 显示全部楼层
挺好的 支持楼主
不过“在嵌入式系统中还没这么方便的升级手段”这话不准确哦 如91楼所说LPC11Uxx就自带这个功能

出0入0汤圆

发表于 2015-12-4 11:03:34 | 显示全部楼层
也来学习下,呵呵。

出0入0汤圆

发表于 2015-12-4 11:11:52 | 显示全部楼层
菜包 发表于 2015-12-3 22:32
这个以前用其他芯片的时候搞过,后来实际应用发现还是有点问题,最终没用了,主要是两个方面:

1 因为boot ...

usbcdc然后用超级终端传文件,用xmodem协议,这个不错啊呵呵

出0入0汤圆

发表于 2015-12-4 11:13:42 | 显示全部楼层
jiaowoxiaolu 发表于 2015-12-4 09:33
早就已经在用这种方法了,本来以为大家也都知道这种方法了,没想到还是有那么多人不知道啊

原理 ...

你这个更牛啊,usb复合设备

出0入0汤圆

发表于 2015-12-4 11:15:05 | 显示全部楼层
likebo 发表于 2015-12-4 10:30
lz我有个问题,我的产品本来就是用stm32+tf卡做了U盘功能的,而且随时插上usb都能访问tf卡(包括关机状态) ...

你可以搞成多个u盘的复合设备啊

出0入0汤圆

发表于 2015-12-4 11:28:00 | 显示全部楼层
论坛已经有好多,搜了下

http://www.amobbs.com/forum.php? ... amp;_dsign=40e87df3
http://www.amobbs.com/forum.php? ... amp;_dsign=1b260195
http://www.amobbs.com/forum.php? ... amp;_dsign=d0dac1dd
http://www.amobbs.com/forum.php? ... amp;_dsign=af5f97e2
http://www.amobbs.com/forum.php? ... amp;_dsign=f754e1ce
http://www.amobbs.com/forum.php? ... amp;_dsign=5d56e43f

出0入0汤圆

发表于 2015-12-4 11:30:12 | 显示全部楼层
这种东西,没有源码的还是不方便用。  找个有源码的用比较好。 不然换片子好折腾。

出0入22汤圆

发表于 2015-12-4 11:31:40 | 显示全部楼层
LCRPN 发表于 2015-12-4 10:57
如果你要做LIB,我再给几个接口的建议:

1、建议使用内部HSI,8M,2分后12倍频到48M,USB分频为1。这样 ...

LIB 什么LIB呀,这个压根就不是什么难度的,坛子里早就有加密算法的帖子了,还有c源码 AES,DES什么的,自己拿过来改改就是了,除非是考虑到跟自己产品相关不好开源,其他真没什么好藏着掖着

出0入0汤圆

发表于 2015-12-4 11:37:50 | 显示全部楼层
关注一下,U盘 远程升级

出0入0汤圆

发表于 2015-12-4 11:39:04 | 显示全部楼层
标记一下,有空来看!

出0入0汤圆

 楼主| 发表于 2015-12-4 11:39:07 | 显示全部楼层
K.O.Carnivist 发表于 2015-12-4 11:02
挺好的 支持楼主
不过“在嵌入式系统中还没这么方便的升级手段”这话不准确哦 如91楼所说LPC11Uxx就自带这 ...

用的片子比较少,见识有限,难免孤陋寡闻了
谅解

出0入0汤圆

发表于 2015-12-4 11:41:28 | 显示全部楼层
学习下,更新程序越来越高级了。

出0入22汤圆

发表于 2015-12-4 11:43:24 | 显示全部楼层
ztrx 发表于 2015-12-3 20:39
内置的FLASH,仿真一个100M的U盘,怎么做的

100M是欺骗电脑的,你设置成100G都可以,关键就在usb读取储存器描述符的时候告诉他你有多少块数据,每块数据大小是多少就行了

出0入0汤圆

发表于 2015-12-4 11:45:11 | 显示全部楼层
挺方便的

出0入0汤圆

发表于 2015-12-4 11:47:10 | 显示全部楼层
可以试试了,这种方式比较简单。

出0入0汤圆

 楼主| 发表于 2015-12-4 11:54:02 | 显示全部楼层
jiaowoxiaolu 发表于 2015-12-4 11:31
LIB 什么LIB呀,这个压根就不是什么难度的,坛子里早就有加密算法的帖子了,还有c源码 AES,DES什么的, ...

嗯,是的,难度不大
原理都写出来了,建议你自己做一个,开源给大家

出0入0汤圆

发表于 2015-12-4 12:03:07 | 显示全部楼层
真有那么方便?

出0入0汤圆

发表于 2015-12-4 12:18:07 | 显示全部楼层
写上以后,支持在读出来吗

出0入0汤圆

发表于 2015-12-4 12:22:15 | 显示全部楼层
好东西   谢谢分享  回头试试看。。。

出0入0汤圆

 楼主| 发表于 2015-12-4 12:40:21 | 显示全部楼层
爱电子1122 发表于 2015-12-4 12:18
写上以后,支持在读出来吗

不支持,为了安全,禁止读出任何FLASH数据

出0入0汤圆

发表于 2015-12-4 12:41:52 | 显示全部楼层
不错,这个在有些时候还是相当方便的。感谢分享!

出0入0汤圆

发表于 2015-12-4 12:56:35 | 显示全部楼层
非常好,期待F4和带加密的库。先点个赞

出0入0汤圆

发表于 2015-12-4 14:12:33 | 显示全部楼层
个人觉得还是U盘升级最实用,,直接插上U盘就可以升级程序了。不需要附带其它。。。楼主这种需要电脑,哪还不如直接用JLINK下载呢????个人意见,,,

出0入22汤圆

发表于 2015-12-4 14:37:37 | 显示全部楼层
renjun_EMbest 发表于 2015-12-4 11:54
嗯,是的,难度不大
原理都写出来了,建议你自己做一个,开源给大家

有何不可 ?
http://www.amobbs.com/forum.php? ... p;extra=#pid8894775

出0入90汤圆

发表于 2015-12-4 15:09:00 | 显示全部楼层
没什么用处。各位还能开放自己的产品的HEX文件去给客户自己升级不成?那产品的加密还有毛用。人家直接可以山寨了。

出0入0汤圆

发表于 2015-12-4 15:24:42 | 显示全部楼层
honami520 发表于 2015-12-4 15:09
没什么用处。各位还能开放自己的产品的HEX文件去给客户自己升级不成?那产品的加密还有毛用。人家直接可以 ...

搞笑,STM32都几百年前就是浮云了,如果只是藏着BIN,有心人花点钱就读出来了。

出0入0汤圆

发表于 2015-12-4 15:32:07 | 显示全部楼层
哈哈,太方便了

出0入0汤圆

发表于 2015-12-4 15:39:05 | 显示全部楼层
出门左拐咯
http://www.amobbs.com/forum.php? ... p;extra=#pid8894775

出90入4汤圆

发表于 2015-12-4 16:24:51 | 显示全部楼层
先收藏下,找时间学习下

出0入0汤圆

 楼主| 发表于 2015-12-4 16:32:52 | 显示全部楼层
jiaowoxiaolu 发表于 2015-12-4 14:37
有何不可 ?
http://www.amobbs.com/forum.php?mod=viewthread&tid=5638810&page=1&extra=#pid8894775 ...

Cool,赞一个

出0入0汤圆

发表于 2015-12-4 17:25:16 | 显示全部楼层
renjun_EMbest 发表于 2015-12-3 20:13
STM103就只有一个USB
1)Device模式
2)PA11,PA12

没有硬件USB怎么办,比如STM32F030

出0入0汤圆

发表于 2015-12-4 17:27:12 | 显示全部楼层
感谢分享,先收藏了!

出0入0汤圆

发表于 2015-12-4 17:39:03 | 显示全部楼层
感谢分享,收藏先!

出0入0汤圆

 楼主| 发表于 2015-12-4 17:54:30 | 显示全部楼层
joiway 发表于 2015-12-4 17:39
感谢分享,收藏先!

哈哈哈,这个就无解了
AVR 有个软件USB,你可以研究研究

出0入0汤圆

 楼主| 发表于 2015-12-4 18:04:25 | 显示全部楼层
这帖子,属于抛砖引玉
楼上各位大神都给出了一些资料和开源代码,很棒的资料

希望各位都用好USB,有技术问题,欢迎交流

PS:适当的时候,我这份代码也会开源给大家

出0入8汤圆

发表于 2015-12-4 18:16:04 | 显示全部楼层
jiaowoxiaolu 发表于 2015-12-4 09:33
早就已经在用这种方法了,本来以为大家也都知道这种方法了,没想到还是有那么多人不知道啊

原理 ...

开下元呗~~~

出0入0汤圆

发表于 2015-12-4 19:45:43 | 显示全部楼层
这一定得支持一下,福音啊!!

出0入0汤圆

 楼主| 发表于 2015-12-4 19:50:27 | 显示全部楼层
本帖最后由 renjun_EMbest 于 2015-12-4 22:00 编辑

Here is Nothing

出0入0汤圆

发表于 2015-12-4 21:49:58 | 显示全部楼层
mark一下,很实用啊

出0入0汤圆

发表于 2015-12-4 23:01:40 | 显示全部楼层
这个要看一下,最近正在做着部分,多谢楼主

出0入0汤圆

发表于 2015-12-5 00:21:17 | 显示全部楼层
很好很强大

出0入0汤圆

 楼主| 发表于 2015-12-5 00:46:25 | 显示全部楼层
OurWay 发表于 2015-12-3 21:39
这个新唐的,可以参考下,记得坛子里的 LGT仿真器  也是类似方式升级的,另外使用NXP的LPC1343出厂都有这种 ...

嗯,研究一下
谢谢

出0入0汤圆

 楼主| 发表于 2015-12-5 00:47:27 | 显示全部楼层
Ray______ 发表于 2015-12-4 08:21
openSDA好像也是这样?

嗯,OpenODA和Freescale可以这么搞

出0入0汤圆

 楼主| 发表于 2015-12-5 00:49:13 | 显示全部楼层
lingdianhao 发表于 2015-12-4 10:23
请问楼主加密如何实现?

文件都是数据流,你可以增加一个头和尾来进行文件类型检测和解密,校验

出0入0汤圆

 楼主| 发表于 2015-12-5 00:53:46 | 显示全部楼层
likebo 发表于 2015-12-4 10:30
lz我有个问题,我的产品本来就是用stm32+tf卡做了U盘功能的,而且随时插上usb都能访问tf卡(包括关机状态) ...

你这种情况,USB属于HOST角色
可以参考手机刷机的方案
1)增加硬件机制,比如按着音量键开机
2)检测U盘里面是否存在特定的文件名,存在则进入升级模式,升级完成后,在U盘里面写入一些文件记录信息,比如升级固件的MD5,下次开机检测时,先检测文件,再计算MD5
     如果文件存在,MD5一致,不升级;如果文件存在,MD5不一致,升级

供参考

出0入0汤圆

 楼主| 发表于 2015-12-5 00:54:52 | 显示全部楼层
单飞 发表于 2015-12-4 10:30
介质肯定是USB,是直接用单片机的FLASH虚拟U盘?把APP拷到FLASH里的?那就和其他设备间接拷到FLASH原理一 ...

这个,你需要深入研究一下FAT文件系统的格式

出0入0汤圆

 楼主| 发表于 2015-12-5 00:56:11 | 显示全部楼层
LCRPN 发表于 2015-12-4 10:57
如果你要做LIB,我再给几个接口的建议:

1、建议使用内部HSI,8M,2分后12倍频到48M,USB分频为1。这样 ...

2/3/4都有考虑,1没考虑到,谢谢指导

出0入0汤圆

发表于 2015-12-5 08:08:08 | 显示全部楼层
非常适用,感谢分享!

出0入0汤圆

发表于 2015-12-5 10:12:42 | 显示全部楼层
谢谢分享。

出0入0汤圆

发表于 2015-12-5 11:44:15 | 显示全部楼层
楼主厉害,如果支持加密的话会非常实用

出0入0汤圆

发表于 2015-12-5 12:51:01 | 显示全部楼层
学习了,收藏

出0入0汤圆

发表于 2015-12-5 13:27:54 | 显示全部楼层
谢谢分享,研究研究

出0入0汤圆

发表于 2015-12-5 13:28:57 | 显示全部楼层
牛逼!学习!强烈顶贴!!!

出0入0汤圆

发表于 2015-12-5 13:31:56 | 显示全部楼层
学习下,感觉甚是高大上

出0入13汤圆

发表于 2015-12-5 14:33:08 | 显示全部楼层
本帖最后由 weiwei4 于 2015-12-5 14:39 编辑

这个不错,适合一些需要升级的应用
建议:增加一个按键的功能,上电检测按键有效才运行升级程序,新唐的MSD升级就是这样子的,这样用户APP一样可以使用USB口

出0入0汤圆

发表于 2015-12-5 17:28:30 | 显示全部楼层
make~~~~~~~~

出0入0汤圆

发表于 2015-12-5 19:13:28 | 显示全部楼层
牛逼, 收藏

出0入0汤圆

发表于 2015-12-5 21:07:04 | 显示全部楼层
值得学习的内容。但是现在设备用无线或者蓝牙升级的也多了

出0入0汤圆

发表于 2015-12-6 11:07:14 | 显示全部楼层
楼主厉害,受教了,收下

出0入0汤圆

发表于 2015-12-6 12:05:58 | 显示全部楼层
楼主这个开源吗

出0入0汤圆

发表于 2015-12-6 16:08:52 来自手机 | 显示全部楼层
好程序谢谢

出0入0汤圆

发表于 2015-12-6 17:29:18 | 显示全部楼层
这还真没有想过和试过,学习了,谢谢。

出0入0汤圆

发表于 2015-12-7 09:05:01 | 显示全部楼层
不错的思路,有空也用开发板倒腾一下试试。

出0入0汤圆

发表于 2015-12-7 14:12:13 | 显示全部楼层
楼主,威武。。。。。

出0入0汤圆

发表于 2015-12-7 16:17:01 | 显示全部楼层
学习参考下,

出0入0汤圆

发表于 2015-12-8 09:53:52 | 显示全部楼层
好东西啊!!!!!

出0入0汤圆

发表于 2015-12-8 16:59:10 | 显示全部楼层
牛逼,顶楼主!

出0入0汤圆

发表于 2015-12-8 17:14:44 | 显示全部楼层
的确是个不错的方式!!!!!

出0入0汤圆

发表于 2015-12-9 10:19:50 | 显示全部楼层
留个名,以后说不定以后参考会用的上。

出0入0汤圆

发表于 2015-12-9 10:28:25 | 显示全部楼层
支持楼主原创!

出0入0汤圆

发表于 2015-12-9 11:22:40 | 显示全部楼层
越来越智能了,好强大。

出0入0汤圆

发表于 2015-12-9 13:47:49 | 显示全部楼层
mark~~~~~~~~~~~~~~~

出0入0汤圆

发表于 2015-12-9 22:36:38 | 显示全部楼层
不错,跟楼主学习学习

出0入0汤圆

发表于 2015-12-9 23:46:04 | 显示全部楼层
太好了,试用一下

出0入0汤圆

发表于 2015-12-11 16:19:56 | 显示全部楼层
可以这样真的很方便啊,有空学习下

出0入0汤圆

发表于 2015-12-11 20:45:47 | 显示全部楼层
好东西,收藏了

出0入0汤圆

发表于 2015-12-12 11:31:19 | 显示全部楼层
谢谢楼主的分享!

出0入0汤圆

发表于 2015-12-12 19:55:17 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2015-12-13 00:45:34 | 显示全部楼层
菜包 发表于 2015-12-3 22:32
这个以前用其他芯片的时候搞过,后来实际应用发现还是有点问题,最终没用了,主要是两个方面:

1 因为boot ...

同意65楼说的,用USBCDC配合上位机更好用,能避免非专业人员乱搞。

出0入0汤圆

发表于 2015-12-13 23:09:11 | 显示全部楼层
楼主有个问题需要请教你一下,我使用的bootloader 现在U盘可以出来上电的时候里面与一个READY.TXT 的文件,然后我把编译好的app的hex文件放到这个U盘中  过一会儿重启 U盘中变成了SUCCESS.TXT文件,然后我将USB断开重新上电 但是APP没有运行 请问是什么原因呀

出0入0汤圆

 楼主| 发表于 2015-12-14 00:47:34 | 显示全部楼层
Dragontan 发表于 2015-12-13 23:09
楼主有个问题需要请教你一下,我使用的bootloader 现在U盘可以出来上电的时候里面与一个READY.TXT 的文件, ...

1.        运行时不要插USB
2.        断电重启后,如果APP没有执行。不要断电,直接把USB插到电脑上,看看txt文件的名字是什么

出0入0汤圆

发表于 2015-12-14 07:22:50 来自手机 | 显示全部楼层
不错,先收藏了。

出0入0汤圆

发表于 2015-12-14 08:19:12 | 显示全部楼层
这个东西不错,升级就方便多了

出0入0汤圆

发表于 2015-12-14 08:38:19 | 显示全部楼层
USB升级,方便多了

出0入0汤圆

发表于 2015-12-14 08:53:57 | 显示全部楼层
好东西,下载学习下,谢谢楼主分享

出0入0汤圆

发表于 2015-12-14 09:03:51 | 显示全部楼层
renjun_EMbest 发表于 2015-12-14 00:47
1.        运行时不要插USB
2.        断电重启后,如果APP没有执行。不要断电,直接把USB插到电脑上,看看txt文件的名 ...

插上USB 后里面好像显示的是READY.TXT

出0入0汤圆

发表于 2015-12-14 09:07:45 | 显示全部楼层
mask一下,最近正好想这样做;很不错呀!!赞赞!!

出50入0汤圆

发表于 2015-12-14 09:53:03 | 显示全部楼层
收藏,稍后仔细研究一下!

出0入0汤圆

发表于 2015-12-14 10:40:16 | 显示全部楼层
非常好的方法 谢谢楼主。

出0入0汤圆

 楼主| 发表于 2015-12-14 12:01:37 | 显示全部楼层
Dragontan 发表于 2015-12-14 09:03
插上USB 后里面好像显示的是READY.TXT

那就是你APP的问题了

出0入0汤圆

发表于 2015-12-14 13:17:53 | 显示全部楼层
正需要 学习下,谢谢!

出0入0汤圆

发表于 2015-12-14 14:43:46 | 显示全部楼层
前来学习

出0入0汤圆

发表于 2015-12-14 14:46:58 | 显示全部楼层
之前做产品也用过这个思路,但是后来项目因为安全性给取消了,就不用这种方式升级程序

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-3-28 19:27

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

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