Neilo_chen
码龄9年
关注
提问 私信
  • 博客:143,921
    社区:2
    143,923
    总访问量
  • 49
    原创
  • 776,666
    排名
  • 64
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-09-14
博客简介:

Neil驱动的博客

查看详细资料
个人成就
  • 获得53次点赞
  • 内容获得16次评论
  • 获得504次收藏
创作历程
  • 30篇
    2022年
  • 16篇
    2021年
  • 37篇
    2020年
  • 8篇
    2019年
  • 4篇
    2016年
成就勋章
TA的专栏
  • 工作跳槽
  • 笔记
    9篇
  • 内存管理
    10篇
  • display
    15篇
  • DRM
    4篇
  • TP
    3篇
  • HAL
    4篇
  • Android
    13篇
  • linux驱动
    23篇
  • 《Linux Device Driver》
    9篇
  • 嵌入式misc
    2篇
  • 生活便签
  • input子系统
    2篇
  • 《Linux Kernel Development》
    7篇
  • USB
    7篇
  • 操作系统原理
    2篇
  • 存储
    3篇
  • 《C++ primer plus》
    3篇
  • linux内核
    17篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

宋宝华: Linux为什么一定要copy_from_user ?

网上很多人提问为什么一定要copy_from_user,也有人解答。比如百度一下:但是这里面很多的解答没有回答到点子上,不能真正回答这个问题。我决定写篇文章正式回答一下这个问题,消除读者的各种疑虑。这个问题,我认为需要从2个层面回答第一个层次是为什么要拷贝,可不可以不拷贝?第二个层次是为什么要用copy_from_user而不是直接memcpy拷贝这个事情是必须的,这个事情甚至都跟Linux都没有什么关系。
转载
发布博客 2022.10.02 ·
1712 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

Linux内存空间知识复习

内核态和用户态:当进程线程运行在内核空间时就处于内核态,而进程线程运行在用户空间时则处于用户态;区分内核空间和用户空间的原因:应用程序随便访问内存太危险,比如把系统搞崩溃,清除操作系统的数据;linux操作系统采用虚拟地址空间,以32位系统为例,寻址空间是4G(2的32次方)。用户态到内核态的切换:当一个进程执行系统调用而陷入内核代码中执行时,称进程处于内核运行态;每个进程可以通过系统调用进入内核,内核空间由所有进程共享。内核空间是操作系统内核访问的区域,是受保护的内存空间。一、用户空间和内核空间。
原创
发布博客 2022.10.01 ·
2087 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Android图形显示系统学习

App负责在画布上作画,画完的作品提交给SurfaceFlinger, 这个提交操作并不是把内存复制一份给SurfaceFlinger,而是把共享内存的控制权交还给SurfaceFlinger, SurfaceFlinger把拿来的多个应用的共享内存再送给HWC Service去合成。这里其实就是在用户空间使用libdrm库送显的过程。介绍了Android显示系统的硬件基础:SOC、DDIC、Panel,显示原理和LCD时序、LCD上的画面更新流程。1.介绍了DRM的基本组件、KMS的基本组件;...
原创
发布博客 2022.08.28 ·
2405 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

宋宝华:Linux的任督二脉——进程调度和内存管理

宋宝华,他有10几年的Linux开发经验。他长期在大型企业担任一线工程师和系统架构师,编写大量的Linux代码,并负责在gerrit上review其他同事的代码。Barry Song是Linux的活跃开发者,是某些内核版本的最活跃开发者之一(如https://lwn.net/Articles/395961/ 、
转载
发布博客 2022.08.19 ·
2740 阅读 ·
1 点赞 ·
0 评论 ·
11 收藏

宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)

不能这么简单地理解,fd本身是一个进程级别的概念,每个进程有自己的fd的列表,比如进程B收到进程A的fd的时候,进程B自身fd空间里面自己的前面200个fd都已经被占用了,那么进程B接受到的fd就可能是201。这说明你还是没搞明白fd是一个进程内部的东西,是不能跨进程的概念。坦白讲,mmap、munmap这样的API让我找到了回家的感觉,刚入行做Linux的时候,写好framebuffer驱动后,就是把/dev/fb0 mmap到用户空间来操作,所以mmap这样的 API,真的是特别亲切,像亲人一样。
转载
发布博客 2022.08.19 ·
999 阅读 ·
1 点赞 ·
0 评论 ·
15 收藏

Linux DRM modesetting API分析

本文阅读总结自DavidRheinsberg的drm-howto代码,代码的编排非常用心。注释也写的相当详尽,是很好的DRM应用程序入门参考资料。
原创
发布博客 2022.07.31 ·
1710 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

Linux图形显示DRM子系统环境实践

学习Linux图形DRM子系统,还是需要有一个运行DRM框架的linux系统,这样无论在学习DRM应用程序还是驱动程序时,可以实际动手修改调试,运行看到效果,学习起来也是比较有动力和成就感的。下面是一个搭建LinuxDRM运行环境的实践。.........
原创
发布博客 2022.07.30 ·
3576 阅读 ·
3 点赞 ·
1 评论 ·
8 收藏

