关于mcf52259的一点说明 

2020-02-19 21:17发布

飞思卡尔的coldfire v2处理器的中断控制器可能有多个,比如mcf52259内部有两个中断控制器。每个中断控制器最多管理63个中断源,coldfire对中断优先级的管理是分成两级管理的。首先把63个中断源分成7组,每组对应一个interrupt level,其中level 7具有最高优先级,level优先级最低。但同一个level中可以包含多个中断源,在同一个level中的中断源又进一步分成8个优先级别,称为interrupt priority,其中priority 0优先级最低,priority 7最高。但是不能有两个中断源具有相同的interrupt level和interrupt priority。
这里有一个问题,对于有多个中断控制器的芯片来说,如果同时各有一个具有相同level和priority的中断发生,cpu该先响应哪个?答案是INTC0即第一个中断控制器具有最高优先级,INTC1其次,INTC2最低。
还有一个问题,每个中断控制器的1-7号中断源的优先级是固定的,不可编程,首先它们的interrupt priority是一个特殊的级别,处于priority 3和4之间,就是比3高,比4又低;那么它们的interrupt level是多少呢?手册上没有提,freescale论坛上的回答是1号中断源的level是1,2号中断的level是2,依次类推。
此外,还有个问题是跟coldfire时钟模块有关的,coldfire的时钟模式是由CLKMOD[0],CLKMODE[1]两个引脚决定,在reset时候,coldfire会检测这两个引脚的状态从而决定默认的时钟模式。但是在一些小封装的coldfire处理器中,CLKMODE[1]这个引脚被去掉了,是没有的,那么问题是这个时候怎么根据CLKMODE[0]来确定时钟模式呢?答案是:在没有CLKMODE[1]引脚的芯片上,默认CLKMODE[1]是等于零的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。