stc芯片中断跳转的局限性,使用stc芯片做ota功能,在app代码中如果需要使用中断,那bootloader中就没办法使用中断,就会面临个问题,在bootloader代码中,串口接收数据不能用中断,bootloader又有一些其他逻辑代码,这就导致串口接收容易丢数据,导致升级失败的发生。当产品一旦量起来后,一定会大量的出现这种现象。
陹1、如何使用STM32F4的BootLoader和APP程序
使用stm32写IAP的bootloader和APPBootloader里面主要是1、设置bootloader和app的空间2、接收编译好的app的bin文件,写入flash3、实现跳转App里面主要修改的地方是1、ROM起始地址和分配的空间大小2、重定向中断向量3、生成bin文件。
2、编写uc/os-2下的Bootloader
在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。
4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI懂。引导加载程序是系统加电后运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OSBootLoader(比如,LILO和GRUB等)一起组成。
3、如何烧录arduino的bootloader?
为了恢复Arduino的功能,必须得重新给ATMega328P单片机里烧写bootloader(其实Arduino就是在AVR单片机中预置了一个bootloader程序,这样再配合Arduino开发环境就是所谓的Arduino了,但Arduino这个词本身只留给官方使用)。当然在淘宝上也能买到已经烧写好的AVR单片机,只是自己手上已经有了AVR单片机,就没必要去花那冤枉钱了。