STM32 从USB-IAP程序跳到USB-APP程序不重枚举USB设备可不可以
发布网友
发布时间:2023-11-10 16:51
我来回答
共3个回答
热心网友
时间:2024-07-30 04:41
我找到一个比较好的折中办法:
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区
热心网友
时间:2024-07-30 04:41
官方的程序是用的按键,如果按下键执行IAP
升级程序,否则执行APP程序。这有信号选择的。我刚用107
USB
HOST从U盘升级程序。。官方写的例程,移植到开发板上,挺好用。楼主可以看看官方的例程。。。
热心网友
时间:2024-07-30 04:42
关注这个问题
STM32 从USB-IAP程序跳到USB-APP程序不重枚举USB设备可不可以
3. IAP 如果检测到是上电复位,IAP首先检查APP程序的CRC32校验码是否正确,如果正确则立即跳到APP程序;否则在IAP程序中等待软件重新配置APP程序FLash区;这样,USB设备重枚举只会在第一次上电的时候会出现,当然,如果STM32固件需要升级,那么软件首先请求STM32 软复位,4. STM32 软复位后进入IAP程序,...
stm32 iap升级,从IAP跳转APP后APP程序中进不了中断
首先,跳转前关闭所有中断,APP设置中断向量偏移就行了,别的不用管,当然,前提是Flash地址都设定好了,别冲突
stm32 iap无法跳转到APP问题
app没有配置正确把,你对比着例程app,看你的app和例程app在工程设置上有什么区别?尤其是有关app的flash起始地址看是不是一样。
stm32可以通过USB HID升级程序吗
完全没问题,可以通过STM32的IAP进行升级程序,只要能把升级的代码通过任何方式(串口,并口,USB,LAN,SD卡...)传输给IAP,就能进行升级。但IAP调试并不简单,可能会出现很多问题,但都能解决,IAP能帮助你对STM32的存储以及运行机制的认识得到很大的提高。
stm32 app转到iap程序跑飞,出现hardware_fault
IAP一般放在在0x08000...00,也就是用户flash的最开始,app跳转到IAP一般通过软件复位或硬件复位跳转直接到IAP,当然我也尝试过使用PC指针直接跳转到IAP,这样做可以保持APP里面设置的外设寄存器值保持不变。我在调试IAP也遇到各种问题,但最后大部分解决了。你的IAP和APP结构是怎么样的,你说得太模糊,...
stm32可以通过USB HID升级程序吗
只能通过IAP实现了,基于USB_HID通讯,完成升级代码的传输,使用IAP程序写入芯片,一种很常规的IAP方案。但考虑到USB-HID的驱动文件较多,代码量较大,所以你写的IAP可能就会大些,但都没啥影响,反正STM32的FLASH也不差一个工程的代码量。
STM32的IAP,2个APP的问题
void *( CurrentApp )(void) = void main( ){ ...while(1){ CurrentApp ();} } void switchapp( void *( NextApp )){ CurrentApp = NextApp ;} bool KeepRunning =true;void App1( ){ while(KeepRunning){ ...} } void App2( ){ while(KeepRunning){ ...} } ...
Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主...
使用仿真器烧写app并且仿真是直接运行的app,没有经过IAP跳转。掉电后重新上电运行app则要通过IAP进行跳转。说白了,那你的IAP存在bug,多半是逻辑上的,自己在IAP里面多看看吧,找找原因。
STM32f105怎么用USB升级程序
1. 扫描U盘寻找特定的固件升级文件;2. 打开文件读入固件到Flash未使用的区间B;3.构造一个IAP函数,其功能是将区间B的内容Copy到工作空间;IAP函数仅仅是Flash操作,且不能有任何函数调用.4. 将IAR函数拷贝到RAM中.5. 调用RAM中的IAP函数。6. MCU自复位 ...
如何把程序烧进stm32板子中?
1、用USB转TTL线把程序烧写到stm32f103C8T6中:TXD-接PA10/USART1_RXRXD-接PA9/USART1_TX3V3GND接供电,将BOOT0接3V3后再供电,即可进入下载模式。写入程序成功后,将BOO0与BOOT1均置为0。2、keil只是写程序的软件,写好程序保存为.c文件,然后添加该文件到源组,然后配置内存,然后编译,就...