在线时间49 小时
UID3574259
注册时间2019-8-13
NXP金币0
TA的每日心情 | 开心 2019-11-12 13:43 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 415
- 最后登录
- 2023-12-19
|
经测试,download APP后,在跳转上出现了问题,每次都跳转到bootload自己的程序,调不到设置的APP程序,APP偏移地址为0x4000(JFlash查看过是0x4000开始的),经过取闪存物理地址对应的堆栈地址发现0x0000和0x4000对应的堆栈地址是一样的,应该是因为他们对应的堆栈地址是一样的才导致不能跳转到APP;为什么是一样的呢?是我哪里没有设置好吗,请各位指点下,谢谢(Flash范围:0x0~0x2000,RAM范围:0x1FFFF000~0x20003000)
测试Flash地址对应堆栈地址:
#define TEST_ADDR 0x5000
appStack = *(uint32_t*)TEST_ADDR;
appEntry = *(uint32_t*)(TEST_ADDR + 4);
printf("appStack:0x%X\r\n", appStack);
printf("appEntry:0x%X\r\n", appEntry);
测试结果:
Start_Address | Flash物理地址 | 堆栈地址 | 0x0000 | 0x0000 | 0x1FFFF9F0 | 0x0004 | 0xD7 | 0x1000 | 0x1000 | 0x4006C000 | 0x1004 | 0x535C2E2E | 0x2000 | 0x2000 | 0x0 | 0x2004 | 0x0 | 0x3000 | 0x3000 | 0x0 | 0x3004 | 0x0 | 0x4000 | 0x3000 | 0x1FFFF9F0 | 0x3004 | 0xD7 | 0x5000 | 0x3000 | 0xFFFFFFFF | 0x3004 | 0xFFFFFFFF |
|
|