固件与驱动

来源:互联网 发布:模拟男朋友的软件 编辑:程序博客网 时间:2024/05/02 02:10

1.固件与驱动

从计算机领域来说,驱动和固件从来没有过明确的定义,就好像今天我们说内存,大部分人用来表示SDRAM,但也有人把Android里的“固化的Flash/Storage"称为“内存”,你不能说这样说就错了,因为这确实是一种“内部存储”。


但在Linux Kernel中,Driver和Firmware是有明确含义的,其中Driver是控制被操作系统管理的外部设备(Device)的代码段。很多时候Driver会被实现为LKM,但这不是必要条件。driver通过register_dirver()注册到总线(bus_type)上,当某个device被注册到同样的总线的时候,driver和device会通过一定的策略进行binding,最终在probe()函数中由driver实际控制对应的设备,并把对该设备的控制接口注册到Linux的其他子系统上(例如字符设备,v4l2子系统等)。

而Firmware,是表示运行在非“控制处理器”(指不直接运行操作系统的处理器,例如外设中的处理器,或者被用于bare metal的主处理器的其中一些核)中的程序。这些程序很多时候使用和操作系统所运行的处理器完全不同的指令集。这些程序以二进制形式存在于Linux内核的源代码树中,根据配置,可以直接集成到最终的映像中,或者被拷贝到指定的位置。当driver对device进行初始化的时候,通过load_firmware()等接口,可以把指定的firmware加载到内存中,由驱动传输到指定的设备上。


2. 手机存储


手机内存有两种:一种是指内部存储空间,也就是内置SD(security digital)卡,用于安装软件等,一般手机存储已满指的就是内部存储空间不足;而另一种指的是运行内存,用于手机运行的速度,一般手机比较卡就是因为运行在内存不足引起的;存储空间有两种:一种是指内部存储空间,也就是上述中的一种;另一种是外置内存卡,也就是SD卡,可以插在手机上使用的内存卡

0 0
原创粉丝点击