嵌入式arm学习总结(七)--中断-基于S3C2440

ARM串口(UART)的使用 (S3C2440) UART概述 通用异步收发器简称UART(Universal Asynchronous Receiver and Transmitter) 工作方式为:串行、全双工。 只需3根线:TXD(发送数据)、RXD(接收数据)、GND。 数据传输流程: 原来是高电平(空闲状态) 发送方拉低电平,保持1bit时间,为起始位。 接收方检测到起始位,然后通信双方按照波特率发送和接收5-8位数据。 若使用校验功... 阅读详情


1.中断执行过程

1)保存中断前PC值
2)保持中断前CPSR到spsr
3)修改CPSR的相应值,进入相应异常模式
4)执行异常
5)现将SPSR还原到CPSR
6)还原PC

   ARM硬件不支持相同异常中断嵌套
   如果相同异常嵌套,必须通过软件来保存CPSR和PC的值
   不同异常中断硬件支持嵌套

2.s3c2440的中断
共60个终端源,有五种中断触发方式


3.ARM中断响应过程--详细过程
中断初始化总共分为7步,只要初始化后,只要触发中断,那么程序直接跳入中断服务函数
第一步:配置I/O口为中断功能
第二步:配置外部中断触发模式
第三步: EINTPEND外中断挂起寄存器,清除时要写1相当于为0,清除中断请求标志,写0无效。可以不要,开机复位时自动为0.
第四步:EINTMASK外中断屏蔽寄存器,为0允许中断,为1屏蔽中断。是否屏蔽外中断
第五步:清除外部总中断标志:EINT8_23在寄存器SRCPND(中断源请求寄存器),目的允许中断
        如果是外部中断需要清两个寄存器,一个为EINTPEND和SRCPND寄存器相应位
第六步:设置中断服务函数,告诉CPU外中断8-23的入口地址
第七步:intmask总中断屏蔽寄存器,写0开总中断,EINT8_23开8-23外部总中断
第八步:前面设置完以后,就可以执行按键中断程序了,如果退出按键测试中断,那么往下执行

*********************************************************************************************************************************
void KeyScan_Test(void)
{

    //第一步:配置I/O口为中断功能
    rGPGCON = rGPGCON & (~((3<<0)|(3<<6)|(3<<10)|(3<<12)|(3<<14|(3<<22)))) | ((2<<0)|(2<<6)|(2<<10)|(2<<12)|(2<<14|(2<<22))) ;  
    //第二步:配置外部中断触发模式,配置为下降沿,寄存器设定EINT0-EINT23的触发方式  
    rEXTINT1  = (2<<0)|(2<<12)|(2<<20)|(2<<24)|(2<<28);                   
    rEXTINT2  = (2<<12);
    //第三步: EINTPEND外中断挂起寄存器,清除时要写1相当于为0,清除中断请求标志,写0无效。可以不要,开机复位时自动为0.               
    rEINTPEND |=   (1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19);  //clear  清除8,,11,13,14,15,19六个中端中标志位,允许中断
    //第四步:EINTMASK外中断屏蔽寄存器,为0允许中断,为1屏蔽中断。  是否屏蔽外中断
    rEINTMASK &= ~((1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19));  //enable
    //第五步:清除外部总中断标志:EINT8_23在寄存器SRCPND(中断源请求寄存器),目的允许中断
    //如果是外部中断需要清两个寄存器,一个为EINTPEND和SRCPND寄存器相应位
    ClearPending(BIT_EINT8_23);  
    //第六步:设置中断服务函数,告诉CPU外中断8-23的入口地址
    pISR_EINT8_23 = (U32)Key_ISR;

    //第七步:intmask总中断屏蔽寄存器,写0开总中断,EINT8_23开8-23外部总中断
    EnableIrq(BIT_EINT8_23); 
    //第八步:前面设置完以后,就可以执行按键中断程序了,如果退出按键测试中断,那么往下执行
   
}
*********************************************************************************************************************************

进入中断第一步:判断是哪一个中断,然后清除中断标志

ARM9架构S3C2440A实验报告与操作实践 本文还有配套的精品资源,点击获取 简介:本实验报告深入探讨了基于ARM920T内核的S3C2440A微处理器在嵌入式系统中的应用,特别关注了蜂鸣器、触摸屏和WinCE操作系统的实际运用。通过对S3C2440A关键组件的实验操作,加深了对嵌入式系统硬件原理及操作系统和驱动程序开发的理解,包括硬件控制、驱动程序编写、设备校准和操作系统部署等方面。本报告提供了详细的实验步骤、代码... 阅读详情

