电子产业一站式赋能平台

PCB联盟网

搜索
查看: 200|回复: 0
收起左侧

深入研究Cortex-M中断向量表对齐原则

[复制链接]

396

主题

396

帖子

2396

积分

三级会员

Rank: 3Rank: 3

积分
2396
发表于 2021-9-19 21:39:00 | 显示全部楼层 |阅读模式
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是Cortex-M中断向量表对齐原则* w" R' W; l3 l9 i. N0 M  ~
今天这篇文章的内容主要来自于五年前做  Kinetis K32W 系列双核启动时的发现,最近正好有同事碰到了 ARM Cortex-M 中断向量表对齐问题,于是痞子衡想起了这事(感慨自己记性还挺好),翻出了五年前的邮件,将当时测试结果重新整理成文。
* ]$ ^; B+ @- @" ?2 T前段时间痞子衡刚写了篇 《Cortex-M中断向量表原理及其重定向方法》,简单介绍了中断向量表工作机制,今天咱们接着来聊聊这个中断向量表对齐的事:
7 R( g3 C" ^& }/ j9 C一、Cortex-M中断向量表对齐原则中断向量表就是一个集中保存系统全部中断处理函数(xxxIRQHandler)地址的常量数组(函数地址要占 4 个字节,因此数组中每个元素大小为 4 字节),表中元素编号如下:
# d! f2 _3 F1 g0 b- d1. 中断向量表第 0 - 1 个向量比较特殊,是程序初始 SP 和 PC 值
' p; c# s# _+ @8 z$ g2. 中断向量表第 2 - 15 个向量是系统中断,IRQ 编号为 -14 到 -1" d1 K5 I! ]/ N" W
3. 中断向量表第 16 个向量开始是厂商自定义外设中断,IRQ 编号为 0 到 n  H! b- l/ a1 d8 n. Z
   - 对于 Cortex-M0/0+/1,    ARM 建议的 n 值最大为 15(实际一般厂商都会扩展)
- a4 @+ b, t2 [$ G$ B6 \/ K$ R   - 对于 Cortex-M3/4/7/23,  ARM 建议的 n 值最大为 239% P# [# n: t9 {
   - 对于 Cortex-M33/35P/55, ARM 建议的 n 值最大为 479
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表