陈子陌
码龄5年
关注
提问 私信
  • 博客:134,792
    134,792
    总访问量
  • 37
    原创
  • 1,611,336
    排名
  • 146
    粉丝
  • 7
    铁粉

个人简介:一个简单的Linux驱动工程师。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:重庆市
  • 加入CSDN时间: 2019-06-14
博客简介:

陈子陌的博客

博客描述:
相信奇迹的人,本身和奇迹一样了不起。
查看详细资料
个人成就
  • 获得110次点赞
  • 内容获得38次评论
  • 获得901次收藏
  • 代码片获得564次分享
创作历程
  • 2篇
    2022年
  • 18篇
    2021年
  • 17篇
    2020年
成就勋章
TA的专栏
  • Linux之USB驱动深入学习
    4篇
  • 杂记
    3篇
  • 嵌入式开发学习笔记
    11篇
  • Input子系统
    2篇
  • Linux驱动开发笔记
    10篇
  • I2C
    2篇
  • Linux音频驱动
    3篇
  • SDIO_WiFi驱动
    2篇
  • u-boot学习
    2篇
  • Bsp之GPS模块移植笔记
    2篇
  • Linux软件编程知识回顾
    1篇
  • python
    2篇
  • C语言
    1篇
兴趣领域 设置
  • 服务器
    linux
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

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

Type-c接口及其协议介绍

本文主要介绍Type-c接口的pin脚定义和角色说明。
原创
发布博客 2022.09.09 ·
36443 阅读 ·
17 点赞 ·
3 评论 ·
168 收藏

安卓开机启动流程

安卓手机启动流程
原创
发布博客 2022.06.22 ·
2252 阅读 ·
2 点赞 ·
0 评论 ·
16 收藏

Linux驱动开发之杂项(MISC)驱动

一、前言misc的意思是混合、杂项的,因此misc驱动也叫杂项驱动。当我们板子上的某些外设在无法进行分类的时候就可以使用该项驱动。二、MISC驱动简介所有的杂项驱动都共用一个主设备号(10),不同的子杂项驱动使用不同的子设备号。与字符驱动不同的地方在于,misc设备驱动会自动地去创建cdev,因此,在我们需要去创建一个字符设备的时候,其实完全可以用misc设备驱动去替代它。misc设备驱动,实际上就是向Linux内核,也就是利用misc驱动core提供的接口去注册一个miscdevice
原创
发布博客 2021.12.03 ·
1709 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

Linux驱动开发之触摸驱动

一、引言前一篇文章介绍了Input子系统的基本架构和驱动编写流程。这一篇文章来介绍一下在实际项目中,我们应该来如何编写触摸驱动。二、触摸(TP)驱动1、触摸原理在学习如何编写触摸驱动之前,我觉得有必要先对触摸原理有一定的了解。TP芯片就是触摸芯片,它一般都被放置在触摸面板上,当用户点击显示屏,TP芯片内部固件程序会计算出对应的坐标值数据,然后会将对应中断脚给拉低。硬线中断拉低,会通过信号线透传到Cpu的INT脚上,Cpu感受到INT脚被拉低,触发硬件中断,这时候通过提前注册好
原创
发布博客 2021.09.02 ·
2426 阅读 ·
3 点赞 ·
0 评论 ·
18 收藏

Linux驱动开发之Input子系统

一、引言在Linux驱动开发的学习过程中,Input子系统绝对是你绕不开的一道关卡。在Linux系统中,不论是按键、鼠标、键盘,亦或者是触摸屏,统统都使用Input子系统来处理输入事件。二、Input子系统1、Input子系统概述Input就是输入的意思,因此Input子系统就是管理输入的系统,和Pinctrl、Gpio子系统一样,都是Linux内核针对某一类设备而创建的框架。不同的输入设备在Input子系统所代表的含义不同,比如按键、键盘就是代表按键信息,鼠标和触摸屏则是代表坐标信
原创
发布博客 2021.09.01 ·
1075 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

Linux驱动开发之LCD显示驱动调试

一、引言在实际项目中,LCD显示驱动调试是一件十分平常却又十分重要的事情,但因为每个项目的LCD屏都不同,所以每换一个项目都需要重新调试。而对于带LCD屏的项目,又分为两种类型,一种是一体机,一种是分体机。一体机:视频信号直接由信号线从cpu连接到屏端的TCON显示芯片。分体机:视频信号先由cpu到主板的串行器,再由串行器加串,途经LVDS差分信号新到达屏端的解串器,屏端解串器解串LVDS信号,最终将其输入到屏端TCON显示芯片上去。不过,不管是一体机还是分体机,都需要设置屏参。二、
原创
发布博客 2021.08.26 ·
2750 阅读 ·
2 点赞 ·
0 评论 ·
31 收藏

