Welcome 微信登录

首页 / 操作系统 / Linux

Linux设备模型之platform

Linux设备模型之platform

platform可以说是内核抽象出来的一条虚拟总线平台,内核开发者原意是想把硬件层次上的结构关系用软件抽象模拟出来,但是对一些硬件,这样做往往不太合适,例如对于片上soc,外围设备的控制器都集成在处理器上,如果过度的剥离抽象,会使得原本物理上紧密的结构而在软件上变成的偏于独立,因此有了platform,对于联系紧密的soc这往往再合适不过,另外对于从soc上直接引出的引脚,难于独立出来,都可以利用platform来表述。 有了前面关于bus,driver,...
Linux设备模型之i2c子系统

Linux设备模型之i2c子系统

I2c子系统将i2c控制器(i2c寄存器所在的那块电路)抽象出来,用adapter(适配器)这个结构来描述,可以说一个适配器就代表一条i2c总线,而挂接在i2c总线上的设备是用client这个结构体来表述,另外i2c_bus上的设备链表挂接的不单单是连接的这条i2c上的client,同样adapter也作为一个设备挂在其所在的i2c_bus,也就是说控制器和设备都作为i2c_bus上的设备连接在设备链表,他们用内嵌的device的type这个成员来区分,适...
Linux设备模型之spi子系统

Linux设备模型之spi子系统

相比于前面介绍的i2c子系统(见 http://www.linuxidc.com/Linux/2012-01/52782.htm),spi子系统相对简单,和i2c的结构也很相似,这里主要介绍一下平台无关部分的代码。先概括的说一下,spi总线或者说是spi控制器用结构体struct spi_master来表述,而一般不会明显的主动实现这个结构而是借助板级的一些信息结构,利用spi的模型填充,存在板级信息的一条链表board_list,上面挂接着板级spi设备...
Linux基础知识:双buffer与单buffer

Linux基础知识:双buffer与单buffer

在嵌入式平台Linux,主要通过framebuffer来显示UI。FrameBuffer实际上就是嵌入式系统中专门为GPU所保留的一块连续的物理内存,LED通过专门的总线从framebuffer读取数据,显示到屏幕上。根据系统中framebuffer的数量,可以分成单buffer和双buffer两种。先来说说单buffer:CPU往framebuffer上写,LED从framebuffer读,这是两个同时进行的过程,需要在时间上配合,否则会出现问题。如果C...
Linux和Windows中的时间管理

Linux和Windows中的时间管理

首先是两个常用概念:Cycle和Tick。Cycle是由CPU主频决定的,而CPU主频是由CPU的物理特性决定的,因此它可以说是平台无关的。现在的主流CPU主频都是以G为单位了,所以1个cycle的单位一般在纳秒级别。Tick泛指一段时长(一般为两次timer interrupt间的时长,毫秒级),由操作系统指定(Linux中由Kernel决定,Windows 中由硬件抽象层HAL决定)。Windows中,还有一个概念叫qunatum,它是线程调度的时间单...
Linux 进程控制入门

Linux 进程控制入门

本来想现在Linux上熟悉下进程的有关概念然后去写windowsSDK的,没想到今天Windows蓝屏了,新升级的3.2.2内核打开虚拟机的时候还要升级内核。升就升吧,没想到还错误了。没办法,看来只好在Linux上面待着了。这几天自己只是熟悉了下进程的概念,然后简单的写了一些小程序。自己写点笔记免的忘掉。进程标识符:Linux环境下进程启动时候,系统分配给一个唯一的数值给每个进程,这个数值就称为进程标识符。(感觉跟windows里面的句柄有点像)进程表示有...
Linux tar 如何在压缩之后删除原文件及相关拓展用法

Linux tar 如何在压缩之后删除原文件及相关拓展用法

在平时的Linux维护工作中,tar命令应该经是会常用到。我们常常用这个命令来归档压缩文件,如何压缩之后删除原文件呢?假设我们压缩文件文件aaa.log 为aaa.log.tar.gz ,归档压缩之后,并删除文件aaa.log。请参阅下面的命令:[plain] tar-zcvfaaa.log.tar.gzaaa.log--remove-files 可以看出,主要是使用了--remove-files 这个命令参数选项。 能不能拓展下:解压aaa.lo...
Linux下任务调度的crond常驻命令

Linux下任务调度的crond常驻命令

crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置Crontab是UNIX系统下的定时任务触发...
<< 521 522 523 524 525 526 527 528 529 530 >>