嵌入式系统 第六章 输入输出与技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 输入输出与中断技术 6.1 I/O 接口概述 6.2 CPU 与外设之间数据传送的方式 6.3 VIC 中断向量控制器 6.4 GPIO 6.1 I/O接口概述 I/O接口的作用 CPU与外设交换的信息 I/O接口的基本结构 I/O端口的编址 6.2 CPU与外设传送数据的方式 程序传送方式 中断传送方式 直接存储器存取传送方式(DMA) ARER Main, CODE, READONLY … LDR R0, =Portstate Back LDR R1, =Portdata LDR R2, [R0] TST R2, 0x01 BNE Back LDR R3, [R1] … … Portstate DCD 0x0000FFFA Portdata DCD 0x0000FFF8 6.3 VIC 中断向量控制器 ARM PrimeCellTM向量中断控制器; 最多32个中断请求; 16个向量IRQ中断; 16个优先级,可动态分配优先级; 可产生软件中断; ARM有7种模式并共享一个CPSR,CPRS中“I”位和“F”位分别用来控制IRQ模式和FIQ模式的使能。 当I=1,禁止IRQ中断,反之中断使能; 当F=1,禁止FIQ中断,反之中断使能; Vector_Init_Block LDR PC,Reset_Addr LDR PC,Undefined_Addr LDR PC,SWI_Addr LDR PC,Prefetch_Addr LDR PC,Abort_Addr NOP ;Reserved vector LDR PC,IRQ_Addr LDR PC,FIQ_Addr Reset_Addr DCD Start_Boot Undefined_Addr DCD Undefined_Handler SWI_Addr DCD SWI_Handler Prefetch_Addr DCD Prefetch_Handler Abort_Addr DCD Abort_Handler DCD 0 ;Reserved vector IRQ_Addr DCD IRQ_Handler FIQ_Addr DCD FIQ_Handler 中断处理程序 ARM 处理器有 FIQ 和 IRQ 两级外部中断,均是由低 (LOW) 电平信号激活进入内核程序。为响应一个中断, CPSR 中相应的中断使能位必须清空。 在以下方式中, FIQ 较 IRQ 有更高的优先级: ? 当发生多个中断时,首先处理 FIQ。 ? 处理 FIQ 造成禁用 IRQ,直至 FIQ 处理程序再次将其置为可用状态前禁止使用。这通常是通过在处理程序结束时将 CPSR 从 SPSR 中恢复来完成的。 FIQ 向量是向量表(在地址 0x1C 处)最后的入口,使得 FIQ 处理程序被直接放置在该向量位置并从该地址顺序执行。它避免了跳转以及相关的延迟,这一点非常重要,因为 FIQ 是为尽快处理中断而设计的。五个额外的 FIQ 模式的编组寄存器使得调用与处理程序之间的状态得以保存,从而又加快了其执行速度。 备注:中断处理程序必须包括清除中断来源的代码。 VIC控制寄存器: 1、中断选择寄存器 VICIntSelect (0xFFFFF00C): 该寄存器将32个中断请求分别分配为FIQ或IRQ。该寄存器的位分布基于VIC通道号,某位置“1”,表示该通道的中断设置为FIQ,否则为IRQ。如: VICIntSelec= VICIntSelec | (1通道号);或: VICIntSelec=0 2、中断使能寄存器 VICIntEnable (0xFFFFF010): 该寄存器用来使能已经分配的中断,该寄存器的位分布基于VIC通道号,某位置“1”,表示该通道的中断使能,否则为无效。如: VICIntEnable= VICIntEnable | (1通道号); 3、中断禁能清零寄存器 VICIntEnClr (0xFFFFF014):该寄存器用来禁能已经分配的中断,该寄存器的位分布基于VIC通道号,某位置“1”,表示该通道的中断禁能,否则为无效。如: VICIntEnClr= VICIntEnClr | (1通道号); 参数设置寄存器: 1、向量地址寄存器VICVectAddr(0xFFFFF030):该寄存器存放IRQ中断服务程序的地址,但该寄存器的值是从VICVectAddr0-15中复制得到的。 注:中断服务程序处理完毕后,必须清零该寄存器以便响应下一次中断。 VICVectAd

文档评论(0)

bhyq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档