1CPU与外设之间的数据传送控制方式(I/O控制方式)
通常有以下三种方式
1.查询方式
2.中断方式
3.DMA方式(在独立开辟的一个空间不由CPU控制,有DMA自己进行管理。实现存储器与外设的高速的数据传输方式)
主要讲中断:
中断请求---->中断仲裁---->中断响应---->中断处理---->中断返回(要保存现场)
中断处理流程:
1.中断控制器捕获当前外设发出的中断信号,通知SOC(中央处理芯片:片上系统)
2.SOC保存当前程序的运行环境,调用中断服务程序(ISR:一小段代码)进行处理中断
3.在ISR中通过读取中断控制寄存器、外设的相关寄存器来识别那一个中断触发,获取硬件中断号IRQ,跳转到相应的处理程序(详细完整的处理程序)来完成中断处理
4.清除中断:通过读写相关寄存器
5.恢复被中断的环境,继续执行(现场)
2440有60个中断源
一级中断源,二级中断源等的概念
图片中的所指示的单元为相应的寄存器
悬挂寄存器source pending(SUBSRCPND、SRCPND)清零方式为向相应的位写1.与 常规的清零方式不同。INTPND也是通过写1进行清0操作
INTOFFSET:这个寄存器用来表示INTPND寄存器中哪位被置1了,即INTPND寄存器中位为1时,INTOFFSET寄存器的值为x(x为0~31)
在清除SRCPND、INTPND寄存器时,INTOFFSET寄存器被自动清除。
具体内容详见芯片手册S3C2440
外部中断:
外部中断也有相关的寄存器EXTINTx,EINTMASK,EINTPEND三个寄存器
EXTINTx设置中断的触发方式低电平,高电平,上升沿,下降沿,边沿触发
EINTMASK
EINTPEND中断悬挂寄存器(相应中断触发,相应的位置1)读取此寄存器可以知道是那一个寄存器被触发了
关键字:ARM 裸机开发 中断原理
引用地址:
ARM裸机开发222440中断原理
推荐阅读最新更新时间:2024-03-16 14:56
ARM 非对齐的数据访问操作
非对齐的数据访问操作 对于Load/Store操作,如果是非对齐的数据访问操作,系统定义了下面3种可能的结果. 执行的结果不可预知. 忽略字单元地址的低两位,即访问地址为(address _and 0xffffffc)的字单元;忽略半字单元地址的最低位的值,即访问地址位(address _and 0xffffffe)的半字单元. 忽略字单元地址值种的低两位的值;忽略半字单元地址的最低位的值.有存储体统实现这种 忽略 .也就是说,这时该地址值原封不动的送到存储系统. 当发生非对齐的数据访问时,到底采用上述3种处理方法种的哪一种,是有各指令指定的.
[单片机]
第1天-ARM汇编指令BIC
BIC : 位清除 (Bit Clear) BIC{条件}{S} , , dest = op_1 AND (!op_2) BIC 是在一个字中清除位的一种方法,与 OR 位设置是相反的操作。操作数 2 是一个 32 位位掩码(mask)。如果如果在掩码中设置了某一位,则清除这一位。未设置的掩码位指示此位保持不变。 BIC R0, R0, #11 ; 清除 R0 中的位 0、1、和 3。保持其余的不变。 BIC 真值表 : Op_1 Op_2 结果 0 0 0 0 1 0 1 0 1 1 1 0 译注:逻辑表达式为 Op_1 AND NOT Op_2
[单片机]
GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析
在理解bootloader后,花些时间重新学习了开源软件的makefile和相关脚本之后,自己的u-boot移植工作也比较顺利的完成了: 移植环境: ubuntu 12.04 U-Boot 2012.07 (Nov 28 2012 - 20:05:48) arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q1-203) 4.3.3 GNU ld (Sourcery G++ Lite 2009q1-203) 2.19.51.20090205 我移植的uboot只支持nand flash,原因是手头没办法烧写nor flash
[单片机]
解读ARM7内核微控制器LPC2148以太网接口电路
嵌入式主控模块采用了基于ARM7TDMI-S内核的微控制器LPC2148,集成度非常高。内嵌40kB的片内静态RAM和512kB的片内 Flash存储器,片内集成ADC、DAC转换器,看门狗,实时时钟RTC,2个UART,2个I2C还有SPI等多个总线接口,及USB2.0全速接口。方便扩展USB接口、JTAG调试接口、触摸屏,外扩芯片少,而且采用超小的LQFP64封装,使得仪器的微型化得到了保证。而且电路相对简单,降低了开发和生产的成本。芯片可以实现最高60MHz的工作频率,有着较强的功能,能够满足嵌入式系统μC/OS—II及人性化的人机界面的要求。本设计中 LPC2148所有的接口都有使用。 以太网接口部分采用了具有
[单片机]
英特尔与ARM掀起芯片市场圈地战
导语:国外媒体撰文称,随着Windows 8的发布临近,英特尔和ARM之间的芯片大战也逐渐升温,双方都希望借助这款系统入侵对方的领地。 以下为文章全文: 正当PC厂商争相开发Windows 8平板电脑和PC之际,另外一场大战也在处理器市场悄悄点燃:一方是美国的英特尔,一方是英国的ARM,前者长期占据PC和服务器市场的霸主地位,后者则主导了智能手机和平板电脑市场。 随着微软新一代操作系统Windows 8的发布日渐临近,这两家芯片企业的斗争可能会继续升温:因为Windows将首次兼容ARM,帮助ARM进军英特尔的老巢;而由于该系统针对触摸屏进行了优化,也有望助力英特尔夺取更多平板电脑市场份额。 ARM和英特尔一直
[手机便携]
基于ARM和μC/OS的在线磷酸根离子监测仪设计
火力发电厂和大型工业锅炉,通常采用向炉水中添加少量磷酸盐以防止钙、镁水垢的生成,磷酸根浓度不够,不能有效防止结垢,磷酸根离子含量过高,会导致炉水的pH值变高。因此磷酸根离子浓度是炉水检测的重要参数。ARM处理器具备高性能、低功耗、低成本等优点,将其应用于在线磷酸根离子分析仪的管理控制系统,可以提高磷酸根分析仪的处理速度和精度。
1 结构及测量原理简介
磷酸根离子分析仪整体结构包括光路系统、水路系统和管理控制系统三个部分。
光路系统主要包括:专用的单色LED冷光源、比色皿和光电传感器。
水路系统由比色皿、柱塞泵、多通道切换阀、流通池、样水/标液切换阀、流量计、排污阀、溢流管等组成。
利用化
[嵌入式]
单片机p0口的工作原理解析
学习ARM嵌入式的时候,发现自己对以前学过的数模器件的知识遗忘了不少,按照我的进度本来应该继续学习ARM微处理器控制的课程,但想着后来势必还会遇到相同的问题所以就准备中断一下,杀回来把汇编和一些电路知识再总结一下,查漏补缺。如果有写的不合理的地方,还请多多指教。言归正传,先来一幅图片来引入今天要讲述的三个知识点: 锁存器(由一个D触发器构成) D:数据输入端; CP/CLK:时序信号输入端; Q:输出端; ~Q:反向输出端; 工作原理: 当D端输入数据信号,CP/CLK端没有时序信号时,Q和~Q端将不会有信号输出; 当D端输入数据信号,CP/CLK端有时序信号时,Q和~Q端有信号输出; 当D端和CP/CLK端同时有信号输
[单片机]
爱特梅尔基于ARM9产品支持Android操作系统
微控制器及触摸解决方案的领导厂商爱特梅尔公司(Atmel® Corporation)宣布其基于ARM®的产品SAM9G45和SAM9M10将支持Android™ 操作系统 ,应用于消费、工业和计算市场。爱特梅尔以32位ARM926处理器为基础的SAM9G45和SAM9M10 ARM9™器件现可兼容Android操作系统,为运行Android操作系统的SAM9M10-G45-EK板提供完整的板级支持包(board support package, BSP)。 Android操作系统正在成为嵌入式开发人员的首选操作系统,不仅用于手机和平板电脑市场,也包括家用电器、工业设备监视器和医疗设备等垂直市场。相比传统Linux®版本,
[单片机]