TI中文支持网
TI专业的中文技术问题搜集分享网站

OAD问题,BIM跳转问题

这两天在看OAD方面的东西,请教个问题。

加了BIM后,加电执行的第一块代码在哪个工程中?

我理解的是首先执行的APP工程,之后由于APP工程main中的一段代码

#ifdef FEATURE_OAD{uint8_t counter;uint32_t *vectorTable =  (uint32_t*) 0x20000000;
#if defined(__IAR_SYSTEMS_ICC__)uint32_t *flashVectors = &__vector_table;
#elif defined(__TI_COMPILER_VERSION__)uint32_t *flashVectors = &ti_sysbios_family_arm_m3_Hwi_resetVectors;
#endif //Compiler.// Write image specific interrupt vectors into RAM vector table.for(counter = 0; counter < 15; ++counter){*vectorTable++ = *flashVectors++;}}
#endif //FEATURE_OAD

执行后,才通过BIOS_start函数跳转到BIM中执行,

之后在BIM中,通过CRC检测确定执行哪个Image。

不知道理解的对不对,总感觉这么的别扭。

Light J:

 不对,BIM在复位向量处,一上电就执行,没得选择。

MagicQ:

回复 Light J:

那请教一下,向量处的设置在什么地方。

首先BIM和APP是单独编译的。那就是说APP本身应该有一个中断向量表,而BIM也有一个中断向量表。那么,都在什么地方。

请指点一下,谢谢。

Light J:

回复 MagicQ:

我想是这样的:BIM的链接文件指定了位置,main函数自然被放在复位向量处,BIM没有使用其他外设,也就没有外设中断向量,程序的跳转是直接内嵌了LJMP汇编指令。至于APP的向量表,我也想知道是如何处理的,A和B的代码可以分别放在两处,但向量表只有一个,烧写了B不就把A的向量表覆盖了么,求论坛大神解答。

赞(0)
未经允许不得转载:TI中文支持网 » OAD问题,BIM跳转问题
分享到: 更多 (0)