中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展-让标准C支持中断。其代表事实是,产生了一个新的关键字 __interrupt(51即如此)。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。

__interrupt double compute_area (double radius) {double area = PI * radius * radius;printf("/nArea = %f", area);return area;}

这个函数有太多的错误了,以至让人不知从何说起了(前提是非操作系统下的中断服务函数):

1)ISR 不能返回一个值(都应该为void类型)。如果你不懂这个,那么你不会被雇用的。

2)ISR 不能传递参数。如果你没有看到这一点,你被雇用的机会等同第一项。

3)在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额外的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。另外中断服务程序是运行在内核态的(linux),内核通常是不支持浮点运算的。

中断服务子程序(ISR)相关推荐

  1. 中断服务子程序 ISR

    中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展-让标准C支持中断. 具代表事实是,产生了一个新的关键字 __interrupt. 下面的代码就使用了__interrupt关键字去 ...

  2. 32 引脚_函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频方波

    void Time0_serve(void ) interrupt 1 using 1 { TH0=(8192-C)/32;     //可证明这是13位计数器TH0高8位的赋初值方法 TL0=(81 ...

  3. 中断服务子程序c语言格式,中断服务子程序是如何被执行的 ?

    前言 笔者在 <程序是如何在 CPU 中运行的(二)>中从 PC 指针寄存器的角度分析了一级函数调用和二级函数调用执行的过程,那么中断服务子程序又是如何被执行的呢?两者的相同点和不同点是什 ...

  4. c51语言中 如何定义一个中断服务子程序,51单片机中断服务子程序的设计

    中断系统的运行必须与中断服务子程序配合才能正确使用.设计中断服务子程序需要首先明确以下几个问题. 中断服务子程序设计的任务 中断服务子程序设计的基本任务有下列4条: (1)设置中断允许控制寄存器IE, ...

  5. 中断向量,中断向量表 ,中断服务函数

    所谓中断是指CPU在正常执行程序的过程中,由于内部/外部事件的触发或由程序的预先安排,引起CPU暂时中断当前正在运行的程序,而转去执行为内部/外部事件或程序预先安排的事件的服务子程序,待中断服务子程序 ...

  6. C语言中断服务程序指令,单片机C语言函数之中断函数(中断服务程序)

    在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题. (1)中 ...

  7. 子程序入口参数是什么_三菱FX PLC | 什么是中断服务?没事多看几遍

    戳上方蓝字 "技成电工课堂" 关注我们哦! "前面我先是分享了PLC程序流程转移中的条件跳转CJ,然后紧接着进攻了子程序调用CALL和循环FOR,这次,我要向" ...

  8. c语言 串口中断服务函数,GCC-AVR 编写中断服务函数的注意事项

    //注意:本文使用的GCC-AVR版本为WinAVR20100110 中断不是C语言的一部分,中断的实现是由编译器实现的.所以,不同版本的编译器的中断的写法有很大的不同:即便同样是WinAVR,不同版 ...

  9. 嵌入式中断服务函数的一些特点

    --------------------------------------------- -- 时间:2019-02-20 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

最新文章

  1. 为什么Redis内存不宜过大
  2. [转] 背完这444句,你的口语绝对不成问题了
  3. mysql删除默认密码_修改mysql默认密码方法
  4. 堆/栈/动态存储方式/静态存储方式
  5. Matchmaker
  6. 2017将转行进行到底
  7. 人月神话-外科手术队伍:团队建设
  8. python中tkinter模块_Python模块:tkinter
  9. 编译编译时,用不到的库,一定不要链接
  10. Porsche保时捷Taycan维修手册电路图接线图技术培训手册维修技术资料
  11. Multi-armed Bandits(多臂老虎机问题)
  12. 你是编程高手还是IT民工
  13. FxCAD实验一 简单图形的绘制
  14. 魔戒中超眩的武器装备!
  15. 华为android版本7.0,永不卡!华为手机全面升级安卓7.0:逆天
  16. 全世界都在问Android开发凉了吗?送大厂面经一份!
  17. School:1靶机
  18. 腾讯云自定义配置购买云服务器图文操作教程 新手必看!
  19. x-ray社区版简单使用教程
  20. Redis 之 subscribe 订阅模式封装

热门文章

  1. ECharts简单入门demo
  2. UVALive 6467 Strahler Order 拓扑排序
  3. 数据结构第二版之(课后题)BF算法病毒感染检测
  4. 51nod 1138 连续整数的和(数学公式)
  5. Advanced Transact-SQL for SQL Server 2000 学习译文
  6. 哈夫曼树(最优二叉树)(c/c++)
  7. PHP编译遇到的问题
  8. 网络安全法今日实施 互联网企业对隐私政策重视不足
  9. android viewpager嵌套侧滑删除listview冲突问题
  10. python 安装easy_install和pip