4340|2

918

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

关于LM3S8962的中断和中断优先级 [复制链接]

     昨晚结合《Cortex-M3权威指南》和《Cortex-M3技术参考手册》,看了一下有关中断的问题,现小结一下:

    LM3S8962一共有3+7+36个中断。

    3是三个固定优先级的系统异常,Reset,NMI,Hard fault,其优先级分别为-3,-2,-1.不可设置。几乎任何时候都可以抢占比它优先级低的中断

    7是七个可设置优先级的系统异常,分别是

    Memory manage fault

    Bus fault

    usage fault

    SVCall

    调试监视器

    PendSV

    SysTick

    36是36个外部中断,其中断优先级也是可设置的,具体参见datasheet。

    虽然Cortex-M3一共可实现256个中断(包括16个系统异常),但8962只实现了这么多。

    所有可设置中断的复位后默认优先级都是0!

 

 

     关于中断优先级分组、抢占优先级和子优先级:

Cortex-M3为了更好的管理中断,实现了优先级分组的功能,很强大。8962只用了3个位来表示中断优先级,因此其最多支持8级嵌套,其优先级分组的有效值范围是

【4,7】,注意我说的是有效值,你可以取其它值但不一定有效。

    当优先级分组取下限值为4时,所有的优先级都是抢占优先级,优先级高的可以无条件抢占优先级低的。

    当优先级分组取上限值为7时,所有的优先级都是子优先级,相当于除能了抢占功能,谁也不能抢占谁,优先级只取到在同时挂起的中断中决定谁先得到处理器响应的作用。

    复位时,优先级分组取值为0,相当于取下限值为4时的情况。

   

   在enet_io这个例程中,没有设置任何优先级,SysTick和Ethernet两个中断的优先级都是0,所以SysTick每隔10ms调用一次,但它不能抢占Ethernet的中断,所以可以推测Ethernet这个中断一般最长执行时间不能超过10ms,因为SysTick要为lwIP提供时间更新服务,它必须得到响应,有兴趣的可以测一下,不知道SysTick没有得到及时的响应会造成什么样的结果呢?

   在enet_lwIP这个例程中,设置了优先级分组为4,且SysTick的优先级要比Ethernet的优先级要高,

#define SYSTICK_INT_PRIORITY    0x80
#define ETHERNET_INT_PRIORITY   0xC0

  

  

[ 本帖最后由 academic 于 2011-7-31 16:53 编辑 ]

最新回复

没什么影响吧,没有操作系统时,可以不打开Systick中断吧,我使用的是TI公司提供的enet_lwip例程。  详情 回复 发表于 2011-4-11 20:46
 
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
不错哦!! 顶下
 
个人签名机遇总是给有准备的人呢
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
没什么影响吧,没有操作系统时,可以不打开Systick中断吧,我使用的是TI公司提供的enet_lwip例程。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表