[ZLG-MCU] 求助:LM3S101组优先级到底是怎么回事????????????

[复制链接]
 楼主| ATmega16 发表于 2007-11-9 18:02 | 显示全部楼层 |阅读模式
LM3S101优先级只有8个,占用PRI_N的[7:5]位,<br />那么<br />优先级0&nbsp;PRI是00000000<br />优先级1&nbsp;PRI是00100000<br />优先级2&nbsp;PRI是01000000<br />优先级3&nbsp;PRI是01100000<br />优先级4&nbsp;PRI是10000000<br />优先级5&nbsp;PRI是10100000<br />优先级6&nbsp;PRI是11000000<br />优先级7&nbsp;PRI是11100000<br /><br />假设优先级是按NVIC_APINT_PRIGROUP_2_6分组,那么<br />优先级0&nbsp;PRI是00000000&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />优先级1&nbsp;PRI是00100000&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />优先级2&nbsp;PRI是01000000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级3&nbsp;PRI是01100000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级4&nbsp;PRI是10000000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级5&nbsp;PRI是10100000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级6&nbsp;PRI是11000000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级7&nbsp;PRI是11100000&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br /><br />综合起来,优先级7还必优先级0高,并切能嵌套优先级0???<br /><br /><br />
逐风 发表于 2007-11-9 22:16 | 显示全部楼层

有这么用的么?

  
 楼主| ATmega16 发表于 2007-11-10 08:47 | 显示全部楼层

LM3S101组优先级到底是怎么回事????????????

lm3s101默认组优先级划分是NVIC_APINT_PRIGROUP_7_1,<br />高七位是组高优先级位,最地位是组低优先级位?????<br /><br />只有优先级0是低组优先级,其他优先级全部是高组优先级?<br />不对啊!????<br /><br />LM3S101组优先级到底是怎么回事????????????<br />
 楼主| ATmega16 发表于 2007-11-12 18:51 | 显示全部楼层

继续问

继续问
逐风 发表于 2007-11-12 23:38 | 显示全部楼层

再看看书

明天我也研究一下……呵呵
ZLGARM 发表于 2007-11-13 16:02 | 显示全部楼层

您好!

LM3S101有8个中断优先级组,所以可以支持8级中断嵌套,同组优先级的中断不能嵌套,可以是中断迟来和末尾连锁。
 楼主| ATmega16 发表于 2007-11-13 18:59 | 显示全部楼层

to 楼上

to&nbsp;楼上<br />LM3S101有8个优先级是指具有8个组优先级??优先级只占用3位,全部都用来做组优先级了,那么怎么设置次优先级呢????
ZLGARM 发表于 2007-11-20 17:12 | 显示全部楼层

ATmega16您好!

&nbsp;&nbsp;&nbsp;&nbsp;在群星系列单片机里,只取最高3位有效,也就是说最多只能设置8个优先级进行占先。如果您需要设置次优先级,那么可以改变NVIC_APINT_PRIGROUP寄存器,把它设置成5或者6(原来默认是0,但是群星只能是最高三位有效,所以到0-4效果都是一样。),那么减少了组优先级的设置数量,用减少的组优先级来设置次优先级。例如将NVIC_APINT_PRIGROUP寄存器6《8,这样只有1个组优先级,剩下两个位可以用来设置成次优先级。最好是用最高3位来做组优先级,次优先级可以利用默认的硬件优先级。<br />如果您还不是很明白,请给我们电话或者邮件,我们可以提供实验范例.<br />lm3@zlgmcu.com<br />020-22644252
 楼主| ATmega16 发表于 2007-11-21 11:33 | 显示全部楼层

能否给easyarm101用组优先级和次优先级范例。

多谢。<br />能否给easyarm101用组优先级和次优先级范例。<br />atmega32@126.com
s99060 发表于 2007-11-21 21:31 | 显示全部楼层

组就是可以嵌套,次就是只能排队不能嵌套

  
逐风 发表于 2007-11-22 09:11 | 显示全部楼层

LS说的很对

组优先可以占先,次优先只能末尾连锁。
 楼主| ATmega16 发表于 2007-11-22 09:12 | 显示全部楼层

楼上能否详细说明一下?

<br /><br />#define&nbsp;NVIC_APINT_PRIGROUP_7_1&nbsp;0x00000000&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;7.1&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_6_2&nbsp;0x00000100&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;6.2&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_5_3&nbsp;0x00000200&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;5.3&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_4_4&nbsp;0x00000300&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;4.4&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_3_5&nbsp;0x00000400&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;3.5&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_2_6&nbsp;0x00000500&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;2.6&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_1_7&nbsp;0x00000600&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;1.7&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_0_8&nbsp;0x00000700&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;0.8&nbsp;split<br /><br />请问:比如说优先级分组是NVIC_APINT_PRIGROUP_6_2,哪些优先级级是高组优先级,哪些是低组优先级?或者说PRI_N的值哪些是高组优先级,哪些是低组优先级呢?
康康MCU 发表于 2007-11-23 22:04 | 显示全部楼层

