免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 牛得花

【【十问嵌入式】】 免费嵌入式职业规划 视频教程 [复制链接]

论坛徽章:
0
发表于 2009-11-12 17:17 |显示全部楼层
几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。

     ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。

     我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin.

     在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。

     先不说中断控制器,只说ARM核心。正常情况下,ARM核都只是机械地随着pc的指示去做事情,当CPSR中的I和F位为1的时候,IRQ和FIQ全部处于禁止状态。无论你在irq pin和fiq pin上面发什么样的中断信号,ARM是不会理你的,你根本不能打断他,因为他耳聋了,眼也瞎了。

     在I位和F位为0的时候,当irq pin上有中断信号过来的时候,就会打断arm的当前工作,并且切换到IRQ模式下,并且跳到相应的异常向量表(vector)位置去执行代码。这个过程是自动的,但是返回到被中断打断的地方就得您亲自动手了。当你跳到异常向量表,处于IRQ的模式的时候,这个时候如果irq pin上面又来中断信号了,这个时候ARM不会理你的,irq pin就跟秘书一样,ARM核心就像老板,老板本来在做事,结果来了一个客户,秘书打断它,让客户进去了。而这个时候再来一个客户,要么秘书不断去敲门问,要么客户走人。老板第一个客户没有会见完,是不会理你的。

     但是有一种情况例外,当ARM处在IRQ模式,这个时候fiq pin来了一个中断信号,fiq pin是什么?是快速中断呀,比如是公安局的来查刑事案件,那才不管你老板是不是在会见客户,直接打断,进入到fiq模式下,并且跳到相应的fiq的异常向量表处去执行代码。那如果当ARM处理FIQ模式,fiq pin又来中断信号,又就是又一批公安来了,那没戏,都是执法人员,你打不断我。那如果这个时候irq pin来了呢?来了也不理呀,正在办案,还敢来妨碍公务。

    所以得出一个结论: IRQ模式只能被FIQ模式打断,FIQ模式下谁也打不断。

   在打不断的情况下,irq pin 或 fiq pin随便你怎么发中断信号,都是白发。

   所以除了fiq能打断irq以外,根本没有所谓中断嵌套的情况。

   但是再怎么说irq pin 和fiq pin加起来也就2根引脚,那这么多中断源,怎么办呢?不可能谁来了都直接来敲门吧。

    那么接下来该说谁来给irq pin或者 fiq pin发信号呢?上文中可以看到,是老板的客户,也可能是公安。这个事情就是由中断控制器来管理。

    拿最简单的2410/2440的中断控制器举例,这个中断控制器加一个子中断控制器,还有一个外部中断控制器管理了50多个中断资源,说穿了有50多个脚。这些脚除了外部中断都是规定了功能的,比如WDT、LCD、DMA等,这个功能不能改,因为2410/2440内部硬件连线决定了。

  当你WDT和DMA的中断都到来的时候,就会被送到SRCPND寄存器中,两个中断都在里面,那到底把哪一个送给ARM呢?这个时候先看INTMOD,也就 是模式,哪个是设置成为了快速中断,哪个就被送上去;那如果两个都是设置的快速中断呢?不可能,因为同一时间只能有一个中断可以被设成快速中断。所以,如果有快速中断,这个时候直接就给fiq pin发中断信号,打断ARM。

   那要是没有快速中断呢,这个时候就看INTMSK,看WDT和DMA有没有被屏蔽的,如果DMA在INTMSK被屏蔽了,那就只有WDT继续向上送了,如果都没有屏蔽,那么他们两个同进来到了PRIORITY优先级寄存器,在这里,根据优先级的设置,一定会分出一个高,一个低的优先级出来,高的那个就被送上去,送到了INTPND寄存器,所以INTPND随时随地有且只有一个一个中断在里面。只要INTPND里面有中断,irq pin就不会一直不断给ARM中断信号,当第一次发的时候,中断了ARM,这个时候ARM进入相应的异常向量,并处于IRQ模式,正在这个时候,INTPND仍然在不断的通过irq pin向ARM发中断信号,但是ARM这个时候已经处于IRQ模式,是不会理睬你的。当你中断处理完了,要退出IRQ模式了,这个时候小心了,如果你在退出IRQ模式之前不清除INTPND里面的中断位,当你刚退出IRQ模式,又被中断了,因为INTPND一直在发中断信号。所以在退出IRQ模式之前要清除INTPND里面的中断位。但是光清除INTPND里面的位还不行,因为SRCPND里面WDT和DMA的中断还在,当你刚清除完INTPND,结果SRCPND里面又选了一个出来又送到了INTPND里面。所以正确的处理方法是退出IRQ模式之前,一定要先清除SRCPND里相应的中断位,再清除INTPND里相应的位。那么请注意,SRCPND里面可能有多位,所以清除你已处理过的中断就行了,而INTPND里面只可能有一位,直接清掉就可以了。

