STM32的IAP,2个APP的问题
发布网友
发布时间:2022-05-27 10:06
我来回答
共1个回答
热心网友
时间:2023-10-16 09:08
不了解所说的代码跳转方式具体是如何实现的,但可以肯定的是你的切换程序的相应处理。一般来说比较可靠的切换,是在被切换的函数中,通过修改SP寄存器的,然后在返回跳转至指定函数的入口地址,从而切换的。 另外需要注意的是升级过程是在中断调用,函数的返回指令也是不一样的 。
裸奔的话给你一个自简单的参考结构,只要任何位置 switchapp(xxx); 都可以相对可靠的切换。
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,2个APP的问题
裸奔的话给你一个自简单的参考结构,只要任何位置 switchapp(xxx); 都可以相对可靠的切换。void *( CurrentApp )(void) = void main( ){ ...while(1){ CurrentApp ();} } void switchapp( void *( NextApp )){ CurrentApp = NextApp ;} bool KeepRunning =true;void App1(...
请教stm32 IAP多个app的问题
STM32是可以实现多个APP的,你可以通过你的IAP来控制app,通过不同的地址你可以选择跳转到不同的APP,一般都直接使用的IAP像APP跳转,逆向跳转一般通过复位来实现,但也可以通过代码跳转,APP之间的跳转也是一样的。需要注意的是每个APP包括IAP都有各自的中断向量表,若在相应代码中有使用中断,跳转前记得...
STM32 MCU IAP跳转APP注意事项
IAP程序跳转APP程序中,常见问题包括跳转失败、死机等。以下说明原因及注意事项。IAP(In-applicating Programing)指用户自定义的程序,通过bootloader(启动引导程序)实现。APP程序对应路径:D:\ST\MCU\FW\F4\en.stm32cubef4\STM32Cube_FW_F4_V1.21.0\Projects\STM324x9I_EVAL\Applications\IAP。IA...
STM32运行两个工程,互不干扰,这个要怎么做
你说的就是STM32的IAP实现方式吧,通过IAP就是实现两个独立的工程的运行,不过不知道你所谓的两个工程是否包括IAP本身,若不是的话,你的方案将是一个Bootloader+多个APP的方案。IAP里面的工程(包括本身)虽然可以同时存在,但却不能同时运行,想要同时运行,还是不要考虑IAP了,考虑上操作系统吧,但此...
stm32 iap升级,从IAP跳转APP后APP程序中进不了中断
首先,跳转前关闭所有中断,APP设置中断向量偏移就行了,别的不用管,当然,前提是Flash地址都设定好了,别冲突
stm32在线iap升级需要两个程序吗
需要两个程序,一个程序是Bootload程序,通过此程序来进行对APP程序的更新;第二个是APP程序,就是你需要更新的程序
怎么使用stm32写IAP的bootloader和APP
但大概的使用流程是,首先用J-Link之类的先把IAP部分的工程代码写到STM32,然后根据人家自己的APP做些修改(具体修改方法由IAP代码决定,所以这里如何修改,找作者吧),接着把APP生成的源码文件(bin或hex,具体用哪个找作者),通过某些方式(可以是内存卡,串口通讯,网口通讯等,具体找作者)把APP代码...
怎么使用stm32写IAP的bootloader和APP
bootloader部分不是简单的描述就能说清楚的,你需要对stm32的运行有一定的认识才行。所以建议你先找些资料看看,当然例程分析也是少不了的。根据我的经验,这段代码做的事情就是判断是否升级(通过标志位判断,这个标志可以是flash、eeprom、IO口,在限定时间内是否收到通讯等方式判断),接着要么跳转到AP...
stm32 app转到iap程序跑飞,出现hardware_fault
IAP一般放在在0x08000...00,也就是用户flash的最开始,app跳转到IAP一般通过软件复位或硬件复位跳转直接到IAP,当然我也尝试过使用PC指针直接跳转到IAP,这样做可以保持APP里面设置的外设寄存器值保持不变。我在调试IAP也遇到各种问题,但最后大部分解决了。你的IAP和APP结构是怎么样的,你说得太模糊,...
Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主...
使用仿真器烧写app并且仿真是直接运行的app,没有经过IAP跳转。掉电后重新上电运行app则要通过IAP进行跳转。说白了,那你的IAP存在bug,多半是逻辑上的,自己在IAP里面多看看吧,找找原因。