中断优先级

<br />目前Luminary单片机的中断优先级只有8级,即:占用PRI_N的[7:5]位。<br />组优先级+次优先级=8级,所以最多有3位组优先级,或3位次优先级<br />对于优先级分组:<br />#define&nbsp;NVIC_APINT_PRIGROUP_7_1&nbsp;0x00000000&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;7.1&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_6_2&nbsp;0x00000100&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;6.2&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_5_3&nbsp;0x00000200&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;5.3&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_4_4&nbsp;0x00000300&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;4.4&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_3_5&nbsp;0x00000400&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;3.5&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_2_6&nbsp;0x00000500&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;2.6&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_1_7&nbsp;0x00000600&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;1.7&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_0_8&nbsp;0x00000700&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;0.8&nbsp;split<br />对Luminary单片机来说,以下4种设置无效:<br />#define&nbsp;NVIC_APINT_PRIGROUP_7_1&nbsp;0x00000000&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;7.1&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_6_2&nbsp;0x00000100&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;6.2&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_5_3&nbsp;0x00000200&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;5.3&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_4_4&nbsp;0x00000300&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;4.4&nbsp;split<br />&nbsp;<br />所以对于LM3S--来说,只有以下设置优先级分组有效:<br />#define&nbsp;NVIC_APINT_PRIGROUP_3_5&nbsp;0x00000400&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;3.5&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_2_6&nbsp;0x00000500&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;2.6&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_1_7&nbsp;0x00000600&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;1.7&nbsp;split<br />#define&nbsp;NVIC_APINT_PRIGROUP_0_8&nbsp;0x00000700&nbsp;&nbsp;//&nbsp;Priority&nbsp;group&nbsp;0.8&nbsp;split<br />其中,NVIC_APINT_PRIGROUP_3_5&nbsp;组优先级3位,不能设置次优先级,可将任意外部中断设置成组优先级,优先级高低由用户设定;同理:NVIC_APINT_PRIGROUP_2_6&nbsp;组优先级2位,次优先级1位;&nbsp;NVIC_APINT_PRIGROUP_1_7组优先级1位,次优先级2位;NVIC_APINT_PRIGROUP_0_8无组优先级,全部为次优先级,而且中断只能采用末尾连锁。<br />注意:高组优先级可占先低组优先级;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;组优先级相同的,次优先级间不能相互占先,即使具有较高的次优先级,同组内的次优先级只能采用末尾连锁方式。<br />所以,楼上说的优先级分组是NVIC_APINT_PRIGROUP_6_2的,对LM3S-默认全部为组优先级。<br /><br /><br /><br /><br />&nbsp;
康康MCU 发表于 2007-11-23 22:20 | 显示全部楼层

中断优先级

高组优先级和低组优先级是用户自行设置的,不是简单的NVIC_APINT_PRIGROUP_6_2(PRI_N的值)就可以决定了的,它只是起到可以设置几位组优先级。<br />真正的高低组优先级需要在设置成的组优先级位中来设置。<br />注意设置中起作用的只有【7:5】位。
 楼主| ATmega16 发表于 2007-11-24 09:01 | 显示全部楼层

多谢

多谢。<br />我假设的优先级分组是NVIC_APINT_PRIGROUP_2_6,没说成NVIC_APINT_PRIGROUP_6_2。<br /><br /><br />LM3S101优先级只有8个,占用PRI_N的[7:5]位,<br />那么<br />优先级0&nbsp;PRI是000XXXXX<br />优先级1&nbsp;PRI是001XXXXX<br />优先级2&nbsp;PRI是010XXXXX<br />优先级3&nbsp;PRI是011XXXXX<br />优先级4&nbsp;PRI是100XXXXX<br />优先级5&nbsp;PRI是101XXXXX<br />优先级6&nbsp;PRI是110XXXXX<br />优先级7&nbsp;PRI是111XXXXX<br /><br />假设优先级是按NVIC_APINT_PRIGROUP_2_6分组(两位组优先级位,一位次优先级位),那么<br />优先级0&nbsp;PRI是000XXXXX&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />优先级1&nbsp;PRI是001XXXXX&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />优先级2&nbsp;PRI是010XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级3&nbsp;PRI是011XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级4&nbsp;PRI是100XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级5&nbsp;PRI是101XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级6&nbsp;PRI是110XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级7&nbsp;PRI是111XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br /><br />综合起来,优先级7还必优先级0高,并切能嵌套优先级0???&nbsp;<br />
逐风 发表于 2007-11-25 23:55 | 显示全部楼层

