嵌入式驱动工程师面试题集锦

转载 2012年03月27日 22:40:52

1.什么是GPIO?

general purpose input/output

GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某个脚具有复用的功能,即可做GPIO也可做其他用途。

也就是说你可以把这些引脚拿来用作任何一般用途的输入输出,例如用一根引脚连到led的一极来控制它的亮灭,也可以用一根(一些)引脚连到一个传感器上以获得该传感器的状态,这给cpu提供了一个方便的控制周边设备的途经。如果没有足够多的gpio管脚,在控制一些外围设备时就会力有不逮,这时可采取的方案是使用CPLD来帮助管理。

追加:

GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。数据寄存器的各位都直接引到芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立的加以设置。这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。

在实际的MCU中,GPIO是有多种形式的。比如,有的数据寄存器可以按照位寻址,有些却不能按照位寻址,这在编程时就要区分了。比如传统的8051系列,就区分成可位寻址和不可位寻址两种寄存器。另外,为了使用的方便,很多mcu把glue logic等集成到芯片内部,增强了系统的稳定性能,比如GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这在电路设计中,外围电路就可以简化不少。

明白了这个道理,不同的MCU,提供的GPIO口的数目不同,可选择的glue logic也不同。所以,在了解共性的基础上去了解个性。

另外需要注意的是,对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便的多了。举个例子,比如像寄存器A(地址假定为0x48000000)写入数据0x01,那么就可以这样设置了。

PS:胶合逻辑glue logic

gule logic的中文含意是“胶连逻辑”、“粘连逻辑”、“胶合逻辑”,它是连接复杂逻辑电路的简单逻辑电路的统称。例如,一个ASIC芯片可能包含许多诸如微处理器、存储器功能块或者通信功能块之类的功能单元,这些功能单元之间通过较少的粘合逻辑连接起来。在印制板(PCB)层,粘合逻辑可以使用具有较少逻辑门的“粘合芯片”实现,例如PAL、GAL、CPLD等。(早期的FPGA由于规模比较小,所以就主要用来连接功能复杂的大逻辑块)

glueless interface(无粘接接口),不粘于某一特类个体(RAM 或 ROM 或 flash)。这芯片的接口规格一般有超过一种业界规格,使其接口并不局限于一种制式。

在硬件设计选型上,选择no glue logic or glueless logic的IC,可以使硬件设计简单

2.触摸屏的硬件原理?

触摸屏的主要三大种类是:电阻技术触摸屏、表面声波技术触摸屏、 电容技术触摸屏

电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面图有一层透明氧化金属 (ITO氧化铟,透明的导电电阻)导电层,上面在盖有一层外表面硬化处理、光滑防擦的塑料层 、它的内表面也涂有一层ITO涂层 、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘 。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,控制器侦测到这一接触并计算出(XY )的位置,再根据模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。

表面声波技术是利用声波在物体的表面进行传输,当有物体触摸到表面时,阻碍声波的传输,换能器侦测到这个变化,反映给计算机,进而进行鼠标的模拟。

电容技术触摸屏利用人体的电流感应进行工作。用户触摸屏幕时 ,由于人体电场,用户和触摸屏表面形成以一个耦合电容, 对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流


追加:

http://www.51touch.com/Article/Maintain/Technology/175945932.htm

http://www.cublog.cn/u2/78837/showart_1186312.html

3.在LinuxC中,ls这个命令是怎么被执行的?


使用fork创建一个进程或exec函数族覆盖原进程

4.在一个只有128M内存并且没有交换分区的机器上,说说下面两个程序的运行结果

1,
             #define MEMSIZE 1024*1024
                int count = 0;
                void *p = NULL;
            while(1)

    {


                    p = (void *)malloc(MEMSIZE);
                    if (!p)   break;

                     printf("Current allocation %d MB\n", ++count);
   }

2,
              while(1)

      {
                p = (void *)malloc(MEMSIZE);
                if (!p) break;
                memset(p, 1, MEMSIZE);
                printf("Current allocation %d MB\n", ++count);
     }


第一道程序分配内存但没有填充,编译器可能会把内存分配优化掉,程序死循环;第二道,程序分配内存并进行填充,系统会一直分配内存,直到内存不足,退出循环。

为了逼自己每天学些英语,找了本简单的书,每天翻译点,放到博客里





举报

相关文章推荐

嵌入式驱动工程师面试题集锦

1.什么是GPIO? general purpose input/output GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,当然某...

嵌入式驱动工程师面试题集锦

1.什么是GPIO? general purpose input/output   GPIO是相对于芯片本身而言的,如某个管脚是芯片的GPIO脚,则该脚可作为输入或输出高或低电平使用,...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

嵌入式工程师面试题

转载自http://blog.csdn.net/yexinghai/article/details/4254283 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个...

嵌入式经典面试题集锦

C语言测试:想C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些...

嵌入式linux工程师面试

from:http://blog.csdn.net/qdlovecsj/article/details/6884931   http://blog.csdn.net/qdlovecsj/arti...

驱动工程师面试题汇编

1、camera如何调试?   Camera的接口如下:   1.VSYNC 2.HSYNC 3.PWDN 4.RESET 5.AGND 6.SCL 7.SDA 8.DVDD18...

嵌入式工程师笔试题

1. linux内核里面,内存申请有哪几个函数,各自的区别?  Kmalloc 连续物理内存  vmalloc 虚拟内存连续 物理上非连续  2. IRQ和FIQ有什么区别,在CPU里面是是...

驱动工程师的面试问题

1.NT和WDM驱动的区别 1.NT式的驱动要导入的头文件是NTDDK.H,WDM式的驱动要导入的是WDM.H。 2.NT式不支持即插即用,通过服务来手动加载;WDM是即插即用, 通过inf来...

驱动工程师的面试问题。

1.NT和WDM驱动的区别 1.NT式的驱动要导入的头文件是NTDDK.H,WDM式的驱动要导入的是WDM.H。 2.NT式不支持即插即用,通过服务来手动加载;WDM是即插即用, 通过inf来...

嵌入式工程师笔试面试题目

7.C++中为什么用模板类。 答:(1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)