Linux内核中断之获取中断号

Linux内核中可使用platform_get_irq()函数获取dts文件中设置的中断号。 函数原型:int platform_get_irq(struct platform_device *dev, unsigned int num) 定义文件:drivers\base\platform...

Linux内核程序入口地址

在Linux内核中,使用vmlinux.lds.S文件(路径:arch/arm64/kernel/)布局内核映像中相关段(例:.text、.data)的位置。 在Linux内核编译时,vmlinux.lds.S文件最终会被构建成链接脚本vmlin...

Linux内核映像区别

本文介绍几种常用的Linux内核映像的区别。 一、vmlinux vmlinux:Linux内核编译出来的原始的内核文件,elf格式,未做压缩处理。 该映像可用于定位内核问题,但不能直接引导Linux系统启动。 ...

Linux DRM那些事-master设备bind

本文介绍RockPI 4A单板DRM模块master设备bind函数rockchip_drm_bind()。 文件:drivers/gpu/drm/rockchip/rockchip_drm_drv.c。 功能:完成DRM主设备的初始化,并调用所有从设备的bind函数初...

05/01 11:09
2.7K
Git常用命令(三)

本篇文章是对上篇“Git常用命令(二)”的一个说明。 代码工作目录中文件状态包括:未跟踪状态(未在git仓)和已跟踪状态(已在git仓),详细分为: 1、未跟踪状态(Untracked) 文件在git仓...

git
04/15 23:54
58
Git常用命令(二)

1、git clone 功能:克隆git仓。 格式:git clone url 用法: ## clone rockpi代码,下载完成后,代码存储在rockchip-bsp文件夹 git clone --recursive https://github.com/radxa/rockchip-...

04/15 23:21
28
Linux DRM那些事-libdrm调试准备

本文主要介绍libdrm的代码下载、编译和调试前的准备工作。 一、代码下载 libdrm下载网址:https://dri.freedesktop.org/libdrm/libdrm-2.4.89.tar.bz2 解压命令:tar -jxvf libdrm-2.4.89.t...

Git常用命令(一)

1、安装 基于Ubuntu系统,git安装命令如下: ## 安装最小依赖性的主要组件 apt-get install git 或 ## 安装包含所有sub-packages apt-get install git-all 2、查看版本信息 root@ubuntu:/hom...

Linux DRM那些事-component bind解析

本文基于RockPI 4A DRM框架介绍Linux 4.4内核component组件bind过程。 一、加载顺序 RockPI 4A单板DRM模块drivers/gpu/drm/rockchip/Makefile内容如下: rockchipdrm-y := rockchip_drm_drv....

DDR4 SDRAM基础介绍

本文以美光MT40A1G16RC-062E为例,介绍DDR4 SDRAM基础知识。 一、DDR4引脚 MT40A1G16RC-062E是1Gx16,对应引脚如下: 1、数据线 1)DQ[0:15]:16位数据线。 2)UDQS_t/UDQS_c和LDQS_t/LDQS_c...

cas
04/03 21:46
437
Linux 内核容器

本文介绍Linux 4.4内核容器container_of()。 文件:include/linux/kernel.h,定义如下: /** * container_of - cast a member of a structure out to the containing structure * @ptr: the ...

04/01 22:41
66
Linux内核工作队列

Linux内核中实现工作推后执行的方法有:软中断、tasklet和工作队列(work queue)。 本文介绍工作队列的简单用法。 一、工作任务定义 Linux内核中的工作队列包括:共享工作队列和自定义工作队...

03/25 23:43
4.8K
Linux内核内存分配函数之devm_kmalloc和devm_kzalloc

本文介绍Linux内核内存分配函数devm_kmalloc()和devm_kzalloc()。 一、devm_kmalloc 文件:drivers/base/devres.c,定义如下: /** * devm_kmalloc - Resource-managed kmalloc * @dev: Devi...

03/23 23:19
2.3K
Linux内核内存分配函数之kzalloc和kcalloc

本文介绍Linux内核内存分配函数:kzalloc()和kcalloc()。 一、kzalloc 文件:include/linux/slab.h,定义如下: /** * kzalloc - allocate memory. The memory is set to zero. * @size: how...

03/22 23:12
589
Linux内核内存分配函数之kmalloc

本文介绍Linux内核内存分配函数kmalloc。 一、定义 static __always_inline void *kmalloc(size_t size, gfp_t flags) { if (__builtin_constant_p(size)) { if (size > KMALLOC_MAX_CACHE_...

Yocto之apt-get安装deb包环境搭建

本文介绍apt-get install命令安装deb包的测试环境搭建方法。 搭建环境:WIN10+Ubuntu18.04虚拟机。 1、虚拟机配置 1)安装Apache2 apt-get install apache2 2)制作deb包源 cd /var/www/html...

Linux内核同步机制-互斥锁

一、初始化 互斥锁(mutex)定义文件:include/linux/mutex.h,方法如下: 1、静态定义并初始化 #define DEFINE_MUTEX(mutexname) \ struct mutex mutexname = __MUTEX_INITIALIZER(mutexna...

03/17 23:13
74
Linux DRM那些事-内核模块解析

本文以RockPI 4A DRM驱动解析内核模块定义、链接位置和加载顺序。 一、模块定义 列举DRM驱动中的模块定义如下: module_platform_driver(dw_hdmi_rockchip_pltfm_driver); ## dw_hdmi-rockch...

RockPI 4A Linux内核模块

Linux内核模块除代码实现部分外还需关注:模块定义、链接位置、模块加载和模块优先级。 一、模块定义 Linux内核使用xx_initcall_xx(fn)的宏来定义内核模块。 宏定义文件:include/linux/ini...

03/11 20:45
81
Linux DRM那些事-component框架介绍

一、component介绍 Linux内核component代码实现文件:drivers/base/component.c。 使用git log -p component.c命令,可以查看该文件的第一次提交记录。 commit 2a41e6070dd7ef539d0f3b1652b...

03/04 23:05
797

没有更多内容

加载失败,请刷新页面