现在有个IAP的问题,无法定位,请大家帮助下。。。

2019-12-18 18:47发布

问题描述:为了省事,想直接用同事写好的IAP;

同事A,写的IAP boot 文件;
自己Z,写的APP文件;

APP单独使用是没问题的,不进行IAP;

APP + IAP文件,这样就出现问题,仿真时,程序在跑,但是会无故的停下来,且 无法进中断....
IAP  程序同事也验证过是对的....

同一个芯片型号....不同的工程.....

现在无法定位问题了....
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
zchong
1楼-- · 2019-12-20 16:22
isakura 发表于 2018-9-19 16:36
现在是不知道怎么管....

两个工程的向量不一样....要怎么才能重新定位?

1、要知道你自己的APP放在什么位置;

2、工程中搜索#define VECT_TAB_OFFSET  0x10000,这个0x10000替换成APP相对于内部flash起始地址的偏移量。
isakura
2楼-- · 2019-12-20 17:51
zchong 发表于 2018-9-19 16:45
1、要知道你自己的APP放在什么位置;

2、工程中搜索#define VECT_TAB_OFFSET  0x10000,这个0x10000替换 ...

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00004800);

这个是有的....
EngKing
3楼-- · 2019-12-20 21:55
 精彩回答 2  元偷偷看……
isakura
4楼-- · 2019-12-21 02:06
EngKing 发表于 2018-9-19 17:42
无论IAP还是 APP都需要对时钟、向量、外设等进行配置,楼主要注意这样重新配置是否存在冲突 ...

问题解决: boot 跳转前  __set_PRIMASK(1); 关掉了中断;
解决办法:不关中断就OK;

但是仍有疑问:
在APP中,通过
__set_PRIMASK(0);  或  __enable_irq();  都无法打开中断;

为什么?
miaoguoqiang
5楼-- · 2019-12-21 05:06
直接操作__set_PRIMASK(1);这个是错误的。
负西弱
6楼-- · 2019-12-21 10:35
miaoguoqiang 发表于 2018-9-19 21:20
直接操作__set_PRIMASK(1);这个是错误的。

怎么错法?

一周热门 更多>