历史上的今天
返回首页

历史上的今天

今天是:2024年11月03日(星期日)

2021年11月03日 | ATmega8 中断向量

2021-11-03 来源:eefocus

本节说明ATmega8的中断处理。更一般的AVR中断处理请参见P 12“复位与中断处理” 。

ATmega8 复位和中断向量
Notes: 
1. 熔丝位BOOTRST被编程时,MCU复位后程序跳转到Boot Loader。
2. 当寄存器GICR的IVSEL置位时,中断向量转移到Boot区的起始地址。此时各个中断向量的实际地址为表中地址与Boot 区起始地址之和。


Table 19给出了不同的BOOTRST/IVSEL设置下的复位和中断向量的位置。如果程序永远 不使能中断,中断向量就没有意义。用户可以在此直接写程序。同样,如果复位向量位于 应用区,而其他中断向量位于Boot 区,则复位向量之后可以直接写程序。反过来亦是如此。

ATmega8 复位和中断向量位置的确定
Note: 
1. Boot 区复位地址列于P 207Table 82 。 对于熔丝位BOOTRST,“1” 表示未编程, “0” 表示已编程。

ATmega8 典型的复位和中断设置如下:

ATmega8 典型的复位和中断设置

当熔丝位BOOTRST 未编程,Boot 区为 2K 字节,且寄存器GICR 的IVSEL 置位时,典型的复位和中断设置如下:

ATmega8 典型的复位和中断设置

当熔丝位BOOTRST 已编程,且Boot 区为 2K 字节时,典型的复位和中断设置如下:

ATmega8 典型的复位和中断设置

当熔丝位BOOTRST 已编程,Boot 区为2K 字节,且寄存器GICR 的IVSEL 置位时,典型的复位和中断设置如下:

ATmega8 典型的复位和中断设置

在应用区和Boot 区之间移动中断

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

通用中断控制寄存器- GICR

ATmega8 通用中断控制寄存器- GICR

• Bit 1 – IVSEL: 中断向量选择
当IVSEL 为"0“ 时,中断向量位于Flash 存储器的起始地址;当IVSEL 为"1“ 时,中断向量转移到Boot 区的起始地址。实际的Boot 区起始地址由熔丝位BOOTSZ 确定。具体请参考P 196“ 支持引导装入程序 -在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。 为了防止无意识地改变中断向量表,修改IVSEL 时需要遵照如下过程:
1. 置位中断向量修改使能位IVCE。
2. 在紧接的4 个时钟周期里将需要的数据写入IVSEL,同时对IVCE 写”0”。


执行上述序列时中断自动被禁止。其实,在置位IVCE 时中断就被禁止了,并一直保持到 写IVSEL 操作之后的下一条语句。如果没有IVSEL 写操作,则中断在置位IVCE 之后的 4 个时钟周期保持禁止。需要注意的是,虽然中断被自动禁止,但状态寄存器的位I 的值并 不受此操作的影响。


注意:若中断向量位于Boot 区,且Boot 锁定位BLB02 被编程,则执行应用区的程序时中断被禁 止;若中断向量位于应用区,且Boot 锁定位BLB12 被编程, 则执行Boot 区的程序时中断被禁止。 有关Boot锁定位的细节请参见P 196“支持引导装入程序 -在写的同时可以读(RWW, Read- While-Write) 的自我编程能力” 。


• Bit 0 – IVCE: 中断向量修改使能
改变IVSEL 时IVCE 必须置位。在IVCE 或IVSEL 写操作之后4 个时钟周期, IVCE 被硬件清零。如前面所述,置位IVCE 将禁止中断。代码如下:

