需要请教二个问题:
1、为啥我修改了heap size大小后,一直再文件系统报错。
如果改回来为0,没有这个问题出现。
问题2:
文件系统调用成功后,进入boot jump APP老是提示报错,
这是什么问题导致的
以下是跳转函数
void execute_user_code(uint32_t address){
main_fnptr *p_jump_to_app; // Function pointer main that will be used to jump to application __disable_irq();
#if 0 //Commented out 2022.06.24 WangJin /* Disable the stack monitor */ R_MPU_SPMON->SP[0].PT = 0xA500U; /* Enable access to Main Stack Pointer Monitor Access Control Register */ R_MPU_SPMON->SP[1].PT = 0xA500U; /* Enable access to Process Stack Pointer Monitor Access Control Register */ R_MPU_SPMON->SP[0].CTL = 0U; /* disable the Main stack monitor */ R_MPU_SPMON->SP[1].CTL = 0U; /* disable the Process stack monitor */#else __set_MSPLIM(0);#endif SysTick->CTRL = 0; /* Disable the systick timer */ NVIC_DisableIRQ ( SysTick_IRQn ); /* Disable the systick timer IRQ */ NVIC_ClearPendingIRQ( SysTick_IRQn ); /* Clear any pending systick timer IRQ */
// Clear all interrupts! // ICU Event Link Setting Register i (IELSRi) (RA6M3: i = 0 to 95) for (uint32_t i = 0; i<96; i++) { R_ICU->IELSR[i] = 0; }
for (uint32_t i = 0; i<8; i++) { NVIC->ICER[i] = 0xFFFFFFFF; NVIC->ICPR[i] = 0xFFFFFFFF; }
// IRQ Control Register i (IRQCRi) (RA6M3: i = 0 to 15) for (uint32_t i = 0; i<16; i++) { R_ICU->IRQCR[i] = 0; }
p_jump_to_app = (main_fnptr*)(address+4);
SCB->VTOR = (address & 0x1FFFFF80);
/* Complete all explicit memory accesses */ __DSB(); /* Flush the pipeline in the processor */ __ISB();
// Flush the ROM cache, or we won't see the changed data R_FCACHE->FCACHEE_b.FCACHEEN = 0; //Disable Flash Memory Cache R_FCACHE->FCACHEIV_b.FCACHEIV = 1; //Invalidate Flash Cache while (0 != R_FCACHE->FCACHEIV_b.FCACHEIV); R_FCACHE->FCACHEE_b.FCACHEEN = 1; // Re-Enable ROM cache
/* Set bits 20-23 to enable CP10 and CP11 coprocessor */ SCB->CPACR = 0;
/** Set stack here. */ __set_PSP(*((uint32_t*)(address))); /* Ensure that when we jump we're using the Main Stack Pointer */ __set_CONTROL(0); __set_MSP(*((uint32_t*)(address))); /* Clear lazy stacking for FPU operations */ // FPU->FPCCR &= 0xC0000000;
/** Jump to image*/ (*p_jump_to_app)();}
请问是参考下面的文档做的OTA吗?
RA6 Secure Bootloader Using MCUboot and Internal Code Flash (renesas.cn)
RA6 Secure Bootloader Using MCUboot and Internal Code Flash - Sample Code | Renesas
请问一下,需要请教以下二个问题:
1、IC使用的是R7FA6M3AH,使用J-LINK烧录,单片机程序TFT屏等不能正常使用,反而选择R7FS5D97C烧录完成后,TFT屏等程序可以正常使用,技术支持回复是:JLINK厂家在J Flash Lite里面并没有适配R7FA6M3AH的QSPI,而R7FS5D97C有?这个是这样的吗?
问题2:boot跳转到APP成功后,一直不亮屏,直接跑到xPortStartScheduler-》 prvPortStartFirstTask就出现硬件异常(Default_Handler)。而使用J-LINK烧录时,程序能够正常运行。这是为何?
进入APP后,是否需要重定位中断向量表?如果需要,如何设置?麻烦指定一下,谢谢!
基于MCUboot的bootloader不用单独处理,按相关应用笔记的配置过程进行配置就可以了
对于前述的两个问题:
1. 可以使用RFP (Renesas Flash Programmer)进行烧写
R7FS5D97C和R7FA6M3AH是两款不同的产品
2. 你的意思是指使用J-LINK烧写APP工作正常,而合并boot+APP就工作不正常了?