论坛徽章:
0
发表于 2009-11-13 18:47 |显示全部楼层
顶起来

论坛徽章:
0
发表于 2009-11-16 10:47 |显示全部楼层
:wink:

论坛徽章:
0
发表于 2009-11-16 15:51 |显示全部楼层
顶起来

论坛徽章:
0
发表于 2009-11-16 17:45 |显示全部楼层
up!!!

论坛徽章:
0
发表于 2009-11-17 14:34 |显示全部楼层
www.upemb.com  尚观全新嵌入式课程网站

论坛徽章:
0
发表于 2009-11-17 18:51 |显示全部楼层
顶起来

论坛徽章:
0
发表于 2009-11-18 09:46 |显示全部楼层
:wink:

论坛徽章:
0
发表于 2009-11-20 10:27 |显示全部楼层
喜讯!!11月20日起,报名尚观12月UEA嵌入式内核驱动开发课程,赠送价值为数千元的android课程。

尚观全力打造国内顶级嵌入式内核驱动-UEA课程的同时,全力开发当前嵌入式开发前沿技术android开发课程,您将领略当前国际最先进的技术,为您在职场和商业竞争中提供最强的助力。


及时更新您的技术,就是无线延长您的职业前途。


尚观android应用层开发高级课程详细介绍地址:

http://www.uplooking.com/page/android-pro.stm


尚观国内顶级UEA嵌入式驱动内核开发课程简介:

尚观嵌入式保就业长期班始于2005年9月
尚观为Intel软件服务提供商,可参加Intel多核认证

面向职位:嵌入式研发工程师、驱动工程师、ARM开发工程师、手机开发者

学员就业公司有:阿尔卡特朗讯、华为、中兴、中软、台湾台达集团、科达通讯、华亨、海思半导体、北京中星、风河、博世、龙芯、Moto Broadcom等智能设备及芯片提供商


S3C 2440芯片的智能手持设备(PDA)平台的技术特色:
1.全国唯一:从零开始手写至少5款驱动,真正的嵌入式核心培训,触摸屏驱动、LCD驱动、Nand Flash驱动、网卡驱动、音频设备驱动及相应的DMA驱动的编写。这是衡量嵌入式培训水平的唯一标准
2.全程Linux平台开发设计,人手一机,每天授课6小时,实践时间另加4小时
3.全程专业开发板设计与实践
4.全程使用开发板与触摸屏,让学员的设计能立刻看得到

课程内容概述:
-----------  第一部分 基础部分  -------------

        一、Linux系统基础与Shell编程                    
           二、专家C语言程序设计                                           
        三、数据结构与C语言结合的实际开发实例                          
        四、Linux应用程序 POSIX系统程序 设计                                        
        五、Linux网络程序 Socket套接字 程序设计                                         


------------  第二部分 高级部分   --------------
        六、C++程序设计及Linux平台常见C++应用                                      
        七、嵌入式应用程序设计 总和使用嵌入式环境进行POSIX等开发       
        八、ARM嵌入式开发与ARM体系结构、汇编、外围器件等设计      
        九、Linux设备驱动程序,写五种以上的驱动程序,从零开始写驱动
        十、基于S3C2440 ARM平台的 PDA智能大型项目全真开发项目  

点击:查看尚观详细UEA嵌入式内核驱动开发课程大纲!

论坛徽章:
0
发表于 2009-11-23 16:23 |显示全部楼层
顶起来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP