大家好,最近在用280049开发bootloader,在bootloader中完成程序升级功能,从bootloader跳转至app时,使用asm(" LB 0x00084002")指令,从app跳转至bootloader时,使用看门狗复位芯片。有一些问题想要请教一下大家。
bootloader和app,这两个工程储存在FLASH的两个独立扇区,互不冲突,但是这两个工程都用了同一块RAM内存区域来存放运行过程中的全局变量以及从FLASH复制到RAM的代码(ramfuncs),在这种情况下
1. RAM上会有内存的冲突吗?假如上电后,从bootloader跳转至app后,bootloader中的一些储存在RAM上的全局变量和代码(ramfuncs)是否仍然存在,有没有对app的运行造成影响的可能?
2. 是否需要在跳转前对RAM进行清零?
3. 从bootloader跳转至app后,重新执行c_int00函数构建C语言环境,c_int00函数是否会对RAM(主要是.bss和.ebss段)进行清零操作,保证内存清零后再跳转至app的main()?
4. bootloader和app在使用RAM时,是否需要使用不同的内存区域独立开来?
谢谢大家!