相关推荐

使用Keil MDK开发S3C2440:实现按键中断与LED、蜂鸣器控制

Keil MDK(Microcontroller Development Kit)是由Keil Elektronik GmbH开发的一款集成开发环境(IDE),广泛用于基于ARM处理器的嵌入式系统开发。Keil MDK提供了一整套的开发工具,包括编译器、调试器、性能分析器以及软件模拟器等,使得开发者能够高效地编写代码、调试程序和分析性能。S3C2440是一款广泛应用于嵌入式系统的ARM920T核心的处理器,由韩国三星公司设计。

weixin_35871529的博客 803

嵌入式-ARM-学习总结(7):按键与中断

嵌入式-ARM-学习总结(7):按键与中断一、按键1.S5PV210的按键2.按键的2中相应方法:轮询方式和中断方式3.按键对应的GPIO模式设置4.轮询方式处理按键的程序流程5.代码编写6.按键消抖二、中断1.什么是中断2.为什么需要中断3.异常向量表4.异常和中断的区别和联系5.为什么中断处理要先在汇编中进行6.中断的基本过程7.S5PV210中断处理的主要寄存器三、中断代码(1)绑定中断异常向量表(2)初始化中断控制器的基本寄存器(3)绑定我们写的isr到VICnVECTADDR寄存器(4)使能中断(

努力学习的花椰菜的博客 5207

S3C2440嵌入式系统裸机编程实战

htmltable {th, td {th {pre {简介:本课程旨在介绍基于Samsung S3C2440 ARM9微处理器的嵌入式系统裸机编程。该处理器广泛应用于智能家居和工业控制系统。裸机编程是一种不依赖操作系统的底层编程方法,有助于理解计算机硬件和操作系统原理。课程将使用MDK集成开发环境,提供从基础到实践的全面指导,包括GPIO操作、定时器应用等。通过具体实例如流水灯项目,初学者可以掌握嵌入式系统开发的关键技术。

weixin_35755562的博客 1043

ARM中C语言编程中断实验总结,ARM11外部中断C语言编程实现总结[参考].pdf

ARM11(3)——外部中断WF 2013.1.24最近正在学习 ARM11 (S3C6410 开发板)的外部中断部分,稍有心得,特此总结一些学习笔记,分享出来,献给那些像我一样正在 ARM11 上裸奔的嵌入式学徒们,同时也希望看到此文的业界前辈多多指教。外部中断基础知识总结:ARM11 (S3C6410 开发板)共有 187 根多功能 I/O 口,其中 127 根可用于...

weixin_29353947的博客 565

S3C2440嵌入式系统裸机开发教程全攻略

ARM9是ARM公司推出的一种32位RISC处理器架构,广泛应用于嵌入式系统领域。ARM9架构采用了经典的哈佛结构,具备分离的数据和指令总线,能够实现更高的处理效率。其核心设计注重于低功耗和高性能的平衡,这使得ARM9成为移动设备和网络设备的理想选择。通过一系列优化后,该系统在相同负载下的平均响应时间由优化前的50ms降低到了10ms,任务切换次数减少了50%,内存泄漏问题得到了彻底解决。从以上数据可以看出,性能优化取得了显著的效果。

weixin_36369848的博客 840

S3C2440嵌入式系统核心原理图与应用手册

S3C2440是基于ARM920T内核的一款广泛应用的处理器,是SAMSUNG半导体公司推出的。作为一款32位RISC处理器,它具备高性能与低功耗的特点,广泛应用于各种嵌入式系统,如智能手机、PDA、车载娱乐系统等。S3C2440作为一款广泛应用于嵌入式领域的处理器,提供了丰富的外围接口功能,以满足各种应用场景的需求。本章节将详细探讨S3C2440的GPIO接口以及I2C和SPI等串行接口的协议和编程实现。

weixin_42476987的博客 811

arms3c2440中断体系

  ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。     我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin.     在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。    先不说中断控制器,只说ARM核心。正常情况下,ARM核都只是机械地随着pc的指示去做事情,当CPSR中的I和F位

wyulyh的专栏 485

S3C2440开发板模拟U盘技术实现详解

本文还有配套的精品资源,点击获取 简介:本项目围绕基于Samsung S3C2440处理器的嵌入式开发板,通过技术实现模拟U盘功能。介绍S3C2440处理器的应用场景、ARM中断学习及U盘工作原理。详细阐述USB主机与设备模式、USB驱动开发、FIFO与DMA、FAT文件系统和中断处理等关键知识点,并提供USB通信的固件编程示例。学习者可通过实际项目资源深入理解嵌入式系统和...

weixin_36213081的博客 768

C语言-位运算

什么是位运算: 程序中的所有数据,在计算机内存中都以二进制的形式存储。所谓位运算就是直接对数据在内存中的二进制位进行操作。 C语言中的位运算符有: 与(&),或(|),取反(~),异或(^),移位(<< >>)以及组合运算符(&= |= ^= >>= <<=)。 一、位操作: 1、位与(&):...

雨纷飞_263 729

掌握ARM9与S3C2440核心板设计:原理图到PCB

ARM公司设计的处理器架构广泛应用于嵌入式系统中,以低功耗、高性能和低成本闻名。ARM架构采用精简指令集计算(RISC)原则,允许其在保持高效运算能力的同时降低能耗。在现代嵌入式系统设计中,电源管理模块是至关重要的。S3C2440微控制器作为一款广泛应用于便携式设备和移动设备的处理器,其电源管理模块的设计目标是确保系统运行的稳定性和持久性,同时最小化能耗。电源管理涉及的主要原则包括:能效优化:合理地分配和管理电力资源,以提供最优的处理性能和最低的能耗。动态电源调整。

weixin_35916518的博客 973

三星S3C2440芯片中文技术手册精要

本文还有配套的精品资源,点击获取 简介:三星S3C2440是一款基于ARM920T内核的微处理器,广泛应用于嵌入式系统等领域。它具备高效能、低功耗和丰富的外围接口。本手册提供了关于S3C2440芯片处理器内核、内存系统、外设接口、电源管理、定时器和中断控制器、显示控制器、音频和视频功能、安全特性等关键知识点的详细介绍,是理解和应用S3C2440的重要参考资料。 1...

weixin_42612405的博客 1298

s3c2410 中断异常处理(转)

ARM920T的异常向量表有两种存放方式,一种是低端存放(从0x00000000处开始存放),另一种是高端存放(从0xfff000000处开始存放)。关于为什么要分两种方式进行存放这点我将在介绍MMU的文章中进行说明,本文采用低端模式。ARM920T能处理有8个异常,他们分别是:Reset,Undefined instruction,Software Interrupt,Abort (prefet...

weixin_34107955的博客 362

【keras】走近VGG16卷积神经网络

        VGG16是一个16层的卷积神经网络模型,输入数据的维度为224*224*3,即长宽均为224像素的RGB彩色图片,VGG16模型的权重由ImageNet训练而来。由于其具有简单实用的优点,因此,在图像分类和目标检测任务中得到了较为广泛的应用。 1.卷积神经网络的基本概念 1.1卷积         简单的将其理解为一种数学运算,具体的计算过程如下图所示:       ...

XYZ 1万+

S3C2440系统中断

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.youkuaiyun.com/mr_raptor/article/details/6556186 ++++++++++++++++++++++++++++++++++++++++++ 1.1   S3C2440系统中断 CPU和外设构成了计

mr_raptor的专栏 1万+

汽车级智能栅极驱动器深度解析 | 连载01:DRV871x-Q1系列产品架构与核心特性

集成度:单芯片集成多通道驱动器、电源管理、电流检测智能化:自适应控制算法,减少外部元件可靠性:多重保护机制,满足汽车级要求灵活性:SPI和硬件两种接口,适应不同应用需求。

VehSwHwDeveloper的博客 1153

安装Anaconda和Labelme的教程

1 登录Anaconda官网,选择Download https://www.anaconda.com/distribution/ 2 选择你想下载的Python版本,选择你的操作系统和位数,然后点击Download按钮就开始下载了 3 开始安装 下面两个框框都勾选 点击next,等待安装成功 打开Anaconda Navigator 点击红色圈圈的按钮 在cmd中输入 (1)创建虚拟环境 conda create -n labelme python=3.6 (2)激活虚拟环境 conda activa

qq_42178122的博客 3811

【ucos】ucos移植到s3c2440

一、ucos简介 ucos是micrium开发的一款专门针对MCU的嵌入式操作系统,具有优秀的性能。之前上大学的时候学过一门嵌入式系统相关的课程,书本上也是用ucos这款操作系统作为范例来进行讲解学习的,可见这个操作系统是得到业界的一致认可的。我最早接触到嵌入式操作系统也是这个。如今网上可以查到非常多的ucos移植资料,包括将它移植到各种各样的平台上。如果想看纯净的未修改过的代码的话,可以到官网去下载源码(https://www.micrium.com/downloadcenter/),官网提供不同...

心城追梦的博客 1647

基于LightGBM和多模型融合的量化交易研究:沪深300为例【附代码】

📊 数据科学与大数据专业 | 数据分析与模型构建 | 数据驱动决策✨ 专业领域:数据挖掘与清洗大数据处理与存储技术机器学习与深度学习模型数据可视化与报告生成分布式计算与云计算数据安全与隐私保护💡 擅长工具:Python/R/Matlab 数据分析与建模Hadoop/Spark 大数据处理平台SQL数据库管理与优化Tableau/Power BI 数据可视化工具TensorFlow/PyTorch 深度学习框架✅数据科学与大数据技术毕业论文【数据】

lagougongzuoshi的博客 1670

arm启动文件2440init.s分析

最近整理电脑,找到了一些当初学习嵌入式linux时的资料,现在共享出来。方便大家学习之用,无所谓原创,无非就是在前人的基础上,进行了系统化的分析和综合而已。不过,还是加入了不少个人学习的思路跟方法,我觉得这才是最重要的。本来想共享到百度文库,赚点积分的,无奈百度嫌我格式太乱不允许上传,就直接复制到这里了,呵呵! 最近在学习嵌入式软件,现分享自己部分成果。平台:s3c2440 mcu

独舞风 2857

yolov5 FPGA实现及verilog代码仿真

本文介绍了一种基于FPGA的卷积神经网络加速器设计,采用混合架构实现网络功能。该系统将训练和图像预处理等复杂计算保留在PC端执行,仅将主干网络部署在FPGA上。由于片上资源限制,建议通过外接DDR存储扩展容量。文章提供了完整的Verilog HDL源码,包括卷积单元(convUnit)、卷积层(convLayerSingle)和处理单元(processingElement)等核心模块,均已通过仿真验证。该设计采用流水线结构,使用浮点运算单元实现卷积计算,支持32x32图像输入和5x5卷积核处理。系统架构图中

QQ_778132974的博客 576

简谈基于FPGA的千兆以太网设计

简谈基于FPGA的千兆以太网设计 今天给大侠带来简谈基于FPGA的千兆以太网设计,话不多说,上货。 今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较高级的内容了,有些大侠肯定会感觉以太网学习起来非常不容易。其实,我可以告诉大家,前期学习的基础打扎实了,后期的学习也没那么难。总之就是说难没那么难,说容易也不是那么容易。那么,言归正传,下面让我们一起来聊一聊以太网的学习。 说起以太网,大家可能就会想到百兆以太网、千兆以太网以及万兆以太网等等。局域以太网从10M开始发展,经历几多的变迁,发展到现

3620

嵌入式linux----ARM入门,熟悉ARM处理器S3C2440

ARM(Advanced RISC Machines),是一个公司的名字,也是对一类微处理器的统称,也可以是一种技术的名字。ARM公司设计了很多处理器,他们根据内核的不同划分到各个系列中,系列划分是基于ARM7、ARM9、ARM10、ARM11内核的,在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。 ARM7内核是冯诺依曼体系结构,数据和指令使用同一条总线,内核有一条3级流水...

fcglx的博客 2071

npm install failed如何办?

上网搜索,说是网络配置不太对。按照如下几步,保证解决问题。在运行npm install指令时,出现如下错误。

xiezhipu的博客 879

典型ARM嵌入式Linux设备启动流程-S3C2440,S5PV210,AM3352x

导读:本文将以主流学习芯片为例,梳理以下典型的嵌入式Linux设备的启动流程,目前比较流行的学习型芯片有S5PV210、S3C2440、IMX6ULL、STM32MP157 目录1、S3C24402、S5PV2103、IMX6ULL4、STM32MP157 1、S3C2440 2、S5PV210 3、IMX6ULL 4、STM32MP157 ...

weixin_49406295的博客 3670

【100%通过率】华为od机试C卷【部门人力分配】Python 实现

当前部门需要完成 N 个需求,需求用 requirements[i] 表示,requirements[i] 表示第 i 个需求的工作量大小,单位:人月。2:明显这个人力需求值有上下限的情况下【下限为requirements中的最大值,上限为requirements中的最大两个值相加(因为最多有两个需求同一个月开发)】,可以考虑使用二分法。当选择人力为6时,2个需求量为3的工作可以在1个月里完成,其他2个工作各需要1个月完成。当选择人力为5时,4个工作各需要1个月完成,一共需要4个月才能完成所有需求。

MISAYAONE的博客 2020

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 嵌入式arm学习总结(六)--S3C2440体系架构学习总结
下一篇: 嵌入式arm学习总结(八)--存储知识-nandflash-norflash-基于MINI2440平台
杨毅
博客等级 码龄14年 26粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值