STM32 从USB-IAP程序跳到USB-APP程序不重枚举USB设备可不可以
展开全部
我找到一个比较好的折中办法:
1. IAP 起始地址0x08000000,APP 起始地址0x08004000,上电复位进入IAP 程序;
2. APP 程序的长度和CRC32校验码存放在0x0800FC00(Flash最后一页);
3. IAP 如果检测到是上电复位,IAP首先检查APP程序的CRC32校验码是否正确,如果正确则立即跳到APP程序;否则在IAP程序中等待软件重新配置APP程序FLash区;
这样,USB设备重枚举只会在第一次上电的时候会出现,当然,如果STM32固件需要升级,那么软件首先请求STM32 软复位,
4. STM32 软复位后进入IAP程序,IAP判断出如果是软复位,则等在IAP 中,接收上层软件的命令并配置APP Flash区;
5. 配置APP Flash完成之后,软件请求跳到APP区
1. IAP 起始地址0x08000000,APP 起始地址0x08004000,上电复位进入IAP 程序;
2. APP 程序的长度和CRC32校验码存放在0x0800FC00(Flash最后一页);
3. IAP 如果检测到是上电复位,IAP首先检查APP程序的CRC32校验码是否正确,如果正确则立即跳到APP程序;否则在IAP程序中等待软件重新配置APP程序FLash区;
这样,USB设备重枚举只会在第一次上电的时候会出现,当然,如果STM32固件需要升级,那么软件首先请求STM32 软复位,
4. STM32 软复位后进入IAP程序,IAP判断出如果是软复位,则等在IAP 中,接收上层软件的命令并配置APP Flash区;
5. 配置APP Flash完成之后,软件请求跳到APP区
展开全部
官方的程序是用的按键,如果按下键执行IAP
升级程序,否则执行APP程序。这有信号选择的。我刚用107
USB
HOST从U盘升级程序。。官方写的例程,移植到开发板上,挺好用。楼主可以看看官方的例程。。。
升级程序,否则执行APP程序。这有信号选择的。我刚用107
USB
HOST从U盘升级程序。。官方写的例程,移植到开发板上,挺好用。楼主可以看看官方的例程。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询