1.怎样写stm32 iap应用程序
不用重新写,只需要在你原来的没有IAP的工程代码上加上一些东西。
最重要的一点就是向量表需要重新定位,使用相关函数即可,具体的你稍微搜索一下就能知道如何重新定义一个中断向量的偏移地址。
另外需要说明的是,根据我的经验,app里面不像网上说的那样,从IAP跳转到APP后,AAP第一句代码就是重新设置向量偏移,应该要先初始化系统时钟,再执行向量偏移的修改。
除了向量偏移修改这个必选项之外,也可以自定义加一些代码和IAP配合,用来实现如何通过命令来使得APP运行程序时可以跳转到IAP,一般来说是按条件软件复位,以及要让IAP知道是跳转还是升级代码这一标志位如何传递等。
2.请教,对stm32的IAP程序的理解
STM32是可以实现多个APP的,你可以通过你的IAP来控制app,通过不同的地址你可以选择跳转到不同的APP,一般都直接使用的IAP像APP跳转,逆向跳转一般通过复位来实现,但也可以通过代码跳转,APP之间的跳转也是一样的。
需要注意的是每个APP包括IAP都有各自的中断向量表,若在相应代码中有使用中断,跳转前记得先关闭中断,以免刚跳转过去但你还没来得及重新设置中断向量表就进入中断,程序可能跑飞。你先实现了一个IAP+APP,那么一个IAP+多个APP也就差不多懂了。
3.怎么使用stm32写IAP的bootloader和APP
这个你就需要从IAP的作者那里去了解了,IAP没有固定的使用方式。
但大概的使用流程是,首先用J-Link之类的先把IAP部分的工程代码写到STM32,然后根据人家自己的APP做些修改(具体修改方法由IAP代码决定,所以这里如何修改,找作者吧),接着把APP生成的源码文件(bin或hex,具体用哪个找作者),通过某些方式(可以是内存卡,串口通讯,网口通讯等,具体找作者)把APP代码传送给已经烧录IAP的STM32芯片,然后IAP就把你传送的代码写到了指定位置。
你也看到了,IAP代码决定了IAP升级程序的使用方式,所以很少有直接用别人的IAP,一般都自己写,除非你在关键硬件上完全和IAP作者的一样。
4.怎么使用stm32写IAP的bootloader和APP
这个你就需要从IAP的作者那里去了解了,IAP没有固定的使用方式。
但大概的使用流程是,首先用J-Link之类的先把IAP部分的工程代码写到STM32,然后根据人家自己的APP做些修改(具体修改方法由IAP代码决定,所以这里如何修改,找作者吧),接着把APP生成的源码文件(bin或hex,具体用哪个找作者),通过某些方式(可以是内存卡,串口通讯,网口通讯等,具体找作者)把APP代码传送给已经烧录IAP的STM32芯片,然后IAP就把你传送的代码写到了指定位置。你也看到了,IAP代码决定了IAP升级程序的使用方式,所以很少有直接用别人的IAP,一般都自己写,除非你在关键硬件上完全和IAP作者的一样。
转载请注明出处众文网 » stm32iap毕业论文(怎样写stm32iap应用程序)