怎么wpf 防止程序重复运行USB DFU程序读出来

查看: 1130|回复: 8
STM 32 DFU升级程序,USB 实现IAP功能
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
应该怎么弄?小白求教!用的是STM32F103ZET6单片机。把\STM32F10xUSBLib\USBLib\demos\Device_Firmware_Upgrade 里的那个工种文件编译好后下载到板子上后,连上USB线 电脑还是识别不到啊
http://www.openedv.com/posts/list/28532.htm
主题帖子精华
中级会员, 积分 227, 距离下一级还需 273 积分
在线时间18 小时
http://www.openedv.com/posts/list/28532.htm
主题帖子精华
金钱121743
在线时间986 小时
这是官方EVAL板的,你这个直接下载到板子,难道你的板子是官方的EVAL板?
如果不是,基本是无法使用的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
回复【2楼】正点原子:
---------------------------------
不是,板子不是开发板,那要怎么弄呢?
主题帖子精华
金钱121743
在线时间986 小时
回复【3楼】我偏偏喜欢苗:
---------------------------------
慢慢移植
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺:
微信公众平台:正点原子& &
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
回复【4楼】正点原子:
---------------------------------
请问下,我要学习这方面的,要买什么开发板比较好
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
回复【5楼】兜兜里缺钱:
---------------------------------
我按里面的做,实现不了啊,
主题帖子精华
中级会员, 积分 227, 距离下一级还需 273 积分
在线时间18 小时
回复【7楼】我偏偏喜欢苗:
---------------------------------
原子战舰板子呀,如果你是战舰的板子,试试这个
14:06 上传
点击文件名下载附件
3.27 MB, 下载次数: 192
主题帖子精华
初级会员, 积分 54, 距离下一级还需 146 积分
在线时间0 小时
回复【8楼】兜兜里缺钱:
---------------------------------
大神你好,我还是一个菜鸟,就是想问一下,ST官网提供的USB&IAP&例程,里面修改的东西可以直接套用吗?我用的不是里面说的那块开发板,我用的是我公司的板子。
Powered by帖子很冷清,卤煮很失落!求安慰
手机签到经验翻倍!快来扫一扫!
[教程] 不会进DFU的进,未知usb设备解决
7291浏览 / 3回复
原文:http://www.we<a href=http://d ... ?tid=263983&amp;extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D26
不会进DFU的进,未知usb设备解决
DFU很重要,但是看到好多人进不去DFU,我来说一下自己总结出的经验。希望能帮助大家~
首先最好让你的在插拔usb的时候出点声音~要不一样的,否则会弄混
记清楚插拔的声音各是什么
然后,开始了……建议看完后操作
按照教程上的说……按住和home…
准准的数十秒……这个差不多就行了……数好了松开电源键……这个时候很重要……不能松开home
然后开始听声音~ 听到有USB插入的声音的一瞬间,立刻松开home! 否则会出现无法识别USB或者进入别的模式(就是屏幕上出现一个itunes图标和插头的那个)
这个样子就会顺利的进入DFU,百试百灵~
DFU是什么意思呀?
DFU: Development Firmware Upgrade 拓展固件升级
楼上的,这个有什么用?
用户名/注册邮箱/注册手机号
其他第三方号登录【实战经验】USB DFU IAP例程移植的两个话题 - 资料馆 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 1156|回复: 1
【实战经验】USB DFU IAP例程移植的两个话题
在线时间1845 小时
ST金币18528
TA的每日心情开心 09:20签到天数: 1 天[LV.1]初来乍到主题帖子好友
USB DFU IAP 例程移植的两个话题
在STM32 的系列产品中,很多型号都带有USB 接口,为使用USB 来进行代码升级提供了便利。这些型号中又有很大一部分可以通过内部System Memory 中的Bootloader 直接进行USB DFU 升级,具体哪些型号支持USB DFU,可参考应用笔记AN2606《STM32 微控制器系统存储器自举模式》。有些型号虽然有USB,但是System Memory 中的Bootloader 并没有支持USB DFU,比如STM32F102 / STM32F103、或者Bootloader V2.x 的STM32F2xxx、STM32F303,等等,或者用户希望通过不同的触发方式进入bootloader 来进行USB 下载,比如接收一串编制好的数据来触发。那么,就要使用USB DFUIAP 了。关于如何使用USB DFU IAP 的简要说明,可参考另一份文档《利用USB DFU 实现IAP 功能》。在这里,主要要谈的是在USB DFU IAP 例程进行移植时,需要注意的两个地方。
某客户在其产品的设计中,使用了STM32L073RBT6。客户在开发过程中,使用STM32L0Cube 库中的STM32L073Z_EVAL的DFU_Standalone 进行代码移植,完成后在使用Dfuse Demo 软件烧写用户代码时发生了错误。
1.了解问题
客户在开发中使用了STM32L0Cube 库STM32Cube_FW_L0_V1.7.0,对里边的\Projects\STM32L073Z_EVAL\Applications\USB_Device\DFU_Standalone 例程进行修改,以应用于用户板。客户已经根据硬件上的区别,对LED 灯和按键的I/O 口配置做了相应的修改,并在main.h 中使能了USE_USB_CLKSOURCE_CRSHSI48,因为其使用STM32L073 内部的48MHz 振荡作为USB 时钟源。客户编译通过后,使用ST-Link 将其下载到STM32L073RBT6 中。然后断开ST-Link,使用USB 进行连接,PC 可以认到“STM Device in DFU Mode”。打开DfuseDemo 软件,也可发现已经识别到STM32L073 处于DFU Mode。
11.jpg (148.91 KB, 下载次数: 1)
17:50 上传
但是,当用户选择了“Verify after download”,并点击“Choose”按键选择用户代码.dfu 文件后,并点击“Upgrade”进行
烧写,发现弹出了提示发生错误的对话框,如下:
12.jpg (47.27 KB, 下载次数: 0)
17:50 上传
2.问题分析
STM32L073Z_EVAL 开发板使用的芯片型号为STM32L073VZT6,其Flash 容量为192KB,地址从0x 到0x0802FFFF。而客户所使用的STM32L073RBT6,其Flash 容量为128KB,地址从0x 到0x0801FFFF。检查项目中的usbd_conf.h 文件中的代码,客户并未作任何修改,也就是说,以下两个定义没有根据实际的型号进行修改:
13.png (39.43 KB, 下载次数: 0)
17:50 上传
USBD_DFU_APP_DEFAULT_ADD 和USBD_DFU_APP_END_ADD 定义了用户代码空间的开始页和结束页。从这可以看出,用户代码是从0x08003C00 开始的,也就是第120 页,而结束于第1535 页。STM32L073VZT6 从第0 页到第1535 页共1536 页,每页128 Bytes。客户使用的是STM32L073RBT6,总共才1024 页。显然,这里对USBD_DFU_APP_END_ADD的定义并不对,需要修改为第1023 页的地址。
3.问题解决
将usbd_conf.h 中的USBD_DFU_APP_END_ADD 修改为第1023 页的地址:
14.png (15.36 KB, 下载次数: 0)
17:50 上传
问题解决,USB DFU 可以下载代码了。可是别急,这样就已经修改好了吗?再来看第二个话题。
在问题的解决过程中,有没有注意到Dfuse Demo 界面中显示“1536 sectors”?这明显不对,来看看怎么修改。
1.了解问题
在Dfuse Demo 界面中,双击“1536 sectors”,可以看到Internal Flash 的详细信息,如下:
15.jpg (27.76 KB, 下载次数: 0)
17:50 上传
2.问题分析
从上图可以了解到,实际上这里所定义的Sector 的大小为128Bytes,也就是STM32L073 的Page,所以这里的Sector 定义与STM32L073 的参考手册定义的Sector 是不一样的,不要造成误解。在RM0367 中,每128Bytes 为1 个Page,每32 个Page 才是1 个Sector。所以不要误会就行了。在这个Mapping 窗口中,也可以看到地址0x08003C00 之前的空间为Readonly,也就是Bootloader 所处的空间为只读,以避免对这部分代码的重写。而后面的空间,也就是用户代码所处的空间为Read/Write/Erase。
这些信息是从哪里来的呢?其实它来自于usbd_dfu_flash.c 里边定义的描述符FLASH_DESC_STR,如下:
16.jpg (8.56 KB, 下载次数: 0)
17:50 上传
来解释一下这个描述符的内容:
0x 为起始地址。“a”代表的是Read-only,“g”代表Read/Write/Erase。也就是说,“a”所指明的区域为Bootloader 的空间,“g”所指明的区别为用户代码空间。大小由前面的数字决定,乘号“*”前面的为Sector 的个数,后面的为Sector 的大小,这里的意思就是从0x 开始,前面120 个Sector(每个Sector 为128 字节)为Read-only,后
面1416 个Sector(每个Sector 为128 字节)为Read/Write/Erase。
举另外一个例子,在\Projects\STM32L053C8-Discovery\Applications\USB_Device\DFU_Standalone\Src 下的
usbd_dfu_flash.c 是这样定义的:
17.png (11.51 KB, 下载次数: 0)
17:50 上传
它的意思就是前面28 个Sector(每个Sector 为1KB)为Read-only,后面36 个Sector(每个Sector 为1KB)为Read/Write/Erase。因为在这个例子中,用户代码起始地址为0x。在Dfuse Demo 的界面中,你也将看到只有64个Sector,双击打开后能看到每个Sector 为1KB。
搞明白这个事,就知道如何去修改这个描述符FLASH_DESC_STR,让它符合STM32L073RBT6 的大小了。
3.问题解决
STM32L073RBT6 有1024 页,每页128 字节,所以需要修改描述符FLASH_DESC_STR 定义如下:
18.png (11.57 KB, 下载次数: 0)
17:50 上传
如果用户代码空间的定义还是这样的:
19.png (37.91 KB, 下载次数: 1)
17:50 上传
但是描述符FLASH_DESC_STR 的定义修改为:
20.png (11.25 KB, 下载次数: 0)
17:50 上传
那会发生什么情况呢?
将 Bootloader 程序编译后烧写到STM32L073 中,然后使用USB 接口进行连接,打开Dfuse Demo。首先,可以看到界面中显示的就是128 Sectors,双击打开,每个Secotor 大小为1KB。
21.png (168.71 KB, 下载次数: 0)
17:50 上传
接下来,来烧写一个用户代码,从0x08003c00 地址开始的。在Verify 时,就会弹出错误的对话框:
22.png (37.88 KB, 下载次数: 0)
17:50 上传
验证在0x08003C00 的地址就已经发生了错误:烧录文件该地址的数据为0x58,但是读回来的是0x00。这就是因为我们把描述符FLASH_DESC_STR 错误地定义成了前面28KB 为Read-only,也就是从0x 开始才是可读/可写/可擦除的。所以,在0x 之前的空间是不可擦除和写入的,也就导致了这样的情况。这个附加话题也只是为了强调这个描述符FLASH_DESC_STR 的重要性。
使用USB DFU IAP 参考例程进行移植的时候,Bootloader 的空间以及用户代码的空间的定义全部都需要根据具体的STM32型号进行修改。
(272.47 KB, 下载次数: 58)
17:52 上传
点击文件名下载附件
下载积分: ST金币 -1
在线时间256 小时
ST金币2903
该用户从未签到主题帖子好友
金牌会员, 积分 4470, 距离下一级还需 530 积分
金牌会员, 积分 4470, 距离下一级还需 530 积分
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
用于MCU的USBDFU引导加载程序
下载积分:3000
内容提示:用于MCU的USBDFU引导加载程序
文档格式:PDF|
浏览次数:0|
上传日期: 22:45:53|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 3000 积分
&#xe602;下载此文档
该用户还上传了这些文档
用于MCU的USBDFU引导加载程序
关注微信公众号怎么防止USB DFU程序读出来_百度知道
怎么防止USB DFU程序读出来
我有更好的答案
你进DFU模式的话,先解锁键盘,两个键都要一直按着,然后长按sleep按钮,基本上都可以进去。或者你也可以先进DFU之后再插USB的吧,出现slide to power off,就是正确关机,建议按着home键的同时插USB,插上USB之后马上去按sleep你好,iphone就是连接USB后自动充电开机,正确的关机方式是
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 怎么防止程序自动安装 的文章

 

随机推荐