精华内容
下载资源
问答
  • 中断和函数调用的异同
    千次阅读
    2020-03-28 10:01:22

                                                                               中断和函数调用的异同

    1、中断分为:软中断和硬件中断

         1)软中断:上层应用调用底层接口(以linux操作系统为例,在上层open函数,可以调用到kernel中的open函数)

         2)硬件中断:芯片比如SOC、MCU等IO口可以设置为中断功能,实现已外部通信功能;

    2、函数调用:一个函数调用另外一个函数

    更多相关内容
  • 中断服务函数和普通函数区别

    千次阅读 2021-09-03 01:04:23
    首先,调用子程序过程发生的时间是已知固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知固定的。而中断过程发生的时间一般的随机的,CPU在执行某一主

    相同点

    • 两者都需要保护断点(即下一条指令地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。
    • 两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。

    不同点

    • 两者的根本区别主要表现在服务时间与服务对象不一样上。
    • 首先,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知和固定的。而中断过程发生的时间一般的随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;
    • 其次,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系;
    • 再其次,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完成中断处理的过程;
    • 最后,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级数不会很大。
    • 不能返回值;不能向ISR传递参数;ISR应该尽可能的短小精悍;
    展开全文
  • 中断和函数调用的区别

    千次阅读 2015-09-01 11:06:35
    中断和函数调用的区别   转载▼ 标签:  中断   函数 分类: C/C++ 中断: 1)何时发生可能是不可预料的;CPU正在处理某件事情的时候,外部发生的某一事件(如一个...

    中断和函数调用的区别

     
    标签: 

    中断

     

    函数

    分类: C/C++
    中断:
    1)何时发生可能是不可预料的; CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作
    2) 对于可剥夺型内核,完成中断调度后,不是立刻返回原来的执行点执行,而是 回到就绪态优先级最高的任务开始运行。
    3) 没有返回值;
    4)不能传递参数。

    函数:
    1)何时发生是可预料的;
    2)完成函数调度后会返回到原来的代码片段继续执行;
    3)有返回值;
    4)能传递参数。

    相同点:
    1)在执行调度之前,都保存现场;
    2)都是调用一个subcode。
    展开全文
  • 51在上电后,PSW的RS两个位默认为0,也即51默认使用工作寄存器组BANK 0,在默认状态下,对于普通的C语言函数,其传参、申请局部变量、导出函数的返回值等功能,keil将其翻译成汇编以后,肯定要使用R0~R7;...

    注:本文参考自https://blog.csdn.net/q2631837575/article/details/78776567

    51在上电后,PSW的RS两个位默认为0,也即51默认使用工作寄存器组BANK 0,在默认状态下,对于普通的C语言函数,其传参、申请局部变量、导出函数的返回值等功能,keil将其翻译成汇编以后,肯定要使用R0~R7;对于51的中断服务函数,它没有形参,也不用返回值,但是一般肯定有局部变量,这时就需要用到R0~R7了;试想,在执行普通函数时,R0~R7已经被使用了,在执行普通函数时,一旦发生中断,而中断函数也需要使用R0~R7,那怎么办?我们最先想到的是,在执行中断服务函数前先把R0~R7入栈(像累加器A、状态PSW等也要入栈这个不用说大家也知道),在中断服务完成后把R0~R7出栈,然后就能恢复现场,回到普通函数中去了,但是这8个Rn不能直接入栈,PUSH R0这样的语句是不允许的,要想R0入栈只能用两句:MOV A R0; PUSH A;这样的后果是,每次工作寄存器入栈都需要2*8=16条汇编语句才能完成,再加上A、B、PSW等寄存器入栈等,相当于每次中断都要消耗大量的时间来出栈入栈,影响程序速度。如何解决这一问题呢?51提供了这样一种机制,切换工作寄存器组,过程如下:

        普通函数的执行过程中正在使用BANK0的R0~R7,执行过程中突然发生了中断,而中断函数也想使用R0~R7,在执行中断服务函数前,我们切换工作寄存器组,切换的具体方法就是直接修改PSW的RS两个比特位,而不必把BANK 0入栈,本文开头的例子中using 2,就是说,在进入外部中断0的服务函数前,先入栈CPU寄存器,再把工作寄存器组由0切换成2,在退出中断服务后,先由BANK2切换回BANK0,并弹出CPU寄存器,由于BANK0和BANK2处在不同的RAM空间,互相不干扰,切换回BANK0之后就把那个普通函数的现场给恢复了。


    补图(过程图)

    展开全文
  • 中断函数和中断处理函数

    万次阅读 2014-10-22 13:52:37
    (1)当你在做一个计算机(嵌入式)系统时,在为系统做初始化时往往会有设置中断向量的操作。 当你设置好某个特定的外部事件(比如定时器超时)的中断向量后,当你允许(使能)了该设备(定时器),那么等到特定...
  • Linux中断和中断处理

    2021-01-09 15:38:55
     #在Linux中,中断程序为普通的C函数  3.上半部下半部的对照  #中断处理分为两部分:上半部下半部  #上半部:中断处理程序,接收到一个中断,立马运行  #下半部:同意稍后完毕的工作  4.注?中断处理...
  • 在《微机原理》《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过...
  • 嵌入式中断服务函数的一些特点

    千次阅读 2016-08-23 19:39:07
    中断服务程序需要满足如下要求:  (1)不能返回值;  (2)不能向ISR传递参数;  (3) ISR应该尽可能的短小精悍;... (4) printf(char * lpFormatString,…)函数会带来重入性能问题,不能在ISR中采用。
  • 函数调用,中断以及进程切换,的现场保护的区别

    千次阅读 多人点赞 2019-09-28 22:43:10
    首先,函数调用是预料范围内的代码执行,是完全可控的,当前执行的函数调用另外一个函数时,是从当前代码段通过跳转指令主动跳转到另外一个代码段,只需保存跳转之前的栈顶指针(fp),栈底指针(sp)到栈空间,保存跳转...
  • 中断函数

    千次阅读 2014-10-22 12:44:15
    C51的中断函数的格式为:void FuncIr(void) interrupt x [using y] 以下是梦游的一些分析:  一、中断函数是一个特殊的函数,没有参数,也没有返回值;但是程序中允不允许使用return呢?答案是允许的,不过只能用...
  • 中断函数中的问题,中断被调函数中的问题,寄存器组。
  • 关于C51的中断函数要注意的几个问题(高手绕行)  最近在虾潭逛,发现一些小虾米对C51中断函数有些不了解,今天周末,抽空发个技术帖子,希望对小虾米有所帮助,如 有错误之处,还请指正,就当抛砖引玉吧! ...
  • STM32中断函数

    千次阅读 2017-01-04 12:47:22
    STM32中断函数和普通的ARm裸板开发不同。使用stm32库函数编程时,中断函数名是固定死的。 具体函数名可以在启动文件startup_stm32fxxx_xd.s的Vector Table Mapped(中断函数向量表)中查看。 启动文件 startup_...
  • STM32学习记录之定时器中断代替延时函数实现更精准计时(延时) 延时在很多函数处理中都是一个必不可少的操作,对于很多初学者来说,都知道在代码里加一句delay()就能延时,如果再了解多一点就知道delay_us(xx)就能...
  • 在linux中,中断处理程序看起来就是普通的C函数,只不过这些函数必须按照特定的类型声明,以便内核能够以标准的方式传递处理程序的信息,在其他方面,他们与一般的函数看起来别无不同。 那么终端处理程序与其他内核...
  • 主函数与中断函数共享变量问题

    千次阅读 2015-12-29 13:38:29
    主函数与中断函数共享变量问题类似两个线程共享资源的问题,如何解决共享资源冲突是系统结构设计的关键 解决方法 1.volatile 正确使用 .  2. 注意临界段(或原子操作). (写变量时,关中断,写完后再开) ...
  • 关于C51的中断函数要注意的几个问题(高手绕行)  最近在虾潭逛,发现一些小虾米对C51中断函数有些不了解,今天周末,抽空发个技术帖子,希望对小虾米有所帮助,如 有错误之处,还请指正,就当抛砖引玉吧! ...
  • 单片机I/O控制方式(UART中断和DMA中断区别

    千次阅读 多人点赞 2019-11-27 09:24:12
    单片机I/O设备的控制方式主要有三种:程序循环检测、中断驱动直接内存访问。
  • 系统调用和函数调用的区别

    千次阅读 2018-10-10 13:34:49
    系统调用与函数调用的区别 系统调用 1.使用INTIRET指令,内核应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备 2.依赖于内核,不保证移植性 3.在用户...
  • 存在开机后初始化,在TIM3_Int_Init()里面,一打开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次。只进一次。 初始化函数最后已经关闭定时器: TIM_Cmd(TIM3, DISABLE); //暂关闭TIMx外设。将这个...
  • 中断和查询方式区别

    千次阅读 2020-05-18 08:35:19
    处理流程复杂,函数嵌套执行的情况下,于处理不过来容易丢失事件。 CPU比作人,定时器比作闹钟的。 ①中断就相当于是人设定的时间到了闹钟自己响起的过程,此时人放下手中的事去做另一件事。 ②查询就是人发现自己有...
  • 中断函数调用的区别

    千次阅读 2012-04-18 13:49:25
    在《微机原理》《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过...
  • STM32的"异常“、“中断”和“事件”区别和理解

    千次阅读 多人点赞 2018-01-18 11:34:35
    1 异常与中断(Cortex-M3)1.1 异常与中断原话: Cortex‐M3 在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常外部中断。 其中,编号为 1-15 的对应系统异常,大于等于 16 的则全是外部中断。 ...
  • 在使用python的时候,经常用到python中的特殊函数:__call()__函数,但是学习TensorFlow的...该方法是对基类的重载函数,使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用。 比如: class CLanguage
  • 回调函数与普通函数没有本质上的区别,只是概念上的区别。 回调函数的典型应用可以描述如下: 用户A写一段程序,处理某一事务,例如数据排序。他对排序算法有相当研究,因此,他使用了一种高效的排序算法。为了...
  • 系统调用和函数调用区别

    千次阅读 2017-10-20 10:53:15
    系统调用和函数调用 1. 系统调用 a. 什么是系统调用 系统调用,通俗的讲,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以...
  • 单片机C语言C51的函数

    千次阅读 2020-04-07 11:29:10
    函数类型 函数名(形式参数表) [reentrant][interrupt m][using n] 形式参数说明 { 局部变量定义 函数体 } 前面部件称为函数的首部,后面称为函数的尾部,格式说明: 1).函数类型 函数类型说明了函数...
  • 中断(Interrupts)

    千次阅读 2018-09-26 12:46:20
    一般中断定义为:打断CPU指令执行顺序的事件,现代CPU框架为了能够及时响应外部或内部一些紧急事件,都有中断机制,并提供一些响应中断、处理中断等的一些中断机制。 中断 ==> 打断CPU执行的事件 二、ARM ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,062
精华内容 39,224
关键字:

中断函数和普通函数的区别