AT你钻到牛角了

你怎么还是没明白呢?书上这么说的低组高组么?<br />如果你改变了那三位的配置,你所谓的优先级0和1是同组分配次优先级。感觉有点郁闷了。
 楼主| ATmega16 发表于 2007-11-26 10:18 | 显示全部楼层

楼上能否解释清楚一点

假设优先级是按NVIC_APINT_PRIGROUP_2_6分组(两位组优先级位,一位次优先级位),那么PRI_N的[7:5]八种组合各代表什么优先级呢?
康康MCU 发表于 2007-11-26 21:21 | 显示全部楼层

AT,你没认真理解我上面的那段吧?!呵呵

假设优先级是按NVIC_APINT_PRIGROUP_2_6分组(两位组优先级位,一位次优先级位),那么PRI_N的[7:5]八种组合各代表什么优先级呢?<br /><br />8个优先级中可设4个组优先级,2个次优先级<br />00&nbsp;0&nbsp;XXXXX&nbsp;:组优先级0,次优先级0<br />00&nbsp;1&nbsp;XXXXX&nbsp;:组优先级0,次优先级1<br /><br />01&nbsp;0&nbsp;XXXXX&nbsp;:组优先级1,次优先级0<br />01&nbsp;1&nbsp;XXXXX&nbsp;:组优先级1,次优先级1<br /><br />10&nbsp;0&nbsp;XXXXX&nbsp;:组优先级2,次优先级0<br />10&nbsp;1&nbsp;XXXXX&nbsp;:组优先级2,次优先级1<br /><br />11&nbsp;0&nbsp;XXXXX&nbsp;:组优先级3,次优先级0<br />11&nbsp;1&nbsp;XXXXX&nbsp;:组优先级3,次优先级1<br /><br />NVIC_APINT_PRIGROUP_2_6分组如上,<br />而你说的:<br />&nbsp;&nbsp;&nbsp;优先级0&nbsp;PRI是000XXXXX&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />&nbsp;&nbsp;&nbsp;优先级1&nbsp;PRI是001XXXXX&nbsp;&nbsp;&nbsp;&nbsp;低组优先级<br />&nbsp;&nbsp;&nbsp;优先级2&nbsp;PRI是010XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />&nbsp;&nbsp;&nbsp;优先级3&nbsp;PRI是011XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />&nbsp;&nbsp;&nbsp;优先级4&nbsp;PRI是100XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />&nbsp;&nbsp;&nbsp;优先级5&nbsp;PRI是101XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />&nbsp;&nbsp;&nbsp;优先级6&nbsp;PRI是110XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />&nbsp;&nbsp;&nbsp;优先级7&nbsp;PRI是111XXXXX&nbsp;&nbsp;&nbsp;&nbsp;高组优先级<br />优先级7:代表组优先级为3,次优先级为1<br />优先级0:代表组优先级为0,次优先级为0<br />所以优先级0&gt优先级7,优先级0可占先优先级7<br />优先级0-7只是代号而已。。。。。。。。。<br /><br />
逐风 发表于 2007-11-26 22:53 | 显示全部楼层

LS对的

LS说的很正确,AT应该好好看看……
 楼主| ATmega16 发表于 2007-11-28 08:43 | 显示全部楼层

多谢楼上和楼上的楼上指点。

00&nbsp;0&nbsp;XXXXX&nbsp;:组优先级0,次优先级0<br />00&nbsp;1&nbsp;XXXXX&nbsp;:组优先级0,次优先级1<br /><br />01&nbsp;0&nbsp;XXXXX&nbsp;:组优先级1,次优先级0<br />01&nbsp;1&nbsp;XXXXX&nbsp;:组优先级1,次优先级1<br /><br />10&nbsp;0&nbsp;XXXXX&nbsp;:组优先级2,次优先级0<br />10&nbsp;1&nbsp;XXXXX&nbsp;:组优先级2,次优先级1<br /><br />11&nbsp;0&nbsp;XXXXX&nbsp;:组优先级3,次优先级0<br />11&nbsp;1&nbsp;XXXXX&nbsp;:组优先级3,次优先级1<br /><br />1.综合起来是00&nbsp;0&nbsp;XXXXX优先级最高,11&nbsp;1&nbsp;XXXXX优先级最低??<br />2.如果用要设置优先级分组是NVIC_APINT_PRIGROUP_2_6,设置systick优先级为组优先级3,次优先级1,用流明的库函数怎么实现?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

229

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

109

主题

229

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部