下载此文档

嵌入式linux android驱动工程师 面试题总汇.docx


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
嵌入式linux android驱动工程师 面试题总汇
嵌入式系统中断服务子程序(ISR)收藏中断是嵌入式系统中重要的组成 部分,这导致了很多编译开发商提供一种扩展一让标准C支持中断。具代表事 实是,产生了一个新的关键字 —interru嵌入式linux android驱动工程师 面试题总汇
嵌入式系统中断服务子程序(ISR)收藏中断是嵌入式系统中重要的组成 部分,这导致了很多编译开发商提供一种扩展一让标准C支持中断。具代表事 实是,产生了一个新的关键字 —interrupto下面的代码就使用了—interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。
interrupt double compute_area (double radius) { double area = PI * radius * radius; printf(" Area = %f", area); return area; } 1). IS不 能返回一个值。2). ISR不能传递参数。3).在许多的处理器/编译器中,浮 点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处 理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的, 在ISR中做浮点运算是不明智的。4),与第三点一脉相承,printf()经常有重 入和性能上的问题。
C语言中对位的操作,比如对a的第三位清0,, 一犯晕写反了,以后注意!
#define BIT3 (1<<3)
#define BIT4 (1<<4)
a &= ~BIT3; a |= BIT4;
考到volatile含义并举例:理解出错,举了很具体的例子,连程序都搬上去 了,有些理解不深的没举出来……
volatile表示这个变量会被意想不到的改变,每次用他的时候都会小心的重新读 取一遍,不适用寄存器保存的副本。
volatile表示直接存取原始地址
例:
并行设备的硬件寄存器(状态寄存器)
在多线程运行的时候共享变量也要时时更新
一个中断服务子程序中访问到的的非自动变量(不太清楚,正在查找资料 ing……)
要求设置一绝对地址为0x67a9的整型变量的值为0xaa66
当时我的写法:#define AA * (volatile unsigned long *) 0xaa66
AA = 0x67a9;
答案:
int *ptr = (int *) 0xaa66;
*ptr = 0x67a9;
我感觉自己写的应该不算错吧(自我感觉,还请达人指正),我写的适合

嵌入式linux android驱动工程师 面试题总汇 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人shugezhang1
  • 文件大小7 KB
  • 时间2022-06-21