linux内核
文章平均质量分 80
linux内核编译,移植,子系统
hello_Byte
电子爱好者,从事嵌入式行业。我认为博客是一个:学习、笔记、交流的一个好平台。有时无法及时回复,有志同道合之友可加V沟通: honeyshinelu,一起相互探讨,共同进步。
展开
-
内存管理(三)--Linux CMA内存使用
本文主要讲解Linux里内存预留和CMA内存的使用。原创 2024-09-03 18:27:57 · 1359 阅读 · 0 评论 -
Linux内核源码里scripts/config和scripts/kconfig/merge_config.sh作用
Linux内核源码的scripts目录,其作用主要存储内核编译和配置相关脚本。这里主要介绍两个常用脚本:scripts/config和scripts/kconfig/merge_config.sh原创 2024-03-08 13:15:59 · 767 阅读 · 1 评论 -
交叉编译环境下对linux内核编译
本文基于ubuntu,搭建交叉编译环境,arm64为例,交叉编译4.19.186内核源码所谓的交叉编译是:编译的平台环境与编译的成果所运行的平台,不是一类平台。通常指X86平台下编译成果物,提供给arm下要运行的程序或内核。因此需要交叉编译工具链来解决平台差异化问题 。材料准备1、下载交叉编译工具链工具链官方路径:http://releases.linaro.org/components/toolchain/binaries/也可以到国内源网站下载更快:https://mirrors.tu原创 2021-04-12 22:45:20 · 8249 阅读 · 0 评论 -
内存管理(二)-- linux 预留内存几种方法
日常开发过程可能要预留一段物理内存出来提供特殊场景使用(独占一段内存不被系统所使用)。本文讲解3种预留内存的方法,以及对预留内存的使用。文章目录一、memblock方式预留内存1.1 memblock内存管理1.2 memblock 方式预留内存方法1.3 预留内存访问二、 限制内存总空间方式预留内存2.1 预留内存方法2.2 预留内存访问三、CMA连续内存分配方式预留内存一、memblock方式预留内存1.1 memblock内存管理mmeblock是内存的一种管理机制,主要管理这两种内存,原创 2021-03-28 14:20:45 · 13728 阅读 · 0 评论 -
内存管理(一)--linux内存地址分布和分配管理算法
内存分布通常32位Linux内核地址空间划分0-3G为用户空间,3-4G为内核空间。用户空间中每个进程都拥有3G的虚拟空间,每个进程都是在虚拟空间运行的,不会相互干扰。整个4G空间被分为3类内存:ZONE_DMA的范围是0~16M,该区域的物理页面专门供I/O设备的DMA使用。之所以需要单独管理DMA的物理页面,是因为DMA使用物理地址访问内存,不经过MMU,并且需要连续的缓冲区,所以为了能够提供物理上连续的缓冲区,必须从物理地址空间专门划分一段区域用于DMA。ZONE_NORMAL的范围是原创 2021-03-27 23:38:18 · 4004 阅读 · 0 评论 -
Linux Kdump内核崩溃转储部署详解
1、crashkernel以及编译config(1)在"Processor type and features.“下使能"kexec system call”。CONFIG_KEXEC=y(2)在"Filesystem" -> “Pseudo filesystems.“下使能"sysfs file system support”。CONFIG_SYSFS=y(3)在"Kernel hacking.“下使能"Compile the kernel with debug info” 。CONFI原创 2021-02-28 21:25:00 · 2018 阅读 · 2 评论 -
unlikely和likely函数作用
在linux内核中的判断语句里常见到unlikely和likely函数。如:if(unlikely(a)) // if(likely(a)){ ...}else{...}两函数实质是__builtin_expect的的宏定义,原型如下:# define likely(x) __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)__builtin_expect 是GCC的内置函数,用来对原创 2021-02-17 14:10:10 · 3116 阅读 · 0 评论 -
USB设备创建过程与驱动学习笔记
讲述usb设备插入到设备创建过程的源码分析,以及以中断传输方式的鼠标驱动为例,讲述USB驱动实现流程。文章目录USB设备创建过程USB驱动编写(中断传输方式)USB设备创建过程当外部插入USB设备后,系统都做了哪些工作?总的来说就是:插入USB设备后,USB控制识别到USB设备,会向系统触发一中断,在中断函数中唤醒休眠线程,在线程中获取USB设备信息,并创建USB设备。该过程可参考hub.c 文件。USB控制器触发中断入口函数:hub_irq。整个调用流程如下:->hub_irq //产原创 2021-02-04 23:29:20 · 780 阅读 · 4 评论 -
物理地址,虚拟地址,链接地址的个人理解
以下仅为个人理解,若有不足之处,望指正。链接地址,物理地址,虚拟地址这三者地址都有各自的区别,这也是我开发学习过程中,自己琢磨出来领悟的,网上搜索的都讲的很专业化,不太好理解,理解起来感觉有些吃力。所以我想以个人理解的角度,通俗点去讲讲这三者的功能作用。原创 2017-12-20 14:26:14 · 2071 阅读 · 0 评论