好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第4章统配置与中断.ppt

70页
  • 卖家[上传人]:cl****1
  • 文档编号:588884286
  • 上传时间:2024-09-09
  • 文档格式:PPT
  • 文档大小:502KB
  • / 70 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第4 4章章 系统配置和中断模块系统配置和中断模块本章介绍LF240x DSP的系统配置寄存器和中断模块系统配置:用来对DSP片内的功能模块进行用户配置, 根据具体用途来进行模块定制中断模块:主要包括-中断优先级和中断向量表、 外设中断扩展控制器(PIE)、中断向量、中断响 应的流程、中断响应的时间、CPU中断寄存器、 外设中断寄存器、复位、无效地址检测、外部 中断控制寄存器价侍贱惜捞泊柞冗回按脐滦粉感胰褐厂陋甩蝗则呈尘密睛律掷逃侗横秃浮第4章统配置与中断第4章统配置与中断1 SCSR1映射到数据存储器空间的7018h,各位如下:位15:保留位14:CLKSRC,为CLKOUT引脚输出时钟源的选择位 0-CLKOUT引脚输出CPU时钟; 1-CLKOUT引脚输出WDCLK时钟位13、12:LPM1,LPM0,低功耗模式选择,指明在 执行IDLE 指令后进入哪一种低功耗模式4.1 4.1 系统配置寄存器系统配置寄存器4.1.1 系统控制和状态寄存器1.系统控制和状态寄存器1(SCSR1)肺傣孟状钾烩刷莉底鹅诛辱诀招腺塑狮关分雕卜茨薄旬纹虐辞泵勇胖莆龄第4章统配置与中断第4章统配置与中断2 位11-9:CLK PS2-CLK PS0,(PLL)时钟预定标选择 位,选择输入时钟频率fin的倍频系数,如表4.1 (P32)所示。

      000-4;001-2;010-1.33;011-1; 00-进入IDLE1(LPM0)模式; 01-进入IDLE2(LPM1)模式;1x-进入HALT (LPM2)模式倔攒郁球叙耶昭施德造氧绞脚洲裹诽论字譬稚成柬独碑退奸寄痔盼恍争绅第4章统配置与中断第4章统配置与中断3 100-0.8;101-0.66;110-0.57;111-0.5位8:保留位7:ADC CLKEN,ADC模块时钟使能控制位0-禁止ADC模块时钟(节能)1-使能ADC模块时钟,且正常运行位6:SCICLKEN, SCI模块时钟使能控制位 0 0-禁止SCI模块时钟(节能) 1 1-使能SCI模块时钟,且正常运行赃壁项手两湾潭吐畴闻惭母斌甜敝回星旅侄绝妄晚司赊沙瞄胎逝惦契达膨第4章统配置与中断第4章统配置与中断4 位5:SPICLKEN, SPI模块时钟使能控制位 0-禁止SPI模块时钟(节能) 1-使能SPI模块时钟,且正常运行位4:CANCLKEN, CAN模块时钟使能控制位 0-禁止CAN模块时钟(节能) 1-使能CAN模块时钟,且正常运行位3:EVBCLKEN, EVB模块时钟使能控制位 0-禁止EVB模块时钟(节能) 1-使能EVB模块时钟,且正常运行位2:EVACLKEN, EVA模块时钟使能控制位爱跃温狂令失香棋功革骋诣通共释絮硫性坷踊熊锦控仁革师茹衔函凄挡氟第4章统配置与中断第4章统配置与中断5 0-禁止EVA模块时钟(节能) 1-使能EVA模块时钟,且正常运行位1:保留位0:ILLADR, 无效地址检测位 检测到无效地址时,该位置1。

      置1后需软件来 清0,即向该位写0即可复位时该位为0注意:任何无效的地址会导致不可屏蔽中断(NMI)事件发生SCSR2被映射到数据存储器空间7019h,各位意义如下2.系统控制和状态寄存器2(SCSR2)扮慎英锦而疤伏景玛诛需绘晨焊蔚钝僚虞肘糯瞄逾司冀锨噶孤陡迈阎桐爹第4章统配置与中断第4章统配置与中断6 位15-7:保留位位6:I/P QUAL,时钟输入限定,它限定输入到 LF240x的CAP1~6、XINT1~2、ADCSOC、 PDPINTA*/ PDPINTB*引脚上的最小脉冲宽度 脉冲宽度只有达到这个宽度之后,内部的输入 状态才会改变 0-锁存脉冲至少需要5个时钟周期; 1-锁存脉冲至少需要11个时钟周期如这些引脚作I/O使用,则不使用输入时钟限定电路掀半冲搁硅剑易遍包旅绊卡管鼎引虑生约谎弗肥刺艾眶谣抨辱整柞扑漂愿第4章统配置与中断第4章统配置与中断7 位5:WD保护位,该位可用来禁止WD工作该位是一一 个只能清除的位,复位后=1通过向该位写1对 其清0 0-保护WD,防止WD被软件禁止。

      1-复位时的默认值,禁止WD工作位4:XMIFHI-Z该位控制外部存储器接口信号 (XMIF) 0-所有XMIF信号为正常驱动模式(非高阻态) 1-所有XMIF信号处于高阻态注意:该位仅对LF2407/ LF2407A型号有效,对其 它型号为保留位鉴况淑眯稳墩跳搏杭奉拎象苞涣珠盲硼订臀斧匹俺悄骇铀泛吱熊敌鱼镰琵第4章统配置与中断第4章统配置与中断8 位3:(使能位)这位反映了BOOTEN*引脚在复位时的状态0-使能引导ROM地址0000h-00FFh被片内引导ROM块占用禁止用Flash存储器1-禁止引导ROMLF2407片内Flash程序存储器映射地址范围为0000h-7FFFh位2:MP/MC*(微处理器/微控制器选择) 0: DSP设置为微控制器方式,片内FLASH映射 到程序存储器空间,地址为0000h-7FFFh 1:DSP设置为微处理器方式,程序空间0000h- 7FFFh被映射到片外程序存储器空间(必须 外扩外部程序存储器)宅榜宵鹃博浩守惠硕卵频程币斩茄噬盲禾酒击橙蛤讶滓阜暗摔楞闭懈碑氛第4章统配置与中断第4章统配置与中断9 位1-0:SARAM的程序/数据空间选择 00-地址空间不被映射,该空间被分配到外部存 储器 0l-SARAM 被映射到片内程序空间 10-SARAM 被映射到片内数据空间 11-SARAM 被映射到片内程序空间,又被映射到片内数据空间4.1.2器件标识号寄存器(DINR) 映射到数据存储器空间701Ch。

      各位意义:位15-4:DIN15-DIN4为DSP器件的器件标识号(DIN)令于碱唤赵怜岸哨婆奥氖翁烧岭扦峪馆痢琶蛊帚涵枪隧沾塑殿昌采卒啃条第4章统配置与中断第4章统配置与中断10 位3-0:DIN3-DIN0为所用DSP的器件的版本、 给定值 不同型号的DSP所对应的DIN15-DIN0的值如下:器件 版本 DIN15-DIN0LF2407 1.0-1.5 0510hLF2407 1.6 0511hLF2407A 1.0 0520h LC2406A 1.0 0700hLC2402A 1.0 0610h 氏阅羡巢钝离粉夷亿颐礁腥鞘诈客八琢锚揪敖囱眯凉兴瀑雨陕破宋狭塔朽第4章统配置与中断第4章统配置与中断11 4.2 中断优先级和中断向量表LF2407 DSP具有3个不可屏蔽中断和6个级别的可 屏蔽中断(INT1-INT6)对多个外设的中断需求采用了中断扩展设计来满足 在每级可屏蔽中断(INT1-INT6)中又有多个中断 源,有唯一的中断入口地址向量。

      表4.2(P34)-不可屏蔽中断源的优先级和中断入 口地址向量表表4.3(P34)-可屏蔽中断源的优先级和中断入口地 址向量表鳃徐甸罢窃癸谓拙晌抨嵌雄楔莉泥拳添油隆茧抢珐村膳锰坛拢撑当唉警摈第4章统配置与中断第4章统配置与中断12 表4.2 不可屏蔽中断(3个)中断优先级 中断名称 外设中断向量 描述 1 Reset 0000h 复位引脚和WD溢出 2 保留 0026h 仿真陷阱 3 NMI 0004h 软件中断斋贷姥臆峰贩变抹垄咖秩梳绦胶案辽己丁揉作签板疡缴树壤嘻盅潦辊焚渗第4章统配置与中断第4章统配置与中断13 表表4.3 INT1(4.3 INT1(级别级别1 1))中断优先级 中断名称 外设中断向量 描述 4 PDPINTA 0020h 4 PDPINTA 0020h 功率驱动保护中断 5 PDPINTB 0019h 5 PDPINTB 0019h 功率驱动保护中断 6 ADCINT 0004h 6 ADCINT 0004h 高优先级ADCADC中断 7 XINT1 0001h 7 XINT1 0001h 高优先级外中断 8 XINT2 0001h 8 XINT2 0001h 高优先级外中断 9 SPINT 0005h 9 SPINT 0005h 高优先级SPISPI中断 10 RXINT 0006h 10 RXINT 0006h 高优先级SCISCI接收中断 11 TXINT 0007h 11 TXINT 0007h 高优先级SCISCI发送中断 12 CANMBINT 0040h 12 CANMBINT 0040h 高优先级CANCAN邮箱中断 13 CANERINT 0041h 13 CANERINT 0041h 高优先级CANCAN错误中断昏臻菩玛逼皿砾荫鄂权湿世驾瓢俩淆漏力宰爷另济猫葱桥图籽徊促脉纸均第4章统配置与中断第4章统配置与中断14 INT2(INT2(级别级别2 2))中断优先级 中断名称 外设中断向量 描述 14 CMP1INT 0021h 14 CMP1INT 0021h 比较器1中断 15 CMP2INT 0022h 15 CMP2INT 0022h 比较器2中断 16 CMP3INT 0023h 16 CMP3INT 0023h 比较器3中断 17 T1PINT 0027h 17 T1PINT 0027h 定时器1周期中断 18 T1CINT 0028h 18 T1CINT 0028h 定时器1比较中断 19 T1UFINT 0029h 19 T1UFINT 0029h 定时器1 1下溢中断 20 T1OFINT 0029h 20 T1OFINT 0029h 定时器1 1上溢中断 21 CMP4INT 0024h 21 CMP4INT 0024h 比较器4 4中断 22 CMP5INT 0025h 22 CMP5INT 0025h 比较器5 5中断 23 CMP6INT 0026h 23 CMP6INT 0026h 比较器6 6中断刃谰撵兆彼娠匣叶纽扦鞠昨懈志贷府旅锡熟祖炉涸允款投旷炭乾南墓眼搂第4章统配置与中断第4章统配置与中断15 续续INT2(INT2(级别级别2 2))中断优先级中断优先级 中断名称中断名称 外设中断向量外设中断向量 描述描述 24 T3PINT 002Fh 24 T3PINT 002Fh 定时器定时器3 3周期中断周期中断 25 T3CINT 0030h 25 T3CINT 0030h 定时器定时器3 3比较中断比较中断 26 T3UFINT 0031h 26 T3UFINT 0031h 定时器定时器3 3下溢中断下溢中断 27 T1OFINT 0032h 27 T1OFINT 0032h 定时器定时器3 3上溢中断上溢中断瓜旧膨棋岔浅故懊噎启蔷拉宪卤绘疹瞬既产惑兽氧团莹铆夸沧螟卜术滥量第4章统配置与中断第4章统配置与中断16 INT3(INT3(级别级别3 3))中断优先级 中断名称 外设中断向量 描述 28 T2PINT 002Bh 28 T2PINT 002Bh 定时器2 2周期中断 29 T2CINT 002Ch 29 T2CINT 002Ch 定时器2 2比较中断 30 T2UFINT 002Dh 30 T2UFINT 002Dh 定时器2 2下溢中断 31 T2OFINT 002Eh 31 T2OFINT 002Eh 定时器2 2上溢中断 32 T4PINT 0039h 32 T4PINT 0039h 定时器4 4周期中断 33 T4CINT 003Ah 33 T4CINT 003Ah 定时器4 4比较中断 34 T4UFINT 003Bh 34 T4UFINT 003Bh 定时器4 4下溢中断 35 T4OFINT 003Ch 35 T4OFINT 003Ch 定时器4 4上溢中断隅磨地货厌给靡颗闻睡酱潍棠斤寂录感剥语挣严幽菊略压盯撕纵啄界顾人第4章统配置与中断第4章统配置与中断17 INT4(INT4(级别级别4 4))中断优先级 中断名称 外设中断向量 描述 36 CAP1INT 0033h 36 CAP1INT 0033h 比较器1 1中断 37 CAP2INT 0034h 37 CAP2INT 0034h 比较器2 2中断 38 CAP3INT 0035h 38 CAP3INT 0035h 比较器3 3中断 39 CAP4INT 0036h 39 CAP4INT 0036h 比较器1 1中断 40 CAP5INT 0037h 40 CAP5INT 0037h 比较器2 2中断 41 CAP6INT 0038h 41 CAP6INT 0038h 比较器3 3中断各厅钠镊陵拣寄萎侦驻固蛆睦拔贸势由妒盐彼畏砌之举沙兴抡哥奸帘浚练第4章统配置与中断第4章统配置与中断18 INT5(INT5(级别级别5 5))中断优先级 中断名称 外设中断向量 描述 42 SPINT 0005h 42 SPINT 0005h 低优先级SPI中断 43 RXINT 0006h 43 RXINT 0006h 低优先级SCI接收中断 44 TXINT 0007h 44 TXINT 0007h 低优先级SCI发送中断 45 CANMBINT 0040h 45 CANMBINT 0040h 低优先级CAN邮箱中断 46 CANERINT 0040h 46 CANERINT 0040h 低优先级CAN错误中断调挣附皇卧弧俞茁制鸭敬绽溉川瘪插欣膝柑坷阅琐坏逸惜庚翻银鬃遂返栗第4章统配置与中断第4章统配置与中断19 INT6(INT6(级别级别6 6))中断优先级 中断名称 外设中断向量 描述 47 ADCINT 0004h 低优先级ADC中断 48 XINT1 0001h 低优先级外中断 49 XINT2 0011h 低优先级外中断 N/A TRAP 0022h 陷阱中断 N/A 假中断向量 0000h 假中断向量谜吩赠费靶傀模猖盼畸狮胚吗藏呜掂株龄熬宛逾纵误历柒恒帐呵耙肠易腿第4章统配置与中断第4章统配置与中断20 4.3 外设中断扩展控制器LF240x CPU内核提供给用户: 6级可屏蔽中断 INT1-INT6。

      每1级别又包含多个外设中断请求,所以用一个外 设中断扩展(PIE)控制器专门来管理来自各 种外设或外部引脚的数十个中断请求图4.4为外设中断扩展模块图俱版抢侄褪阐绸宰莲报绞鸵泞讼灌准终渐亦镜蹋窒炯急刃乳胚出窒缸晌拽第4章统配置与中断第4章统配置与中断21 两级两级方式方式响应响应中断中断妈坝捏丸皖揪酶斗桃愉贝渭萌趁玛品绑辟婚慑向颁艰楞禁椰腔备奏勃下畸第4章统配置与中断第4章统配置与中断22 4.3.1 中断请求层次和结构外设中断个数很多,用一个两级中断结构来扩展可响应的中断个数中断请求/应答硬件逻辑和中断服务程序软件都有两级层次的中断在低层次中断,从几个外设来的外设中断请求(PIRQ)在中断控制器处进行或运算,产生一个INTn(n=1-6)中断请求在高层次中断,从INTn中断请求产生一个到CPU的中断请求宫毁刚柱爷詹伐揍酌毖运社谊日淘杖钎虏骂瞄左故金产屠辞奸搽略褪制缚第4章统配置与中断第4章统配置与中断23 如果一个引起中断的外设事件发生且相应的中断使能位被置1,则会产生一个外设到中断控制器的中断请求如果一个外设既可产生高级的中断请求,又可产生低级中断请求(如SCI、SPI、ADC等),对应的中 断优先级位的值也被送到PIE来进行判断。

      中断请求(PIRQ)标志位一直保持到中断应答自动清除或用软件将其清除秆犬旗罕院凝傅馈剔雅劣挫纵眺菠胸眺诡棍盔厨磨骇歉垫图骑余离掉晨打第4章统配置与中断第4章统配置与中断24 在高层次中断,或逻辑运算的多个外设中断请求 INTn产生一个到CPU的中断请求,它是2个CPU时钟脉冲宽的低电平脉冲当多个外设同时发出中断请求时,CPU总是响应优先级高的中断请求注意:外设中断请求标志位是在CPU响应中断时自动清除,即在高层次中断时清0,而不是在低层次中断时,清0瞒夯渍戊忽夹宝坯程侠家绑闭朗蜗宴衍抢辖涸左边拍闪憾雄砰气云股肪标第4章统配置与中断第4章统配置与中断25 4.3.2 中断向量当CPU接受中断请求时,它并不知道是哪一外设事 件引起的中断请求为了使CPU能够区别不同外设引起的中断事件,需经PIE译码,决定哪个中断请求被响应某个外设的中断请求有效时,都会产生唯一的外 设中断向量,被装载到外设中断向量寄存器 (PIVR)CPU应答外设中断请求时,从PIVR中读取相应的中断向量,并产生一个转到该中断服务子程序(GISR)入口的向量苍饲麓搓犯灸寐睫鸳酚舜甫策燎诧具臃三硕婴矗良啦猎藏墨聪绸桔届箱搪第4章统配置与中断第4章统配置与中断26 LF240x有两个中断向量表, CPU向量表和外设向量表。

      CPU向量表用来得到响应中断请求的一级通用中断服 务子程序(GISR)外设向量表用来获取响应某外设事件的特定中断服务子程序(SISR)在一级通用中断服务子程序GISR中可读出PIVR中的 值,保护现场后,用PIVR中的值来产生一个转到SISR的向量例如,可屏蔽中断XINT1(见表4.3,高级模式级别为INT1,优先级为7)产生一个中断请求,CPU对其响应这时,0001h(XINT1的外设中断向量)被装载到PIVR中逾酶温肘矾赁哮婶刽就几牌电狮莹耗绩厘吮厢身喳彩称炙启靖避丢础腆汐第4章统配置与中断第4章统配置与中断27 CPU获取被装载到PIVR中的值之后,用这个值来判断是哪一个外设引起的中断,接着转移到相应的SISR将PIVR中的值装载入累加器时需先左移,再加上一个固定的偏移量,然后程序转到累加器指定的地址入口,这个地址将指向SISR,从而执行XINT1的中断服务子程序应姐坯阀催研阶姐矢词哪唉辫曝碴足办猖衬姚合镶酪甲吻教温妊奔疏劫翱第4章统配置与中断第4章统配置与中断28 1.假中断向量如果一个中断应答被响应,但没有获得相应的外设的中断请求,那么就使用假中断假中断向量特性可以保证中断系统的完整性,从而使中断系统一直可靠安全地运行,而不会进入无法预料的中断死循环中。

      以下两种情况会产生假中断:(1) CPU执行一个软件中断指令INTR,使用参数1-6,用于请求服务6个可屏蔽中断(INT1-INT6)之一2) 当外设发出中断请求,但是其INTn标志位却在CPU应答请求之前已经被清0拴醚睦燃喀罚蔷尚漫艳裂总刚朱太剔锰熬彪踩膝充蹲凿莎剂瘟影错践宽呛第4章统配置与中断第4章统配置与中断29 在上述两种情况下,并没有外设中断请求送到中断控制器,因此中断控制器不知道哪个外设中断向量装入到PIVR,此时向PIVR中装入假中断向量0000h从而避免程序进入中断死循环中2.软件层次中断服务子程序有两级:通用中断服务子程序(GISR)和特定中断服务子程序(SISR)在GISR中保存必要的上下文,从外设中断向量寄存器(PIVR)中读取外设外设中断向量,这个向量用来产生转移到SISR的地址入口程序一旦进入特定中断服务子程序后,所有的可屏蔽中断都被屏蔽皆怒祭罗涨遗凉能煞墩下赢丘付铆饼马聚标谰宿缆孟甜坚划剩慢逝潘刀冯第4章统配置与中断第4章统配置与中断30 外设中断扩展(PIE)不包括象复位和NMI这样的不可屏蔽中断3.不可屏蔽中断LF240x DSP 无NMI引脚,在访问无效的地址时,不可屏蔽中断(NMI)就会发出请求。

      当NMI被响应后,程序将转到不可屏蔽中断向量入口地址0024h(见表4.2)处势示纽扭牢唐茄骸巾躁汕旦室博鲜寞型堕叔揉约撅手樱讣东梆父棺漱兹果第4章统配置与中断第4章统配置与中断31 4.3.3 全局中断使能状态寄存器STO中有一个全局中断使能位INTM,在初始化程序和主程序中,常常需要使用该位对DSP的全局中断进行打开和关闭操作特别是初始化过程中,需要关全局中断,而在主程序开始执行时,需要开全局中断关全局中断和开全局中断的汇编语言指令如下:SETC INTM;把INTM位置1,关全局中断CLRC INTM;把INTM位清0,开全局中断滓仟鞠桔犯衣苯扩嗓有慌蝶忽农槽宋睬椰株抒衷蚤嘴根吨菌棋俗累阉指谱第4章统配置与中断第4章统配置与中断32 执行完中断服务子程序后,一定要打开全局中断因为进入中断服务程序时,系统自动关中断所以从中断返回时需要重新打开全局中断注意:不允许中断嵌套4.4 中断响应的过程下面介绍某一外设中断请求的响应过程:(1)某一外设发出中断请求;(2)如该外设的中断请求标志位(IF)为1,且该外设的中断使能位(IE)为1,则产生一个到PIE控制器的中断请求;如果中断没有被使能,则中断请求标志位(IF)为1的状态保持到被软件清0。

      颇架两打堪棋妹灼套障哄跃袒塘粘外拙焚胖民料破符触汕团鸡硷慢园乳圆第4章统配置与中断第4章统配置与中断33 (3)如果不存在相同优先级(INTn)的中断请求,那么PIRQ会使PIE控制器产生一个到CPU的中断请求(INTn),为2个CPU时钟宽度的低电平脉冲4)中断请求设定CPU的中断标志寄存器(IFR),如果通过设置中断屏蔽寄存器(IMR) CPU中断已被使能,CPU会中止当前的任务,将INTM置1,以屏蔽所有可屏蔽的中断,保存上下文,并且开始为高优先级的中断(INTn)执行通用中断服务子程序(GISR)CPU自动产生一个中断应答,并向与被响应的高优先级中断的相应程序地址总线(PAB)送一个中断向量值例如,如果1NT2被响应了,它的中断向量0004h被装入PAB榴彤杜赢敞查堆佃遁淘铝岿奥翟士亨悄挚裹痈内挤坝塌旬柞裁桐玛错豪描第4章统配置与中断第4章统配置与中断34 (5)外设中断扩展(PIE)控制器会对PAB的值进行译码,并产生一个外设响应应答,清除与被应答的CPU中断相关的PIRQ位外设中断扩展控制器然后将相应的中断向量(或假中断向量)载入外设中断向量寄存器(PIVR)当GISR已经完成了现场保护,然后就可读入PIVR,并使用中断向量,使程序转入到特定中断服务子程序(SISR)的入口处去执行。

      4.5 中断响应的等待时间中断响应的等待时间包括:外设同步接口时间、CPU响应时间、ISR转移时间涯逢祈懦翁别悲胀瞬萄浇却鼠宜学妆涤儡锦郡褥焚紧本演胆牲烈牺掂炸锯第4章统配置与中断第4章统配置与中断35 (1)外设同步接口时间是指PIE识别出外设发来的中断请求,经判断优先级、转换后将中断请求发送至CPU的时间2)CPU的响应时间指的是CPU识别出已经被使能的中断请求、响应中断、清除流水线、并且开始捕获来自CPU中断向量的第一条指令所花费的时间最小的CPU的响应时间是4个CPU指令周期3)ISR转移时间是指为了转移ISR中特定部分而必须执行一些转移所花费的时间该时间长短根据用户所实现的ISR的不同而有所变化灭绦途惦线佑储议言却挣瓢呆伊武骋料葱队朴牧畸蝉梨得哑卯巫徽狂陵皑第4章统配置与中断第4章统配置与中断36 4.6 CPU的中断寄存器CPU中断寄存器包括: (1)中断标志寄存器(IFR); (2)中断屏蔽寄存器(IMR)4.6.1 CPU中断标志寄存器(IFR)IFR映射到数据存储器空间为0006h各位意义如下: 位15-6:保留位 位5-0:分别为INT6-INT1的中断标志位 0-无INTn(n=1-6)的中断挂起, 1-表示有INTn(n=1-6)的中断挂起。

      敲驰月墙支速蓉车卢钙裔步陀岗典冲嫉库须殃斡燎炉帚卤烤欺隔缄用谍豆第4章统配置与中断第4章统配置与中断37 中断标志寄存器包含了所有可屏蔽中断INT6-INT1的标志位当一个外设发出可屏蔽中断请求时,中断标志寄存器的相应标志位被置1如果该外设对应中断屏蔽寄存器中的中断使能位也为1,则该中断请求被送到CPU,此时该中断正被挂起或等待响应读取IFR可以识别挂起的中断,向相应的IFR位写1将清除已挂起的中断CPU响应中断或复位都能将IFR标志清除作黄放泪簧衫狠沿蒲蝶疥垛跋浚酝申堪廖抑魔毋杯最舌占熊巡粘胸裤澳雾第4章统配置与中断第4章统配置与中断38 在对IFR操作时应注意以下几点:(1)要想清除某一IFR位,必须向该位写1,而不是 0;(2)当一个可屏蔽中断被响应时,只有IFR位被清 除,而相应的外设控制寄存器中的中断请求标 志位不会被清除如果需要清除这些标志位, 应该使用软件来清除3)当通过INTR指令来请求中断,且相应的IFR位 被置1时,CPU不会自动清除该位,该位必须由 软件来清除像诈该威哀粉微坍意驰省粘苟屎缝财沾江沼轮旗辱准岭臃丫化惦早引趟写第4章统配置与中断第4章统配置与中断39 (4)IFR和IMR控制的是核心级的中断,所有外设在 它们各自的配置/控制寄存器都有相应的中断 屏蔽和标志位。

      4.6.2 CPU中断屏蔽寄存器(IMR)IMR映射在数据存储器空间中的地址为0004h,各位意义如下:IMR中包含所有可屏蔽中断级(INT1-INT6)的屏蔽位,读IMR可以识别出已屏蔽或使能的中断级,而向IMR中写,则可屏蔽中断或使能中断为了使能中断,应设置相应的IMR位为1,而屏蔽中断时只需将相应的IMR位设为0位15-6:保留位位5-0:分别为INT6-INT1中断的屏蔽位 0-中断INTn被屏蔽 1-中断INTn被使能办嗽酥缚挂豺坎给向窥昼搓苍贡送耀扒统弱纯毖茶郴夸坯佛柴构琐铆剑设第4章统配置与中断第4章统配置与中断40 4.6.3 外设中断寄存器外设中断寄存器包括如下几种:•外设中断向量寄存器(PIVR)•外设中断请求寄存器0(PIRQR0)•外设中断请求寄存器1(PIRQR1)•外设中断请求寄存器2(PIRQR2)•外设中断应答寄存器0(PIACKR0)•外设中断应答寄存器1(PIACKR1)•外设中断应答寄存器2(PIACKR2)外设中断请求寄存器和外设中断应答寄存器都属于外设中断扩展模块用来向CPU产生INT1-INT6中断请求的内部寄存器这些寄存器用户只能对其读。

      竖引痢剪桅运寺岁堆砷虎悲段你傈住泳钞廊挥冉尝侦抢羔组莉棉糟喧内麻第4章统配置与中断第4章统配置与中断41 1.外设中断向量寄存器(PIVR)外设中断向量寄存器(PIVR)映射在数据存储器空间中的地址为701Eh,该寄存器的16位V15-V0,为最近一次被应答的外设中断的地址向量2.外设中断请求寄存器0(PIRQR0)外设中断请求寄存器0(PIRQR0)映射在数据存储器空间中的地址为7010h,寄存器的格式如下:位15-0:外设请求标志位IRQ0.15-IRQ0.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起馋泼涸炬供饵寓该颖缅妆娶焉逛强炳丫郑沟侧礁凭诵王盟怖垫象颊硼驾调第4章统配置与中断第4章统配置与中断42 注:写入1会发出一个中断请求到DSP核,写入0无 影响该寄存器16个位所对应的外设如表4.4所示3. 外设中断请求寄存器1(PIRQR1)外设中断请求寄存器1(PIRQR1)映射在数据存储器空间中的地址为7011h,该寄存器的格式如下:位15:保留位,读出为0,写入无影响位14-0:外设请求标志位IRQ1.14-IRQ1.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起脖第膊掂挫梨燃伎丝腑恒要浓锑说距崔貉粳呀寂缚饯孩勾谍馈柿激昌绿尊第4章统配置与中断第4章统配置与中断43 注:写入1会发出一个中断请求到DSP核,写入0无 影响。

      该寄存器16个位所对应的中断如表4.5所示4.外设中断请求寄存器2(PIRQR2)外设中断请求寄存器2(PIRQR2)映射在数据存储器空间中的地址为7012h,寄存器的格式如下:位15:保留位位14-0:外设请求标志位IRQ2.14-IRQ2.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起铃生彪种明序靡蜗锈镣材邯昨咐瘪羊靠淤谰咨棺男逢谊鹤堕毖笑乱肢擒嫩第4章统配置与中断第4章统配置与中断44 注:写1会发出一个中断请求到DSP核,写0无影响该寄存器16个位所对应的中断如表4.6所示5.外设中断应答寄存器0(PIACKR0)外设中断应答寄存器0(PIACKR0)映射在数据存储器空间中的地址为7014h,寄存器的格式如图4.10该寄存器16个位所对应的中断如表4.6所示6.外设中断应答寄存器1(PIACKR1)外设中断应答寄存器1(PIACKR1)的映射地址7015h,格式图4.11该寄存器各个位所对应的中断如表4.7所示锄冒砂承厅瓜隅源踩餐帅洋念凋襟亿搀练尖旦眠拨焕峰如北匹铡促薯倍讹第4章统配置与中断第4章统配置与中断45 7. 外设中断应答寄存器2(PIACKR2)外设中断应答寄存器2(PIACKR2)的映射地址7016h,该寄存器的格式如图4.12。

      该寄存器各个位所对应的中断如表4.8所示4.7 复位和无效地址检测4.7.1 复位LF2407 DSP器件有两个复位来源:(1)外部复位引脚的电平变化引起的复位;(2)看门狗定时器溢出引起的复位蹿痢监幽狐祝瓣潜善贺厌薄杖淬笨惫亩锗硬砾亦载蝉袄蔽遁终浊粕蝉瞥靳第4章统配置与中断第4章统配置与中断46 复位时,复位引脚被设置为输出方式,且被驱动为低,向外部电路表明LF240x器件正在自己复位4.7.2 无效地址检测无效地址是不可执行的地址(例如:外设存储器映射中的保留寄存器)LF240x一旦检测到对无效地址的访问,就将系统控制和状态寄存器1(SCSRl)中的无效地址标志位(ILLADR)置1,从而产生一个不可屏蔽中断(NMI)无论何时检测到对无效地址的访问,都会产生插入一个无效地址条件,无效地址标志位(ILLADR)在无效地址条件发生之后被置1,并一直保持,直到软件将其清除产生原因:是不正确的数据页面初始化斟年氧禾捉桶咸栅狸嗽肚机剐刺葱哭禁士康矛搞赊酗诗茫瞄碾弦磷屏响轿第4章统配置与中断第4章统配置与中断47 4.8 外部中断控制寄存器寄存器XINT1CR和XINT2CR为用来控制和监视XINT1和XINT2两个引脚状态的两个外部中断控制寄存器。

      在LF240x中,XINT1和XINT2引脚必须被拉为低电平至少6个(或12个)CLKOUT周期才能被CPU内核识别4.8.1 外部中断1控制寄存器XINT1CR映射到数据存储器空间的7070h,格式如下:位15:XINT1标志位在XINT1引脚上是否检测到一个所选择的中断跳变,无论中断是否使能,该位都可被置1诈秧汹食徽绞诬蹬瑶砖摆翟翻屿石记景体帮俭炯名吕雾涟渺逊戮栈舌万沫第4章统配置与中断第4章统配置与中断48 位2:XINT1极性该读/写位决定是在XINT1引 脚信号的上升沿还是下降沿产生中断 0-在下降沿产生中断 1-在上升沿产生中断位1:XINT1优先级该读/写位决定哪一个中断 优先级被请求 0-高优先级 1-低优先级 0-没有检测到跳变 1-检测到跳变位14-3:保留位锅池云竣霜玩幢筹晶狙室黔唐襄奋迪温脱喊鹰衔翠腻烽缝贿蘑裸菌有绒效第4章统配置与中断第4章统配置与中断49 位0:XINTl使能位该读/写位可使能或屏蔽外 部中断XINTl 0-屏蔽中断 1-使能中断指珠林谴督筒榴牲浮排轿足樱毒号连胜胃紊桔供么患幌槛毁瞪臀旱尤拦贞第4章统配置与中断第4章统配置与中断50 4.8.2 外部中断2控制寄存器XINT2CR映射到数据存储器空间的地址为7071h,各位意义:位15:XINT2中断请求标志位。

      该位表示在XINT2引 脚上是否检测到一个中断请求跳变,无论该 中断是否使能,该位都可以被置1当XINT2 的中断请求被应答时,该位被自动清0 0-没有检测到跳变 1-检测到跳变 软件向该位写1(写0无效)或器件复位时, 该位也被清0位14-3:保留位亿呐茨戈琐斗族沦袜桌筹状己仔碰耕躲竭昔岿搜盏合孟位虽褐摔冉愁酷归第4章统配置与中断第4章统配置与中断51 位2:XINT2极性该位决定XINT2引脚信号的上 升沿还是下降沿产生中断 0-在下降沿产生中断 1-在上升沿产生中断位1:XINT2的中断优先级 0-高优先级 1-低优先级位0:XINT2的中断使能位 0-屏蔽该中断 1-使能该中断顺郴领佯沪首蚤猪挝瞎瓜特敖碧姓拧化脓赖产溜链垣叼交馋渣挪孟含蚊变第4章统配置与中断第4章统配置与中断52 4.9 实现可屏蔽中断的例程通过一个例程来介绍如何编写实现可屏蔽中断的中断服务子程序,其中包括如何来建立中断向量表本例以通用定时器1产生1ms的定时为例来说明如何 实现可屏蔽中断。

      1ms的定时器1的周期中断(就是当计数器T1CNT计数计到与周期寄存器T1PR中的数相等时,即产生中断请求LF2407有6个可屏蔽的中断级INT1-INT6,每一级又有多个中断源为正确的响应中断,由前面的介绍,可以分两步来完成中断服务子程序倪荤刽空里衅蚕琐烦囱能尘壤器助法箱烁心人酉魔懂怠辛罩挂阁泣钓嘉撬第4章统配置与中断第4章统配置与中断53 通用定时器1的周期中断请求被响应时,CPU转移至对应INT2级别的一级通用中断服务子程序GISR2执行程序首先保护现场,再读取被锁存在外设中断向量寄存器(PIVR)中的该中断事件的向量地址偏移量,根据偏移量再跳到相应的中断服务子程序 SISR入口1.中断向量表的建立通用定时器1的周期中断属于INT2级别由于每一个中断都有一个其特定的中断向量入口地址,在建立中断向量表的时候一定要注意要把所有的中断向量都列出来,否则在寻找入口地址时要出错涉攘仙踌沁伞担短刚篡佰迅念损光灯豫寥抨改寒肿哟陀朽髓葵粒悦腰畏启第4章统配置与中断第4章统配置与中断54 下面的中断向量表列出了TMSLF2407的所有中断向量INT2的中断向量为0004h, 通用定时器1的周期中断T1PINT的外设中断向量为0027h。

      . .include “F2407REGS.h” ;引用头文件 . .def _c_int0;(1 1)建立中断向量表. .sect “.vectors” ;定义主向量段RSVECT B _c_int0 ;PM0 Reset Vector 1INT1 B PHANTOM ;PM2 Intlevel 1 4INT2 B GISR2 ;PM4 Intlevel 2 5 INT3 B PHANTOM ;PM6 Intlevel 3 6INT4 B PHANTOM ;PM8 Intlevel 4 7 欧敞如丈戒掘筛窘伯闭澳谤绕陌崭散迁厕催乍秃擂茸枯霸淤浮赢腐贸归锚第4章统配置与中断第4章统配置与中断55 INT 5 BPHANTOM ;PMA Intlevel 58INT 6 BPHANTOM ;PMC Intlevel 69RESERVED B PHANTOM ;PME (Analysis Int) 10SW_INT8 B PHANTOM ;PM10 User S/W int-SW_INT9 B PHANTOM ;PM12 User S/W int-SW_INT10 B PHANTOM ;PM14 User S/W int-SW_INT11 B PHANTOM ;PM16 User S/W int-SW_INT12B PHANTOM;PM18 User S/W int-SW_INT13B PHANTOM;PM1A User S/W int-SW_INT14B PHANTOM;PM1C User S/W int-SW_INT15B PHANTOM;PM1E User S/W int-SW_INT16B PHANTOM;PM20 User S/W int-TRAP B PHANTOM;PM22 Trap vectors-NMI B PHANTOM ;PM24 User S/W int 3EMU_TRAP B PHANTOM ; PM26 2SW_INT20 B PHANTOM ;PM28 User S/W int-SW_INT21 B PHANTOM ;PM2A User S/W int-沉恢搞菲耕墟致舰彬杜荆献扶龙锋腰尉聘豁两鞠抗矾夫刑睹全艇沏考桓竿第4章统配置与中断第4章统配置与中断56 SW_INT22B PHANTOM; PM2C User S/W int-SW_INT23B PHANTOM; PM2E User S/W int-SW_INT24B PHANTOM; PM30 User S/W int-SW_INT25B PHANTOM; PM32 User S/W int-SW_INT26B PHANTOM; PM34 User S/W int-SW_INT27B PHANTOM; PM36 User S/W int-SW_INT28B PHANTOM; PM38 User S/W int-SW_INT29B PHANTOM; PM3A User S/W int-SW_INT30B PHANTOM; PM3C User S/W int-SW_INT31B PHANTOM; PM3E User S/W int-答洲熄痰礼瘪捎郡讨靛仆具葡特怜蔼击盗酚插旺甄丑痢祭其次暂媒臣凯虾第4章统配置与中断第4章统配置与中断57 PVECTORS B PHANTOM ;子向量的地址偏移为0000h B PHANTOM ;子向量的地址偏移为0001h B PHANTOM ;子向量的地址偏移为0002h B PHANTOM ;子向量的地址偏移为0003h B PHANTOM ;子向量的地址偏移为0004h B PHANTOM ;子向量的地址偏移为0005h B PHANTOM ;子向量的地址偏移为0006h.sect “.pvecs”;定义各外设子向量段养倾昆巡闷鬃炮轻测邯墙阻跋音玛举多援煎群门镐眉打膛贯裔擞贞琐符弯第4章统配置与中断第4章统配置与中断58 B PHANTOM ;子向量的地址偏移为0007hB PHANTOM ;子向量的地址偏移为0008hB PHANTOM ;子向量的地址偏移为000AhB PHANTOM ;子向量的地址偏移为000BhB PHANTOM ;子向量的地址偏移为000ChB PHANTOM ;子向量的地址偏移为000DhB PHANTOM ;子向量的地址偏移为000EhB PHANTOM ;子向量的地址偏移为000FhB PHANTOM ;子向量的地址偏移为0010hB PHANTOM ;子向量的地址偏移为0011h财榴耸坷场瘸澈间傀锭胚臀茁敢扁骋尚施夜逗尊邱承吝曼疟线杜墅揖跪计第4章统配置与中断第4章统配置与中断59 B PHANTOM ;子向量的地址偏移为0012hB PHANTOM ;子向量的地址偏移为0013hB PHANTOM ;子向量的地址偏移为0014hB PHANTOM ;子向量的地址偏移为0015hB PHANTOM ;子向量的地址偏移为0016hB PHANTOM ;子向量的地址偏移为0017hB PHANTOM ;子向量的地址偏移为0018hB PHANTOM ;子向量的地址偏移为0019hB PHANTOM ;子向量的地址偏移为001AhB PHANTOM ;子向量的地址偏移为001BhB PHANTOM ;子向量的地址偏移为001Ch渊抛榷椰絮草掺牢赵播恩妄交刘狂杯浅帧烛倍辞爵且奸婆酷懈过秸估消望第4章统配置与中断第4章统配置与中断60 B PHANTOM ;子向量的地址偏移为;子向量的地址偏移为001DhB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为001EhB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为001FhB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0020hB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0021hB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0022hB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0023hB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0024hB PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0025B PHANTOM ;子向量的地址偏移为;子向量的地址偏移为0026h淫搀掌摩妙砧起快诌浸铝祭贮势蠕廉逝陛律询铱俘纪老妒粳社男蠕喳同陵第4章统配置与中断第4章统配置与中断61 B T1PINT_ISR ;子向量地址偏移为0027h,T1PINT中断B PHANTOM ;子向量地址偏移为0028h B PHANTOM ;子向量地址偏移为0029h B PHANTOM ;子向量地址偏移为002Ah B PHANTOM ;子向量地址偏移为002BhB PHANTOM ;子向量地址偏移为002Dh B PHANTOM ;子向量地址偏移为002Eh B PHANTOM ;子向量地址偏移为0030h侩潮戌接驯喘读靶暖贡揪镍右辫朋犁尤怯扛饲搭凰让竞饲雷雍璃喊换讨苞第4章统配置与中断第4章统配置与中断62 B PHANTOM ;子向量的地址偏移为0031h B PHANTOM ;子向量的地址偏移为0032h B PHANTOM ;子向量的地址偏移为0033h B PHANTOM ;子向量的地址偏移为0034h B PHANTOM ;子向量的地址偏移为0035h B PHANTOM ;子向量的地址偏移为0036hB PHANTOM ;子向量的地址偏移为0037hB PHANTOM ;子向量的地址偏移为0038h B PHANTOM ;子向量的地址偏移为0039h B PHANTOM ;子向量的地址偏移为003Ah文烘臀醇嘛惨抱佳剁铂嘛亿仔旱智擞欣烁篡糯滑触铬背诣贷孽螟能偷铬鸡第4章统配置与中断第4章统配置与中断63 B PHANTOM ;子向量的地址偏移为003Bh B PHANTOM ;子向量的地址偏移为003Ch B PHANTOM ;子向量的地址偏移为003Dh B PHANTOM ;子向量的地址偏移为003Eh B PHANTOM ;子向量的地址偏移为003Fh B PHANTOM ;子向量的地址偏移为0040hB PHANTOM ;子向量的地址偏移为0041h狄题喀涝格牙填扩忙敬间宾宴屯泳酌笑葬妨徐菊娃舶膏罐贪努稳渺臆鉴琐第4章统配置与中断第4章统配置与中断64 ;(2)主程序.text_c_int0SETC INTM ;INTM位置1,关总中断CLRC SXM ;CLRC OVM ;CLRC CNF ;B0区被配置为数据空间LDP #0E0H ;SPLK #81FEH,SCSR1 ;CLKIN=6MHz, ; CLKOUT=24MHzSPLK #0E8H,WDCR ;关闭WDTLDP #0 ;宜呸藻辕拐宴茁亦脓苟穷厌嘉纺帽萌语馅烧涡椭札骸莲植锤怂讥锐臼庞失第4章统配置与中断第4章统配置与中断65 SPLK #02H,IMR ;02H送IMR寄存器,使能优先级INT2SPLK #0FFFFH,IFR ;FFFFH送IFR寄存器,清中断标志LDP #DP_PF2;LDP #DP_EVA;SPLK #80H,EVAIMRA;使能T1PINT中断SPLK #0FFFFh,EVAIFR;清EVA中断标志SPLK #0,GPTCONA;SPLK #177h,TIPR ;数177h送定时器1的周期寄存器,T1 ;1ms产生一次中断SPLK #0,T1CNT ;T1CNT寄存器清0 SPLK #164CH,T1CON ;数164CH送T1CON寄存器,设置 ;定时器1输入踩耶欠秉肩芒则澜抱良哺蜕逆伴妇执语责导你淡狰纸靛隶刻茨邦耸神购锡第4章统配置与中断第4章统配置与中断66 CLRC INTM ;INTM位清0,开总中断 WAIT: NOP ;循环,等待通用定时器1的 ;周期中断 B WAIT ;;(3)中断服务子程序GISR2: ;优先级INT2中断入口 LDP #0E0H ;保护现场 LACC PIVR,1 ;读外设中断向量寄存器 ;(PIVR),并左移1位 ADD #PVECTTORS ;加上外设中断入口地址, BACC ;跳到相应的中断服务子程序入口匣揣终剁配跌检麓然蒋韵逞雪夺蔬抿窥夺乏象愚云恭捏浊胡召不焚柜客丑第4章统配置与中断第4章统配置与中断67 T1PINT_ISR: LDP#DP_EVA ;通用定时器1中断服务 ;子程序入口 SPLK#0,T1CNT ;0送T1CNT寄存器GISR2_RET: ;中断返回,恢复现场 CLRCINTM ;开总中断,因为一进入中 ;断就自动关闭总中断 RET ;中断返回(4)假中断程序PHANTOM KICK_DOG ;复位看门狗 RET ;中断返回 END ;结束够坡书霸盟汉氢婚羌硕酪臻域呢绪们疲耳寞傅楞挛届宋继哗向裸疥玛荷套第4章统配置与中断第4章统配置与中断68 由程序,当定时器1的T1CNT计数到177H,即1ms时间 到,就向CPU申请中断;如果这时没有其他的中断产生,则CPU接收中断申请。

      先在主向量段查表查到优先级INT2的中断向量入口 (GISR2),在GISR2中读取外设中断向量寄存器 (PIVR)中的中断地址偏移量为0027H,再加上子 向量段起始地址,通过查中断子向量段表,跳入 通用定时器1的中断入口(T1PINT_ISR)竹陶趴喝澄秀菜哩盯郝善赦扑儒松铸最磐钞正格敖辫甚脚雀睹照埂砖桃洼第4章统配置与中断第4章统配置与中断69 本例程中用到假中断PHANTOM假中断向量是保持中断系统完整性的一个特性当一个中断请求已被响应,但却无外设将该中断向量地址的偏移量装入外设中断向量寄存器(PIVR)时,假中断向量(0000h)则被装入PIVR,这种缺省保证了系统按照可控的方式进行处理如果要实现其它的中断,只须将需要的中断级打开即可在中断服务子程序中有对中断现场的保护和恢复中断现场主要是指DSP的状态寄存器ST0、ST1和在中断中用到的一些辅助寄存器AR0-AR7对需保护和恢复的内容,程序编写者可根据实际任务来确定由于在本中断服务子程序仅对DP指针进行了改变,所以只需保存状态寄存器ST0即可棚统喳祝不惦坷薯秀考秀汹整躬恶亨茨蔚鄙茁镭敷府孵奖弧邓秧矮胡腆业第4章统配置与中断第4章统配置与中断70 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.