TIwilliam hill官网
直播中

高媛

7年用户 162经验值
私信 关注

请问2812中断向量表不是本来就存在BOOTROM中的么,如果不COPY,并且不重新映射地址,难道就不能执行用户中断了吗?

本帖最后由 一只耳朵怪 于 2018-6-13 16:12 编辑

看到资料上说,2812的中断向量表可以被映射到5个地址。BootROM是上电默认地址,而用户需要将向量表COPY到PIE的RAM中。并重新映射中断向量表的地址。
我的问题是,这样做是必须的么?中断向量表不是本来就存在BOOTROM中的么,如果不COPY,并且不重新映射地址,难道就不能执行用户中断了么。还是说只是影响中断的执行效率?如果不能执行的话,又是为什么呢。

回帖(4)

孙燕冉

2018-6-13 04:28:59
BootROM是只读,不能写。
copy出来到RAM,是为了可写。
因为你要把中断服务函数ISR的入口地址写入到中断向量表中嘛
举报

高媛

2018-6-13 04:42:13
引用: 蓝色冰汐 发表于 2018-6-13 04:28
BootROM是只读,不能写。
copy出来到RAM,是为了可写。
因为你要把中断服务函数ISR的入口地址写入到中断向量表中嘛

那如果使用了外部中断,但并没有向PIE中COPY中断向量表. 那么发生中断后会出现什么情况呢?
举报

孙燕冉

2018-6-13 04:55:40
引用: kdkashd 发表于 2018-6-13 04:42
那如果使用了外部中断,但并没有向PIE中COPY中断向量表. 那么发生中断后会出现什么情况呢?

使用了外部中断,但因为没有copy,无法将ISR的入口地址赋值,所以什么也不会发生。
举报

冯敬宇

2018-6-13 05:12:56
xiaonan
BootROM上的中断向量表是默认没有经过扩张的中断向量表,当PIE没有使能的时候,就会使用这些中断向量入口。
但是实际应用中,默认的中断向量入口是不够来处理C2000这么多外设的中断请求的,所以必须经过中断扩展,即PIE模块。扩展后,中断入口就是在0D00~0E00之间。
由于RAM是掉电不保存的,所以上电后还需要重新把中断的入口地址,即各个中断服务函数的地址放到这个PIE中断向量表中。
Eric
                                                                         - ERIC
举报

更多回帖

发帖
×
20
完善资料,
赚取积分