嵌入式开发的一个有关问题
发布时间:2010-06-14 17:45:21 文章来源:www.iduyao.cn 采编人员:星星草
嵌入式开发的一个问题
初学嵌入式开发,发现很强调 驱动开发,我对驱动开发一无所知,有些疑问:像我们电脑外接一个打印机,打印机肯定带驱动程序,驱动程序肯定是打印机厂商提供的。嵌入式系统也要接各种设备,这些设备厂商不提供驱动程序么?而且,电脑外接打印机有一个驱动程序就行了,不同的嵌入式应用公司对同一设备用不同的驱动程序?不然要这么多嵌入式驱动开发工程师?还是我的理解有问题?
多谢指点。
------解决方案--------------------
嵌入式系统的硬件结构、组成各不相同,即使有相关的驱动源码,也需要移植,以便能够应用到自己的硬件上来。
这样就需要嵌入式工程师,既要了解CPU,又要了解被驱动的硬件设备。
------解决方案--------------------
驱动程序主要是因为各个厂家的硬件设备、协议等等之类的不同而造成要写各种驱动
也有在通用驱动加载上自己有个性功能的程序
------解决方案--------------------
我觉得楼主问问题的方式有点不好,
有点不明白你想问啥?
可以这么说,有些公用的驱动系统都会自带的,如果涉及到不同的应用场景,就需要修改不同的驱动程序以满足需求。一般来说,驱动工程师比应用工程师少些,在一个公司内部。
------解决方案--------------------
我不懂打印机。对于楼主对于打印机的理解。我不置可否。
就嵌入式开发而言,如果你的公司不是做平台的,如果你的公司用的不是别人的平台。
那么,一般,从硬件的 原理图,PCB,到bootloader,device driver,如果有OS的话,还有kernel等。
其实,这些东西,一个公司都是要它们自己做的。
每个公司的定位都不同,卖的产品不同,针对的市场不同。
在嵌入式里边,当你说到一块CPU,它不同于我们台式的CPU,台式的CPU,包括core,各级的cache,其他的对于cpu而言,都是外部的。
但是嵌入式中的cpu,通常包括core和集成的各种设备的controller,也就是很多peripheral module。
就 arm powerpc,mips CPU而言,它们内部就集成了很多的设备模块。
arm,和powerpc,和mips内部集成的设备模块可能不同,
就即使arm这一系列,不同的厂商在做这款cpu的时候,也可能实现了不同的外部设备,即使是同一个公司,如果arm core 的版本不同,实现的同一个设备的编程方法可能也不同。
嵌入式的领域,产品是丰富多样的,需求也是千奇百怪,所以,需要的驱动工程师很多。
相对于上层的 app而言,当然还是相对少数的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在驱动开发中出现 'struct' type redefinition 应该怎么办?? 大神们告诉小弟一下...
下面是我写的代码:
#pragma once
//**********...
-
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
*******************************************************...
-
sigma8653很罕见的问题
SOS!
sigma8653板子插上卡,上电后可以识别SD卡,然后软重启(reboot)就无法识别了!
奇怪的时,继续软重启一次又可...
-
Cancel自旋锁 起了什么作用?
发现IoCancelIrp 函数中
获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了On...
-
windows下 pnp设备的即插即用功能是怎么实现的?
看到 windows内核情景分析里说
加载驱动有三种方式 前两种是静态 分别是引导...
-
取消当前 IRP 执行的过程是怎样的?
#pragma code_seg("PAGE")
NTSTATUS MyWdmRead(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
...
-
vs2008中,link2001错误的问题,代码如下
vs2008中,link2001错误的问题,代码如下
#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJ...
-
什么是内核缓冲区,用户缓冲区
比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?
------解决方案---------------...
-
如果在一个函数中有提升IRQL的语句 是不是整个函数都不能放在分页内存中 ?
如果我在一个函数前使用了 #pragma code_seg("PAGE") ...
-
请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用...