嵌入式Linux中文站

最新发布

内核驱动

Linux驱动技术(六) _内核中断

阅读(232)

在硬件上,中断源可以通过中断控制器向CPU提交中断,进而引发中断处理程序的执行,不过这种硬件中断体系每一种CPU都不一样,而Linux作为操作系统,需要同时支持这些中断体系,如此一来,Linux中就提出了 软中断 的概念,也有人叫 内核中断 ,其本质就是使用统一的方式对...

内核驱动

Linux驱动技术(七) _内核定时器与延迟工作

阅读(123)

内核定时器 软件上的定时器最终要依靠硬件时钟来实现,简单的说,内核会在时钟中断发生后检测各个注册到内核的定时器是否到期,如果到期,就回调相应的注册函数,将其作为中断底半部来执行。实际上,时钟中断处理程序会触发TIMER_SOFTIRQ软中断,运行当前处理器上到期的...

内核驱动

Linux驱动技术(八) _并发控制技术

阅读(112)

为了实现对临界资源的有效管理,应用层的程序有原子变量,条件变量,信号量来控制并发,同样的问题也存在与驱动开发中,比如一个驱动同时被多个应用层程序调用,此时驱动中的全局变量会同时属于多个应用层进程的进程空间,这种情况下也要使用一些技术来实现对并发的控制...

系统开发

uboot的配置流程分析

阅读(276)

简单介绍一下uboot的基本配置流程。和绝大多数源码编译安装一样,uboot在执行 make 之前需要执行 make XXXconfig 来配置相关信息,而且uboot本身是针对多种平台的bootloader,所以编译的过程也会有一点小麻烦,需要对它的源码结构有一点了解。移植uboot,大体上的流程是...

系统开发

Linux IPC POSIX 信号量

阅读(222)

模型 # include semaphore.h # include sys/stat.h # include fcntl.h sem_open() //初始化并打开有名信号量 sem_init() //创建/获得无名信号量 sem_wait()/sem_trywait()/sem_timedwait()/sem_post()/sem_getvalue() //操作信号量 sem_close() //退出有名信号量 sem_un...

系统开发

Linux 多线程可重入函数

阅读(235)

Reentrant和Thread-safe 在单线程程序中,整个程序都是顺序执行的,一个函数在同一时刻只能被一个函数调用,但在多线程中,由于并发性,一个函数可能同时被多个函数调用,此时这个函数就成了临界资源,很容易造成调用函数处理结果的相互影响,如果一个函数在多线程并发...

新手入门

tftp-nfs开发环境搭建

阅读(134)

嵌入式开发通常使用 主机-开发板 的开发模式,在裸板开发中,我们通常使用串口调试工具传递文件,比如windows平台的超级终端,SecuCRT以及Linux平台的ckermit(题外话:ckermit比windows的那两个快多了)。但在OS的开发环境中,由于程序复杂,规模巨大,串口的低速和易错...

系统开发

C标准头文件<stdio.h>

阅读(233)

是很多人学C语言接触的第一个头文件,顾名思义,stdio就是标准输入输出,其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的hello,world!的printf(),但是,这并不意味着这个头文件就很简单,相反,这个头文件是C标准库里唯二包罗万象的一个库(另一...

系统开发

Linux I/O多路复用

阅读(206)

Linux中一切皆文件,不论是我们存储在磁盘上的字符文件,可执行文件还是我们的接入电脑的 I/O设备 等都被VFS抽象成了文件,比如标准输入设备默认是键盘,我们在操作标准输入设备的时候,其实操作的是默认打开的一个文件描述符是0的文件,而一切软件操作硬件都需要通过OS...

内核驱动

Linux文件I/O

阅读(132)

a small, nonnegative integer for use in subsequent system calls (read(2), write(2), lseek(2), fcntl(2), etc.) ($man 2 open). 一个程序开始运行时一般会有3个已经打开的文件描述符: 0 :STDIN_FIFLENO,标准输入stdin 1 :STDOUT_FILENO,标准输出stdout 2 :STDERR_F...

新手入门

shell 脚本关键字&符号

阅读(119)

shell概念 shell既是一种解释型编程语言,也是一个这种编程语言的解释器的名字 shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译型语言,编译器把整个工程编译成可执行文件才能执行 在没有续行符( \回车 )的情况下,shell脚本...

系统开发

ARM汇编与C混合编程

阅读(190)

内联汇编 即在C中直接使用汇编语句进行编程,使程序可以在C程序中实现C语言不能完成的一些工作,例如,在下面几种情况中必须使用内联汇编或嵌入型汇编 程序中使用饱和算术运算(Saturating Arithmetic) 程序需要对协处理器进行操作 在C程序中完成对程序状态寄存器的操作 ...

新手入门

Linux环境下批量修改文件名

阅读(225)

前言 最近一个用户环境下,2号节点存放归档日志的文件意外丢失,导致原来存放在arch2中的归档日志生成/opt/sharedisk/arch22_58959_781640038.dbf,因为时间比较旧,归档日志有几百个,现在需要把所有名称类似arch22的日志批量更改名称,去掉前面的arch2 rename 简单语...

行业新闻

开源项目为什么都爱把动物作为品牌 Logo ?

阅读(122)

开源项目通常会把一种有特色的动物作为自己的品牌和 Logo。比如 Linux 的企鹅,Python 的蛇,PostgreSQL 的大象等等。 品牌是营销的一个重要组成部分,一个简单的标志,很可能就会成为一个强大的广告。那么,你知道这些动物 Logo 的来由和寓意吗? Linux 上面的企鹅名为...

内核驱动

从misc子系统到3+2+1设备识别驱动框架

阅读(95)

misc子系统在Linux中是一个非常简单的子系统,但是其清晰的框架结构非常适合用来研究设备识别模型。本文从misc子系统的使用出发,通过了解其机制来总结一套的设备识别的驱动框架,即使用 使用同一个驱动,向上提供多个设备文件接口,向下控制多个(相应的)设备 ,这就需...

行业新闻

Linus称Linux的成功源于自私和信任

阅读(201)

BBC采访了Linux创始人Linus Torvalds。Linus在采访中回答:他最早发布内核源代码时根本没有预计到会有人参与开发,他只是想听取用户反馈和建议。 Linus认为,开源的真正特色是能让人人能自私,而非让每个人出于社会公益的伟大意义作出贡献。开源不是让我们围着篝火唱歌...