你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

我的学习心得--关于STM3的NVIC

[复制链接]
k4gjwl 发布时间:2008-9-3 19:35
我的学习心得--关于STM3的NVIC* Q3 B$ C' x$ G

* f9 i! K5 m* C6 t1.异常可分为系统异常和外部中断,异常优先级也即分为系统异常优先级和外部中断优先级。
" [/ S( o3 i9 `+ D7 C9 g6 {( M  P1 }0 Y& m
2.中断矢量的顺序决定了异常的硬件优先级。若不进行软件设置异常的优先级(软件优先级),  z4 E" ~( }8 B8 l) l1 J( x
异常优先级就决定于硬件优先级。' R5 z8 X' C9 N1 B% O5 b

& A% }2 U3 s$ z( j( N3.异常一旦指定软件优先级后,硬件优先级则无效。(按:错,1.应是软优于硬,2.局部还是全体?); F2 P4 m2 Y3 T: n( ?. [8 k
' q0 m; W9 V# A- _3 L- d
4.不管硬软,复位,NMI,和硬故障这3个异常的优先级始终依次最高。5 D* w& G, [$ R/ E- q7 f0 ^
0 J  y2 i* X6 M/ C; r( C$ A
5.用户可设置的最高优先级为0 号优先级,其仅次于复位,NMI 以及硬件故障的第4 优先级。" k  V5 z, S4 r0 N2 |/ J, {# D  `
  0号优先级也是所有可调整优先级的默认优先级。(按:是否意味都要设置?)* g2 v$ C: i' O% d  y8 q/ F$ }$ }; f

  r, K7 l8 H0 p6.系统异常的优先级可通过系统处理器优先级寄存器组进行控制(写入)。
1 G! z2 }0 Z; ^# s. F$ g该寄存器组是:NVIC_SYS_PRI1-3 0xE000ED18-23 共12个字节。
/ `  C' w6 V0 a! v- W5 u6 a顺序地对应从4开始的12个系统异常中断号NVIC_SYS_PRI4-12:
6 I' n; i4 L% C- `5 b" q; S存储器管理,总线故障,使用故障,保留, 保留,保留,保留,SVCall, 调试监控,保留,PendSV,SysTick。
. o  E8 h8 _) \" O4 D" K   其中,只有PendSV,SysTick可以通过软件来触发(设置挂起pendSV位),方法是:将中断控制状态寄存器0xE000ED04的[28]PENDSVSET,[26] PENDSTSET置1。
* j1 D/ H5 V  w, |
  ]- }$ M' |# e9 W$ b) \9 b# p7. 外部中断指的是除系统异常之外的异常,也即中断号等于和大于16 的异常。外部中断的0 号中断对应于NVIC 的16 号中断,依次类推.
7 L2 u8 o, |, P: K% }   外部中断的优先级可通过外部中断优先级寄存器组(又称"中断优先级寄存器")进行控制(写入)。
& ~$ J5 m4 F* z& g( W: T7 ~该寄存器组是:0xE000E400-41F 共32个字节。顺序地对应32个中断号:
5 v& g0 \, f$ W' w中断0的优先级(PRI_0),就放在0xE000E400;中断31的优先级(PRI_31),就放在 0xE000E41F。; j8 l9 m- j2 s. @; B/ q% {# |

! C; b  z! \& ]3 ~1 ?5 Z; J0 h8. CortexM3规定的优先级是256级,但具体的采用CortexM3内核的IC可以是8级( Z  _7 J4 n0 j5 |  ^, I9 o
(例Stellaris的LM3S系列)或16级(例ST的STM32系列),也可以更大。
8 y* D7 S' `6 a3 ~; w) M2 x所以,对于这2个IC,写入系统处理器优先级寄存器和中断优先级寄存器组的值(PRI_N,8Bit)分别只有高3Bit和高4Bit才是有效的,其余5Bit和4Bit没有意义。
" X) M% o" r7 H) T1 i+ S
/ Y% A# K. n; m3 l4 B: p6 X9. 优先级分组 (姜按:“CortexM3 参考手册中的这段话,还是摘录在下面,尽管我认为这个机制对于STM32这个IC,几乎没有意义。), v& v5 U& N$ c
为了对具有大量中断的系统加强优先级控制,NVIC 支持优先级分组机制。应用中断和复位控制寄存器中的PRIGROUP 区(3Bit)来将每个PRI_N 中的值分为占先优先级区和次优先级区。我们将占先优先级称为组优先级。如果有多个挂起异常共用相同的组优先级,则需使用次优先级区来决定同组中的异常的优先级,这就是同组内的次优先级。组优先级和次优先级的结合就是通常所说的优先级。如果两个挂起异常具有相同的优先级,则挂起异常的编号越低优先级越高。这与优先级机制是一致的。
5 W" ~& [7 Q6 P; i- _, Z% z, M% `3 Q* J  ^: q) N
10. 应用:在程序中改变优先级的最快办法是“字节写”。
7 ~( B; l8 @" N" O" p8 ?( n& c* L2 `" f7 l2 A3 {% Q
出处:60岁老头
收藏 评论1 发布时间:2008-9-3 19:35

举报

1个回答
vvinggth204 回答时间:2009-10-22 15:52:16

RE:我的学习心得--关于STM3的NVIC

谢谢分享,加油。。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版