N32G032有没有人做过iap升级
if (((*(volatile uint32_t*)FLASH_APP_ADDR) & 0x2FFE0000 ) == 0x20000000){
/* Jump to user application */
NVIC->ICER = 0XFFFFFFFF;
JumpAddress = *(volatile uint32_t*) (FLASH_APP_ADDR + 4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
for(i = 0;i<48;i++)
{
*((uint32_t*)(0x200000000 + (i << 2))) = *(volatile unsigned int*)(FLASH_APP_ADDR+(i<<2));
}
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); //将入口地址映射成为SRAM
__set_MSP(*(volatile uint32_t*) FLASH_APP_ADDR);
Jump_To_Application();
}
m0 内核的单片机我在网上查找的情况在做iap时,是要进行内存的重映射,把中断向量表映射到ram中进行使用,但没有找到与SYSCFG_MemoryRemapConfig 类似的函数。这种情况下如何处理,有没有人做过这个单片机iap升级 本人也是最近才用的这款芯片,希望向大家多多学习,请多多指教 顶一下 问供应商要,最快 请参考附件例程,谢谢。
余小鱼不会水 发表于 2022-7-7 11:34
请参考附件例程,谢谢。
你好,请问有031的吗? Anjiapulu 发表于 2022-7-7 17:01
你好,请问有031的吗?
031参考032,IAP升级的方式是一样的,地址一样,可借鉴。 #define MMU_VTOR ((__IO unsigned*)(0x40024C30))
#define _VTOREN() (*MMU_VTOR = (*MMU_VTOR) | 0x80000000);
#define _VTORVALUE() (*MMU_VTOR = (*MMU_VTOR) | 0x08004000);//中断向量表重映射地址
跳转到APP代码前调用下面两行代码就行了
_VTORVALUE(); //先写中断映射地址,存在多次跳转时,每次写之前可以先进行寄存器清0操作,避免地址叠加
_VTOREN(); //使能寄存器位 可以参考ymodem的。 这个没有做过。 N32G032还需要修改BootLoader吗? 是要做远程的iap吗? 需要外部外部触发么?还是软件指令实现
页:
[1]