汇编代码例程
Move_interrupts:
; 使能中断向量的修改
ldi r16, (1<out GICR, r16
; 将中断向量转移到boot Flash 区
ldi r16, (1<out GICR, r16
ret
C 代码例程
void Move_interrupts(void)
{
/* 使能中断向量的修改*/
GICR = (1</* 将中断向量转移到boot Flash 区 */
GICR = (1<}


推荐阅读

史海拾趣

Amveco Toroidal Power Products公司的发展小趣事

Amveco Toroidal Power Products公司成立于XXXX年,初始阶段主要专注于环形变压器的研发与生产。创始人凭借对环形变压器技术的深入了解和市场需求的敏锐洞察,带领团队克服了初创期的种种困难,成功开发出了具有高效能、低噪音特点的环形变压器产品,并赢得了客户的初步认可。随着市场口碑的逐渐积累,公司的业务规模开始稳步扩大。

ABECO公司的发展小趣事

随着业务的发展,ABECO在1970年做出了一个大胆的决定——进军马耳他市场。这一决策既带来了挑战,也带来了机遇。公司需要适应新的市场环境,了解当地的需求和文化。经过一段时间的摸索和努力,ABECO凭借其高品质的产品和专业的服务,成功在马耳他市场打开了局面,为后续的发展奠定了坚实的基础。

HSMC公司的发展小趣事

HSMC深知技术创新是企业发展的核心驱动力。公司不仅拥有丰富的14纳米及7纳米以下节点FinFET先进逻辑工艺与晶圆级先进封装技术经验,还持续投入研发,瞄准世界先进的制程工艺。通过与全球各大科研院所的合作,HSMC不断储备行业专利,增强自身的技术壁垒。这种对技术创新的执着追求,为公司的长远发展奠定了坚实基础。

Eagle-Picher公司的发展小趣事

Eagle-Picher公司的历史可以追溯到1843年,最初是由Edgar和他的兄弟Stephen J. Conkling在俄亥俄州辛辛那提成立的,专注于生产商业涂料颜料。随着时间的推移,公司经历了多次转型和变革。1847年,Stephen离开公司后,Edgar引入了新的合伙人威廉·伍德,并更名为康克林木业公司。随后,公司在不同的业务领域内扩展,直到1922年,Eagle-Picher正式进入电池市场,开始了其电子行业的历程。

Astro Industries Inc公司的发展小趣事

Astro Industries Inc的创始人在电子行业拥有丰富的经验,他们看到了市场对于高性能电子产品的迫切需求。于是,公司从创立之初就专注于技术创新,投入大量资源进行研发。经过不懈的努力,Astro Industries Inc成功推出了一款具有颠覆性的电子产品,其性能远超当时市场上的同类产品,迅速获得了市场的认可。

AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

AMERICASEMI深知产品质量对于企业发展的重要性。因此,公司建立了严格的质量管理体系,从原材料采购到生产制造的每一个环节都进行严格把控。同时,AMERICASEMI还注重品牌建设,通过参加国际电子展会、发布技术论文等方式提升品牌知名度和影响力。这些努力使得AMERICASEMI在半导体行业中树立了良好的口碑和形象。

问答坊 | AI 解惑

【电子书】万用表测试电工电子元器件300例【PDG格式】

【电子书】万用表测试电工电子元器件300例【PDG格式】 【电子书】万用表测试电工电子元器件300例【PDG格式】_ 【电子书】万用表测试电工电子元器件300例【PDG格式】_ 【电子书】万用表测试电工电子元器件300例【PDG格式】_ [ 本帖最后由 emily ...…

查看全部问答>

5款ALTERA FPGA开发板原理图合集

5款ALTERA FPGA开发板原理图合集…

查看全部问答>

CCD摄像机质量对网络摄像机的影响

  1. 问题的提出         网络摄象机技术的发展,特别是宽带网络的普及,使得基于网络的网络监控应用正在普及。灵活的监视和控制配置、与信息网络紧密融合、长距离远程监控等优势都是传统监控所不可比拟的。如何 ...…

查看全部问答>

新领导新风格

我们团队的老总,新来的新风格,开会坚决不让人在下面与别人讨论,一定与他讨论他发起的话题,奶奶的,这有点不习惯。以前我们老大,喜欢百家争鸣,大家开大会,我们开小会。…

查看全部问答>

关于DXP 2004中元件封装问题……

各位大侠,在dxp 2004中有没有三排 15针串口(VGA)这个元件?如果有,那是在哪个库呢?而且还要有封装!我找了很久都没找到!如果有谁有这个元件库,可以给我吗?不胜感激!…

查看全部问答>

新手来问问题,请老鸟们指导

我手头有一块2410的板子,可是和电脑不能连接。能不能帮我分析分析 系统里除了驱动只装了360安全卫士,其他软件安装顺序是:1、CE5.0 2、EVC 3、USB驱动(用USB线连接) 4、activesync 连接之后打开板子的电源,托盘里activesync的小标一直没有反 ...…

查看全部问答>

loadcepc在哪?

請問啟動loadcepc的source code在哪 我創建了一個cepc,編譯好後沒有發現Loadcepc.exe …

查看全部问答>

文本框不能输入中文

为什么运行时文本框中不能输入中文???只能输入英文?…

查看全部问答>

那位兄弟有三星的NAND FLASH的驱动,我不要通用的啊,现代的我有,就是要改成三星的,

那位兄弟有三星的NAND FLASH的驱动,我不要通用的啊,现代的我有,就是要改成三星的, 有就发到我邮箱里啊?ricky5200@163.com 谢谢啊,…

查看全部问答>

STM32Primer2隆重登场

看来像手机... 在香港的Farnell网站可以下订单. 价钱港币718.9, 免运费. 比Primer1, 改良了不少. STM32F103E (512 Kbytes Flash) Li-Ion battery with smart loading& ...…

查看全部问答>