因为是两个工程编译而成的,虽然Flash的地址划分开了,但是内存RAM没有分开。
bootload中定义的全局变量,通常刚上电后,如果没有对其赋值,全局变量一般是0,全局指针一般是NULL。
假如,bootload全局变量a在0x20000004的地址,APP应用的全局变量的b也在0x20000004的地址。
bootload应用先启动,经过一番运行,a变量被赋值成了10。
然后跳转到B应用,这时APP应用的b也的值也成了10,而不是一般情况下的0。
1.请问这么理解对吗?
2.有什么办法解决?
我的方法:
app的全局变量一定要赋值,那么bootload再跳转之后会重新赋值吗?
感谢 app的启动文件会重新初始化data和bss