嵌入式编程 中断 一题

Interrupts are an important part of embedded systems. Consequently, many compiler vendors offer an extension

to standard C to support interrupts. Typically, the keyword is _interrupt. The following routine(ISR), point out

the errors in the code.

_interrupt double compute_area(double radius)
{
    double area = PI * radius * radius;

    printf("\nArea = %f", area);

    return 0;
}

析:

1)ISR不能返回一个值
2)ISR不能传递参数
3)在许多处理器或编译器中,浮点一般都是不可重入的,此外,ISR应是短而有效率的,在ISR中做浮点去处是不明智的
4)printf()经常有重入和性能上的问题,所以一般不使用printf()

时间: 2024-11-08 00:08:17

嵌入式编程 中断 一题的相关文章

《C嵌入式编程设计模式》

第一章 什么是嵌入式编程 嵌入式系统的基本知识 面向对象编程与结构化编程 使用C语言实现类.继承.状态机 第二章 嵌入式实时过程Harmony的嵌入式编程 嵌入式应用开发中的敏捷过程原理和工作流程 设计的三个层次 架构的五个关键试图 进行方案设计 什么是设计模式 如何运用设计模式 设计模式实例 第三章 访问硬件的设计模式 硬件代理模式--将硬件封装到类或者结构体 硬件适配器模式--使需要的和提供的接口相适应 中介者模式--协调复杂的交互 观察者模式--支持高效传感器数据分布 去抖模式--抑制间歇

结对编程_附加题_博客2

1.界面模块,测试模块和核心模块的松耦合 2.改进程序 结对编程_附加题_博客2

OR1200处理器的可编程中断控制器PIC分析

以下内容摘自<步步惊芯--软核处理器内部设计分析>一书 16.3可编程中断控制器PIC分析 16.3.1 PIC介绍 可编程中断控制器Programmable Interrupt Controller(PIC)用来响应各种中断事件,如:键盘事件.串口数据到达等,PIC收集所有的中断,并通知CPU中断到达,后者转入到中断处理例程进行处理.OR1200最多支持32个中断.其功能实现主要依靠两个特殊寄存器:中断屏蔽寄存器PICMR.中断状态寄存器PICSR.通过PICMR可以设置是否屏蔽某些中断,通

18道Shell高级编程企业实战题及参考答案(一)

Shell高级编程企业实战题参考解答 ########################################################################### 让我们一起感谢,本文内容答案完全来自老男孩教育的学生-张耀课前上机考试解答! ########################################################################### 目录: 1.监控MySQL主从同步... 1 2.批量创建文件及改名... 3

CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复.问最后会停在那个手指上?用编号1.2.3.4.5依次表示大拇指.食指.中指.无名指.小指. 输入格式: 输入多组数据.每组数据占一行,只包含一个整数n(1<=n<=1000000000). 输出格式: 每组数据占一行,只包含一个介

CSDN挑战编程——《金色十月线上编程比赛第二题:解密》

金色十月线上编程比赛第二题:解密 题目详情: 小强是一名学生, 同时他也是一个黑客. 考试结束后不久,他惊讶的发现自己的高等数学科目居然挂了,于是他果断入侵了学校教务部网站.在入侵的过程中,他发现了与成绩相关的内容是一个加密文件,这个文件由 n 个数构成,经过分析,这个加密文件的密钥为这 n 个数中二进制位数 1 最少的数.但由于数比较多,小强 希望你能帮他得到密钥,好在成绩公布之前将成绩改过来. 输入描述: 输入由多组数据构成,每组数据第一行为一个数 n(1<=n<=10^5),表示数的数量

并发编程—— 中断

Java并发编程实践 目录 并发编程—— ConcurrentHashMap 并发编程—— 阻塞队列和生产者-消费者模式 并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier 并发编程—— Callable和Future 并发编程—— CompletionService : Executor 和 BlockingQueue 并发编程—— 任务取消 并发编程—— 中断 概述 第1部分 问题引入 第2部分 第1部分 问题引入 上一篇 并发编程—— 任务取消 中,Prim

嵌入式外部中断控制编程方法论—比較CC2541(51核)和S5PV210(ARM核)

这是一篇阐述怎样对嵌入式SOC外部中断进行控制编程的方法论文章.希望读者理解本篇文章后.能够具备对市场上全部已经面世和将来面世的嵌入式芯片的外部中断进行控制编程的能力. 笔者原创的技术分享一直都恪守下面原则: 从需求的角度去理解嵌入式各种软件和硬件模块的作用和组成.并从芯片系统设计的角度去阐述怎样进行控制编程. 前者对于理解复杂的系统(如linux的各个子系统)是非常有效的:后者所讲的是代表一个芯片设计project师的视觉,芯片模块由他负责设计,他对于该模块的控制编程自然是最有发言权的. 笔者

嵌入式编程:C与汇编的混用

主要参考:<深度探索嵌入式操作系统> 5.4节 ? ? 为什么要嵌入汇编语言? 开关CPU中断. 读取CPU的一些特殊寄存器. 设置CPU模式等功能无法用C语言实现(因为C语言属于高级语言,而高级语言是屏蔽底层硬件的). 提高速度?好像是有这么一种目的,还不太清楚. ? ? [代码模板] __asm__ __volatile__ ( "代码部分" 冒号是分隔符,如果是有汇编代码部分,则冒号可以省略 :输出部分列表 如果没有输入列表,冒号也是必须加的 :输入部分列表 :损坏部