内存映射函数remap_pfn_range,用户进程虚拟地址空间学习

linux内存管理 内存映射
原创
发布博客 2022.07.10 ·
496 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

用QEMU模拟ARM开发板,搭建Linux kernel运行环境

QEMU ARM kernel
原创
发布博客 2022.07.09 ·
3326 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

Android源码下载编译进程记录

Android源代码下载编译
原创
发布博客 2022.06.24 ·
1890 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Direct Rendering Manager - 基本概念

Direct Rendering Manager 基本概念 1 概述2 DRM2.1 libdrm2.2 KMS(Kernel Mode Setting)2.3 GEM(Graphics Execution Manager)2.3.1 Fence2.3.2 CMA(Conti...
转载
发布博客 2022.05.29 ·
936 阅读 ·
1 点赞 ·
0 评论 ·
9 收藏

msm8916 MDP(mobile display processor) 简介

硬件上面,Msm8916只有一个mipi-dsi接口用于连接LCM,由MDP(mobile display processor)进行管理,大概硬件结构图如下: mdp提供图片格式转换,旋转,overlay(overlay技术)等功能,dsi提供传输数据。 注意:overlay主要为了满足多界面叠加的需求,可理解为pipe,MDP支持3个overlay pipe。 &nb...
转载
发布博客 2022.05.26 ·
3074 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Linux图形显示DRM框架学习

一、Direct Rendering Manager(DRM)是linux内核子系统,负责与显卡交互。DRM提供一组API,用户空间程序可以使用该API将命令和数据发送到GPU并执行诸如显示器的模式设置之类的操作。用户空间程序可以使用DRM API命令GPU执行硬件加速的3D渲染、视频解码、GPU计算。二、fbdev:Linux内核已经有一个fbdev的API,用来管理图形适配器的帧缓存区,但不能用于满足基于3D加速的现代基于GPU的视频硬件需求,这些设备通常需要在自己的内存中设置和管理命令队列,以将命令
原创
发布博客 2022.05.21 ·
8865 阅读 ·
4 点赞 ·
0 评论 ·
89 收藏

Linux graphic subsytem(1)_概述

图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。 本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。 注1:本文所有的描述将以原生linux系统为例(如U..
转载
发布博客 2022.05.04 ·
342 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux graphic subsystem(2)_DRI介绍

上篇文章(Linux graphic subsytem(1)_概述)介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。文中提到了linux DRI(Direct Render Infrastructure)框架,但限于篇幅,没有过多介绍。 蜗蜗觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How三个角..
转载
发布博客 2022.05.04 ·
589 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Android开机画面显示

一、fbconfbcon是帧缓冲区控制台,它在帧缓冲系统初始化时初始化:static int __initfbmem_init(void){ ... fb_console_init(); return 0;}void __init fb_console_init(void){ int i; console_lock(); fbcon_device = device_create(fb_class, NULL, MKDEV(0, 0), NULL, "fbc
原创
发布博客 2022.04.05 ·
2535 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Jollen: Android 的 HAL 技術

Android 的 HAL 技術, #1: 簡介與發展現況 Android 的 HAL(硬體抽像層)是 Google 因應廠商「希望不公開源碼」的要求下,所推出的新觀念,其架構如下圖。雖然 HAL 現在的「抽象程度」還不足,現階段實作還不是全面符合 HAL 的架構規劃,不過也確實...
转载
发布博客 2022.03.20 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Android HAL层与Linux Kernel层驱动开发简介

近日稍微对Android中的驱动开发做了一些简要的了解,稍稍理清了一下Android驱动开发的套路,总结一下笔记。 HAL:Hardware Abstract Layer 硬件抽象层,由于Linux Kernel需要遵循GPL开源协议,硬件厂商为了保护自己硬件方面的各项参数不被...
转载
发布博客 2022.03.19 ·
2504 阅读 ·
3 点赞 ·
0 评论 ·
17 收藏

gralloc模块在surfacefinger 进程的内存映射镜像

1、如何知道高通msm8953平台用的是哪一个gralloc模块文件?可以通过以下方式:msm8953_64:/vendor/lib64/hw # ps -A | grep surfacesystem 637 1 313936 28800 ep_poll 0 S surfaceflingermsm8953_64:/vendor/lib64/hw # cat /proc/637/maps7f297a6000-7f297a7000 rw-p 0000
原创
发布博客 2022.03.01 ·
1689 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android GUI系统学习1:Gralloc

Gralloc模块是从Android Eclair(android 2.1)開始增加的一个HAL模块,Gralloc的含义为是Graphics Alloc(图形分配)。他对上为libui提供服务,为其分配显存,刷新显示等。对下对framebuffer进行管理。gralloc代码通常位于hardware/libhardware/modules/gralloc文件夹下。包括下面几个文件:Android.mk  framebuffer.cpp  gralloc.cpp  ..
转载
发布博客 2022.02.28 ·
2434 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏
加载更多