嵌入式开发之Nand-Flash和Nor-Flash的区别

一、引言在嵌入式开发中,想来每一个嵌入式开发工程师不可避免地都会听到或者接触到Flash这个东西。但是对于一部分人来说,他们并不清楚Flash还有Nand和Nor之分,因此就更不清楚这两者的区别了。今天偶然想起这个问题,于是查询资料,写下这篇博客,做个简单的笔记。二、Flash介绍FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改数据,即平时所说的“闪存”。Flash又分为NAND-Flash和NOR-Flash二种。U盘和MP3里用的就是这种存储器。
原创
发布博客 2021.07.09 ·
6010 阅读 ·
5 点赞 ·
0 评论 ·
22 收藏

安卓音频架构简述

一、前言从入职深圳这边的公司之后,已经做了两款声卡codec的移植了。想着今天没事,我又从网上搜索了一些资料,大概介绍一下安卓平台下的音频架构。二、安卓音频架构Linux早期的时候,内核所支持的音频框架叫做OSS,后面被ALSA框架所取代。安卓音频架构正是基于ALSA框架所建立的一套音频体系架构。大致框架如下:Java服务AudioManager作为服务端,本地服务AudioFlinger作为客户端,两者通过Binder机制交互。AudioFlinger对硬件功能的具体实现(比如
原创
发布博客 2021.07.02 ·
643 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发之RGB565转RGB888

一、前言在前面介绍FrameBuffer子系统曾说过一帧的概念:“我们将铺满一个lcd屏幕的数据称为一帧”。那么,在每一帧数据中又由许多个像素点构成。这些像素点就是本文的正题——RGB数据。所谓RGB数据,就是按照RED、GREEN、BLUE这样顺序排列的图像数据。而RGB565和RGB888这些英文字母后面的数字则是代表每种颜色的数据占据多少位了,所以RGB565在内存中占据16位,而RGB888在内存中占据24位。在实际项目中,一些平台因为不支持RGB888,只支持RGB565,
原创
发布博客 2021.06.22 ·
1185 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发之FrameBuffer子系统学习

一、引言之前在调显示驱动的时候,主要是根据平台设计好的套路来——也就是调屏参,但从来没有想过更底层的原理。随着工作的深入,也开始慢慢接触所谓的显示驱动——FrameBuffer子系统,简称fb驱动。接下来,就跟着我来了解一下Linux的显示驱动到底是怎样一个原理。二、FrameBuffer子系统1、FrameBuffer的字面意思FrameBuffer。从字面意思我们知道,也就是帧缓存。缓存我们清楚,那就是一段内存,用以存储某些东西。那么,什么是帧呢?我们将铺满一个lcd屏幕的数
原创
发布博客 2021.05.07 ·
616 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Linux驱动开发之USB驱动深入学习(二)——USB2.0协议

一、引言上一周,趁着空余时间,大概看了一下USB2.0的中文协议,对USB的相关概念又有了一定的深入了解。因为公司不是专门搞USB驱动的,因此也没有相关方面的专家,一切都只能靠自己摸索。目前来说的话,感觉要对USB驱动深入学习的话,那么它的协议还是很有必要学习的。二、USB2.0协议分享因为协议内容很多,但又感觉都比较重要,所以就不一一写出来了,有兴趣的小伙伴们自己下载下来看。百度云盘链接:链接:https://pan.baidu.com/s/1MzSXhRSI84aOpMYdr4l
原创
发布博客 2021.04.06 ·
740 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

Linux驱动开发之USB驱动深入学习(一)——USB驱动架构

一、引言随着工作的时间增加,不知不觉就快要工作一年了。从实习,跳槽,再到试用、转正,也做过一些项目,算是在Linux驱动开发这一行入了门。一些简单的外设自己也有能力编写了,但一些复杂的驱动还是需要原厂支持。每到这个时候,就感觉自己特别的废物,就会想到,怪不得那些大厂喜欢深度学习的人才。想来,只有深度学习,了解驱动的架构及原理,才能不依赖他人。自己可以不造轮子,但要有造轮子的能力。所以,我选了很常见的,但也同样复杂的Linux内核驱动——USB。立一个flag,接下来两年之内,我要对Linux
原创
发布博客 2021.03.31 ·
3686 阅读 ·
1 点赞 ·
1 评论 ·
25 收藏

Linux驱动开发之USB设备检测流程

一、引言最近工作中,因为工作需要,特地学习了一下USB设备的检测流程,做个笔记。二、大致流程从中断响应到probe对应的usb设备驱动:hub_irq -> kick_hub_wq -> queue_work -> hub_event -> port_event -> hub_port_connect_change -> hub_port_connect -> usb_alloc_dev -> choose_devnum -> hub_p
原创
发布博客 2021.02.25 ·
2396 阅读 ·
1 点赞 ·
0 评论 ·
25 收藏

嵌入式学习之shell脚本

一、引言该博客旨在记录shell一些常用的语法规则。二、Shell脚本中$0、$?、$!、$$、$*、$#、$@1. $$Shell本身的PID(ProcessID)。2. $!Shell最后运行的后台Process的PID。3. $?最后运行的命令的结束代码(返回值)。4. $-使用Set命令设定的Flag一览。5. $*所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。6. $@所有参数列表。如"$@"用「
原创
发布博客 2021.02.23 ·
258 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux嵌入式开发之内存占用

一、引言内存是嵌入式系统中的关键资源,内存占用主要是指软件系统的内存使用情况。本篇博客将介绍如何分析内存使用以便进行进一步优化内存占用相关的基础概念和相关工具。二、内存占用内存占用是应用程序运行时内存的使用或引用数量。对于开发者而言,可以使用的内存量决定了程序使用的复杂性。较大的应用程序需要更多的内存来存储数据和源代码,例如微软软件Microsoft office比之于Hello World应用程序必须使用更多的内存。由于硬件成本的考虑,嵌入式系统的内存资源远远少于PC环境。因此,在嵌入
原创
发布博客 2021.02.19 ·
1686 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

Linux驱动开发之USB驱动深入学习(三)——USB2.0ECHI驱动注册

一、USB1、概述USB(Universal Serial Bus)即“通用外部总线”,在各种场所已经大量使用。它的接口简单(只有5v电源和地、两根数据线D+和D-),可以外接硬盘、键盘、鼠标、打印机等多种设备。USB总线规范有1.1版和2.0版。USB1.1支持两种传输速率:低速1.5Mbit/s,全速12Mbit/s,对于鼠标、键盘、CD-ROM等设备,这样的速率够了。但是在访问硬盘、摄像机时,还是稍显不足、为此,USB2.0提供了一种更高的传输速率:高速,他可以达到480Mbit/s。US
原创
发布博客 2021.05.31 ·
1977 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

Linux驱动开发之DEVICE_ATTR调试技术

一、功能介绍1、简介在sysfs中添加device属性文件,可以动态控制device或者获取device信息。2、相关函数、宏原型及功能2.1、DEVICE_ATTRDEVICE_ATTR宏定义在kernel/include/linux/device.h文件中。原型如下:#defineDEVICE_ATTR(_name,_mode,_show,_store)\structdevice_attributedev_attr_##_name=__ATTR(_...
原创
发布博客 2021.01.30 ·
2336 阅读 ·
3 点赞 ·
2 评论 ·
23 收藏

飞思卡尔IMX6之TLV320ADC310X系列声卡驱动移植

一、前言在介绍音频总线I2S总线博客的前言里,我就已经说过,后面会把这次移植声卡驱动的前后经过分享出来。这次,终于忙里偷闲,写出这篇博客来。众所周知,Linux对于音频,是有自己的一套驱动框架的,那就是——ALSA。以往,像V4L2视频框架、I2C总线框架、INPUT子系统等,我还耐心研究过,但这套音频框架我却甚至都没有时间去研究。深圳的工作节奏相比较重庆的工作节奏快太多了,每天都有事情做,忙的不行。这里我分享一个链接,里面对于ALSA框架介绍的挺清楚的,大家可以去看一下。提醒:
原创
发布博客 2021.01.28 ·
2341 阅读 ·
4 点赞 ·
10 评论 ·
19 收藏

音频总线之I2S总线介绍及相关协议

一、前言两周前接到任务,项目换了一个codec芯片,需要重新移植声卡驱动。因为之前没有做过声卡驱动移植,所以对音频相关的知识都不怎么了解,为此,在网上搜索了很多资料
原创
发布博客 2021.01.25 ·
7882 阅读 ·
5 点赞 ·
0 评论 ·
41 收藏

I2C时序分析及模拟实现I2C主设备驱动

一、前言对于做嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置。不过,使用I2C协议,对时序的掌握,无疑不是重中之重。我们只有正确掌握时序,才能使用普通的GPIO模拟实现出一个功能正常的I2C主设备。在我们分析I2C的时序之前,先来了解一下I2C协议的相关基础知识。注意:本文源码都是基于STM32。二、I2C1、I2C总线I2C总线是由Philips公司开发的一种简单、双向二线(SDA数据线和SCL时钟线)制同步(同步的意
原创
发布博客 2021.01.05 ·
1708 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏
加载更多