linux kernel
文章平均质量分 93
li_wen01
liwen01
展开
-
linux驱动学习笔记(4)——网络设备驱动
(一)体系结构需要掌握的知识点:1. Linux的协议栈层次2. Linux的网络子系统架构(二)协议栈Linux的优点之一在于它丰富而稳定的网络协议栈。其范围从协议无关层(例如通用 socket 层接口或设备层)到各种具体的网络协议实现。协议简介对于网络的理论介绍一般都采用 OSI(Open Systems Interconnection)模型,但是Linux 中网络栈...............原创 2020-01-08 22:42:50 · 2100 阅读 · 1 评论 -
linux驱动学习笔记(3)——设备驱动模型
(一)Kobject & KsetSysfs文件系统:"sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to ...原创 2020-01-08 22:42:16 · 879 阅读 · 1 评论 -
linux驱动学习笔记(2)——访问硬件设备
(一)mmap系统调用功能:void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。参数:addr:指定映......原创 2020-01-08 22:41:46 · 731 阅读 · 1 评论 -
linux驱动学习笔记(1)——字符设备驱动开发
(一)驱动程序介绍(a)Linux驱动程序学习知识结构:1. Linux驱动程序设计模式(40%)2. 内核相关知识(30%)3. 硬件相关知识(30%)(b)驱动分类:①字符设备: 字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现 open, close,read和 write 系统调用。②块设备: 在大部分的 Unix......原创 2020-01-08 22:41:34 · 8100 阅读 · 1 评论 -
linux网络编程学习笔记(2)——进程与线程实现机制
(一)进程定义OS系统从只能跑一个程序到能跑多个。进程可以描述程序的执行过程。进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。只有当一个程序被OS加载到内存中,cpu对其执行时,这个过程是动态的,称为进程。(二)进程的组成包含了正在运行的一个程序的所有状态信息程序的代码 程序处理的数据 要知道现在执行哪条指令,程序计数器中的值指示将运行的指令。 CPU.........转载 2020-01-07 23:41:47 · 679 阅读 · 0 评论 -
海思hi3520dv400 kernel分析(3)——设备树支持
概念:FDT:Flattened Device Tree (扁平设备树)是一种数据结构,用来描述设备的硬件配置信息,它源自开放固件使用的设备树格式。 DTS:Device tree source(设备树源)是一个文本文件,以人类可读的形式描述了计算机系统的硬件资源 DTB:Device tree blob 它是由DTS文本文件编译生成的二进制文件设备树的引入是为了解决linux kern.........原创 2020-01-07 23:47:01 · 3797 阅读 · 0 评论 -
海思hi3520dv400 kernel分析(2)——汇编阶段启动分析
在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本Image),具体的入口可以在arch/arm/kernel/vmlinux.lds.S(最终的链接脚本是通过这个文件产生的)中获得:......SECTIONS{#ifdef CONFIG_XIP_KERNEL. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)............转载 2020-01-07 23:46:08 · 1511 阅读 · 1 评论 -
海思hi3520dv400 kernel分析(1)——自解压阶段
本文内容转载自:《404blog》在内核启动前,bootloader做如下准备工作:CPU寄存器:R0 = 0、R1 = 机器码(linux/arch/tools/mach-types)、R2 = tags在RAM中的物理地址 CPU和MMU:SVC模式,禁止中断,MMU关闭,数据Cache关闭。(一)自解压分析在该阶段主要完成的工作有:1.保存机器码和启动参数到r7和r8.........转载 2020-01-07 23:44:22 · 1822 阅读 · 0 评论 -
海思hi3520dv400 kernel分析(3)——C语言阶段启动分析
文章内容来源于《朱老师物联网大讲堂》中的课堂记录2.16.5.内核启动的C语言阶段22.16.5.1、杂碎(1)smp。smp就是对称多处理器(其实就是我们说的多核心CPU)(2)lockdep。锁定依赖,是一个内核调试模块,处理内核自旋锁死锁问题相关的。(3)cgroup。control group,内核提供的一种来处理进程组的技术。2.16.5.2、打印内核版本信息(1)代码位.....................转载 2020-04-08 11:28:40 · 634 阅读 · 1 评论 -
海思hi3520dv400 kernel分析(0)——Kbuild原理分析
(一)前言 kbuild,即 kernel build,用于编译 Linux 内核文件。 kbuild 对 makefile 进行了功能上的扩充,使其在编译内核文件时更加高效,简洁。大部分内核中的 Makefile 都是使用 Kbuild 组织结构的 kbuild Makefile。Kbuild 执行的几个步骤(大致):根据内核配置生成文件 .config 将内核的版本号存储在 .........原创 2020-01-07 23:43:15 · 2180 阅读 · 1 评论 -
NandFlah 相关知识详解
CrifanLi摘要本文先解释了Nand Flash相关的一些名词,再从Flash硬件机制开始,介绍到Nand Flash的常见的物理特性,且深入介绍了Nand Flash的一些高级功能,然后开始介绍Linux下面和Nand Flash相关的软件架构MTD的相关知识,最后介绍了在Linux的MTD驱动框架下,如何实现Nand Flash的驱动。 本文提供多种格式供: ...转载 2019-03-30 18:29:39 · 5421 阅读 · 0 评论 -
linux 在线调试摄像头驱动
在使用嵌入式linux设备做点到点之间的图像传输,比如linux平台采集摄像头数据,然后通过wifi或是蓝牙等设备将图像数据发送到手机端,最后使用手机显示出图像。图像处理和图像传输是在应用层完成,在应用层写代码和调试代码都是比较容易的。但是如果需要调试摄像头驱动的一些参数,涉及到驱动层的东西就会比较的麻烦。在我使用的这个平台,假如我要调试摄像头驱动gc0308的寄存器,它需要每改一次寄存器...原创 2018-04-24 11:07:36 · 7828 阅读 · 1 评论