在应用区和Boot区之间移动中断
发表:2023-08-29 12:06:32 阅读:56

通用中断控制寄存器决定中断向量表的放置地址。

 

>MCU控制寄存器…MCUCR

 ·Bit l——lVSEL:中断向量选择

当IVSEL为“0”时,中断向量位于Flash存储器的起始地址;当IVSEL为“l”时,中断向量转移到Boot区的起始地址。实际的Boot区起始地址由熔丝位BOOTSZ确定。为了防止无意间改变中断向量表,修改IVSEL时需要遵照如下过程:

 ①置位中断向量修改使能位IVCE。

②在紧接的4个时钟周期里将需要的数据写入IVSEL,同时对IVCE写“0"。执行上述序列时中断自动禁止。其实,在置位IVCE时中断就被禁止了,并一直保持到写IVSEL操作之后的下一条语句。如果没有IVSEL写操作,则中断在置位IVCE之后的4个时钟周期保持禁止。状态寄存器的位1不受此序列的影响。需要注意的是:若中断向量位于Boot区,且Boot锁定位BLB02被编程,则执行应用区的程序时中断被禁止;若中断向量位于应用区,且Boot锁定位BLBl2被编程,则执行Boot区的程序时中断被禁I卜.

·Bit 0——IVCE:中断向量修改使能

改变IVSEL时IVCE必须置位。在IVCE或IVSEL写操作之后4个时钟周期,IVCE被硬件清零。如前面所述,置位IVCE将禁止中断。汇编代码如下:

Move_interrupts:

;使能中断向量的修改

idi rl6,(1<

out MCUCR,rl6

;将中断向量转移到boot区

idi rl6,(i<

out MCUCR.rl6

ret

C代码例程:

void Move.—interrupts(void)

/*使能中断向量的修改*/

MCUCR=(1<

/*将中断向量转移到boot区*/

MCUCR=(i<

 

 

更多资讯请关注

选配晶体管时的注意事项

选配二极管时应考虑事项

普通二极管的选用及注意事项

选用电感器时应考虑哪些方面?

开关二极管的选用及注意事项

稳压二极管的选用及注意事项

变容二极管的选用及注意事项

整流、检波二极管的选用及注意事项

按要求进行选用电感器需要注意哪些事项?