嵌入式Linux中文站

最新发布

行业新闻

没有任何专有代码 GNU Linux-libre 5.1-gnu内核正式发布

阅读(112)

面向那些为电脑寻求100%自由的GNU/Linux用户,GNU Linux-Libre项目组于今天发布了GNU Linux-libre 5.1-gnu内核正式版。该内核基于昨天发布的Linux Kernel 5.1正式版,是专门面向那些希望在个人计算机上运行Linux内核但是不希望有任何专有代码的用户的。 开发者Alexandre...

行业新闻

Linux 内核 5.2 将引入 Fieldbus 现场总线子系统

阅读(165)

Linux 内核 5.2 将于 7 月发布,此前我们报导过此版本将进一步支持 AMD FreeSync,可以更好地支持液晶显示器自适应同步,减少因内容帧速率不同步而导致的画面撕裂和卡顿。根据phoronix 的报导,现在又可以确认 5.2 中的一项新内容:引入 Fieldbus 现场总线子系统。 现场...

行业新闻

WiFi 6要来啦

阅读(78)

导读 随着新技术的不断发展和时代的持续进步,广大网民对网络速率和带宽的要求逐渐变得越来越高。无论是蜂窝移动网络,还是WiFi网络,这对曾经一起仗剑走江湖的两大高手,都逐渐的提升了自己的业务能力。20多年以来,从2G到3G、4G、5G,移动网络的传输速率提升了近20倍...

内核驱动

解析Linux内核的基本的模块管理与时间管理操作---超时处理

阅读(106)

内核模块管理 Linux设备驱动会以内核模块的形式出现,因此学会编写Linux内核模块编程是学习linux设备驱动的先决条件。 Linux内核的整体结构非常庞大,其包含的组件非常多。我们把需要的功能都编译到linux内核,以模块方式扩展内核功能。 先来看下最简单的内核模块 1 2 3 ...

内核驱动

DMA内存申请--dma_alloc_coherent 及 寄存器与内存

阅读(97)

在项目驱动过程中会经常用到dma传输数据,而dma需要的内存有自己的特点,一般认为需要物理地址连续,并且内存是不可cache的,在linux内核中提供一个供dma所需内存的申请函数dma_alloc_coherent. 如下所述: dma_alloc_coherent() dma_alloc_coherent() -- 获取物理页,...

内核驱动

内核中的内存申请:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages

阅读(210)

在内核模块中申请分配内存需要使用内核中的专用API:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages;当然,设备驱动程序也不例外; 对于提供了MMU功能的处理器而言,Linux提供了复杂的内存管理系统,使得进程所能访问到的地址空间可以达到4GB;而这4GB的空间又被划分为...

内核驱动

Linux IDR机制

阅读(132)

IDR机制在Linux内核中指的是整数ID管理机制。 实质上来讲,这就是一种将一个整数ID号和一个指针关联在一起的机制。 这个机制最早在03年2月加入内核,当时作为POSIX定时器的一个补...

新手入门

FLASH的基础知识

阅读(186)

传统的FLASH分为Nor falsh和Nand flash。 (1)Nor flash Nor flash存储以块为单元,写入时必须先擦除,并且擦除和写入的速度都很慢。但nor fash具有SRAM接口,有单独的地址总线和地址总线,接口简单,就像是访问ROM一样,读取速度快,能随机访问存储单元。正是这些特性,...

内核驱动

Linux内核Ramdisk(initrd)机制

阅读(110)

摘要:对于Linux用户来说,Ramdisk并不陌生,可是为什么需要它呢?本文对Ramdisk在内核启动过程中的作用,以及它的内部机制进行深入介绍。 标题 initrd 和 initramfs在内核中的处理 临时的根目录rootfs的挂载 initrd的解压缩 老式的initrd的处理 cpio格式的initrd的处理 ...

内核驱动

深入理解连续地址内存分配(CMA)

阅读(93)

连续内存分配(简称CMA) 是一种用于申请大量的,并且物理上连续的内存块的方法,在LWN上可以追溯到2011年6月。原理虽简单,但是其实现起来却相当复杂,因为需要许多子系统之间相互协作。基于不同人的视角,有很多不同的事需要完成和注意。...

内核驱动

USB设备被识别流程

阅读(220)

USB模块包括usb core,host,hub,device驱动,其中hub会启动一个内核线程名曰:khubd(hub_events一直在查询(hub使用的是中断传输), 当usb 设备连接在 hub 的某个端口上,hub检测到有设备连接了进来,hub会去调用hub_port_status函数去获取hub端口状态,要是真有设备...

内核驱动

用户态与内核态 & 文件流与文件描述符

阅读(130)

用户态和内核态 程序代码的依赖和调用关系如下图所示: Lib :标准ASCI C函数,几乎所有的平台都支持该库函数,因此依赖该库的程序可移植性好; System Function :系统调用函数,与系统内核进行交互,不同平台具备不同的函数接口,因此可移植性较差 区分用户态和内核态...

行业新闻

那些年,林纳斯大神喷过的技术

阅读(249)

导读 Linus Torvalds 被认为是最伟大的程序员之一,因为他写出了使用最广泛的软件,如Linux内核和 Git 版本控制系统。但是他这个人经常因为讲话带有情绪,甚至是因为带有脏话的意见而饱受非议。 有些时候,Linus Torvalds 认为那些工作没做好,或者持有不同观点或竞争关...

行业新闻

Linux 爸爸怒怼社交媒体

阅读(224)

导读 科技先锋 Linus Torvalds 表示,当今社交媒体运作的方式暗中鼓励人们的不良行为。它们就是一种恶疾。 让我们来数数当今社会里还有多少不对社交媒体表示喜欢的人。 Linus Torvalds,芬兰裔美国人,自由软件Linux的创始人。Linux 是一款同苹果的 MacOS 和微软的 Wind...

行业新闻

开源的CPU芯片和SoC设计即将到来

阅读(224)

开源硬件比你想象的要老。Sun在2007年发布了OpenSPARC,并且IBM在2013年启动了OpenPOWER.OpenSPARC将在Oracle收购Sun之后死亡,而OpenPOWER仍然主要由IBM驱动。随着最近RISC-V(发音为Risk-Five)的到来,开源CPU设计终于火了。现在,Linux基金会正在帮助组建CHIPS联盟...

新手入门

一图看懂开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

阅读(246)

首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以为所欲为,可以自由的使用,修改源代码,也可以将...