嵌入式Linux系统开发
熟悉硬件、STM32单片机、嵌入式 Linux、Android。
展开
-
Linux 驱动与调试大全 - 总目录
欢迎大家来到 Linux 驱动与调试大全,手把手带你 debug原创 2023-01-06 23:37:56 · 1205 阅读 · 0 评论 -
芯片原厂工程师带你学 Linux 驱动
芯片原厂工程师,手把手带你学Linux驱动,感兴趣的点个关注私聊呀。原创 2024-05-13 09:17:47 · 113 阅读 · 0 评论 -
Linux 电源子系统之充电、放电、低功耗
在嵌入式产品中,有三个重要模块:充电、放电、低功耗。原创 2023-08-06 11:30:40 · 647 阅读 · 0 评论 -
手把手教你使用 ftrace 对 Linux 系统进行 debug
strace:用来跟踪 Linux 进程执行时的系统调用和接收所接收的信号,可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。ftrace:是一个 Linux 内核函数跟踪器,function tracer,旨在帮助开发人员和系统设计者可以找到内核内部发生的事情,从 Linux-2.6 内核就支持了。atrace:Android tracer,使用 ftrace 来跟踪 Android 上层的函数调用。原创 2023-08-06 11:19:50 · 449 阅读 · 0 评论 -
9.1、UART spec
UART 一般的接口电平有 TTL 和 RS-232,一般开发板上都有 TXD 和 RXD 这样的引脚,这些引脚低电平表示逻辑 0,高电平表示逻辑 1,这个就是 TTL 电平。数据位:数据位就是实际要传输的数据,数据位数可选择 5~8 位,我们一般都是按照字节传输数据的,一个字节 8 位,因此数据位通常是 8 位的。停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可以不使用奇偶校验功能。原创 2023-05-23 22:19:20 · 429 阅读 · 0 评论 -
USB 学习路线
USB 学习路线图原创 2023-02-27 20:41:02 · 290 阅读 · 0 评论 -
Single SPI、Dual SPI、Qaud SPI
Single SPI、Dual SPI、Qaud SPI原创 2023-02-04 22:05:00 · 509 阅读 · 0 评论 -
手把手教你分析 Linux 启动流程
Linux 启动流程原创 2023-01-15 15:05:36 · 866 阅读 · 0 评论 -
Linux 内核启动流程之 start_kernel
/kernel-6.1/init/main.c原创 2023-01-15 14:14:23 · 284 阅读 · 0 评论 -
Linux 下 GPIO 和 pinctrl 子系统框架
Linux 下 GPIO 和 pinctrl 子系统框架原创 2023-01-15 13:57:55 · 484 阅读 · 0 评论 -
GPIO 八种工作模式及其硬件框图
GPIO 八种工作模式及其硬件框图原创 2023-01-15 13:42:00 · 1980 阅读 · 0 评论 -
Linux 中断子系统(八):中断处理流程
Linux 中断处理流程原创 2023-01-15 12:41:58 · 886 阅读 · 0 评论 -
Linux 中断子系统(七):注册中断
Linux 注册中断原创 2023-01-15 12:24:11 · 508 阅读 · 0 评论 -
Linux 中断子系统(六):核心数据结构
Linux 中断子系统核心数据结构原创 2023-01-15 12:10:28 · 458 阅读 · 0 评论 -
Linux 中断控制器(五):中断号映射
中断号映射是基础原创 2023-01-15 12:02:56 · 1569 阅读 · 0 评论 -
Linux 中断子系统(四):GIC中断初始化
GIC 中断初始化原创 2023-01-15 11:57:25 · 471 阅读 · 0 评论 -
Linux 中断子系统(三):中断处理机制
这篇文章有利于大家调试中断原创 2023-01-15 11:23:48 · 520 阅读 · 0 评论 -
Linux 中断子系统(二):GIC 中断控制器
GIC 中断控制器原创 2023-01-10 21:37:22 · 650 阅读 · 0 评论 -
一文带你了解 sensor
一文带你了解 sensorhub原创 2023-01-10 21:06:35 · 851 阅读 · 0 评论 -
传感器选型(sensor)
传感器选型原创 2023-01-09 22:06:02 · 672 阅读 · 0 评论 -
I2C协议精讲(二):I2C上拉电阻计算
I2C 总线能挂多少设备?理论上:7-bit address :2 的 7 次方,能挂 128 个设备。10-bit address :2 的 10 次方,能挂 1024 个设备。当然,要把预留设备地址去除,7 bit 协议规定了 8个预留地址,厂商不可以使用。保留地址如下:但是I2C协议规定,总线上的电容不可以超过 400pF。管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。总线之所以规定电容大小是因为,I2C 使用的GPIO为开漏结构,原创 2021-12-06 21:45:25 · 11089 阅读 · 0 评论 -
为什么要阅读linux内核源码以及如何阅读Linux内核源码
目的:为了更好地编写驱动程序,对自己写的程序有更深入的理解,并且自己的岗位定位在底层。阅读linux内核,常用下面两种方法:1.bochs+linux0.11+书(linux内核完全注释、linux内核完全剖析、linux内核设计的艺术)2.sourcesinsight+linx2.X+书(linux内核情景分析)阅读源码分为纵向阅读和横向阅读。纵向就是跟着内核的执行流程来读,横向就是按照...转载 2019-12-30 17:11:28 · 3527 阅读 · 3 评论 -
IIC总线最多可以挂多少个设备
由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。但是IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF。管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。总线之所以规定电容大小是因为,IIC的OD要求外...原创 2020-03-25 23:50:43 · 12395 阅读 · 0 评论 -
SPI spec
SPI:Serial Perripheral Interface,串行外围设备接口,由 Motorola 公司提出,是一种高速、全双工、同步通信总线。SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,无应答机制。一般 SPI 需要 4 根线,但是也可以使用三根线(单向传输),本文我们讲解标准的 4 线 SPI,这四根线如下:①、CS/SS,Slave Select/Chip Select,这个是片选信号线,用于选择需要进行通信的从设备。I2C 主机是通过发送从机设备地址来选择需要进行通信的从原创 2022-04-18 22:22:31 · 616 阅读 · 0 评论 -
I2C 子系统(四):I2C debug
I2C debug 全解原创 2022-06-19 16:46:22 · 1350 阅读 · 0 评论 -
I2C 子系统(二):I3C spec
一文带你了解 I3C原创 2022-06-19 16:43:02 · 3866 阅读 · 1 评论 -
手把手教你使用 i2c-tools
i2c-tools 简介在嵌入式开发中,有时候需要确认硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试I2C总线的工具:i2c-tools。i2c-tools工具是一个专门调试i2c的,开源,可获取挂载的设备及设备地址,还可以读写I2C设备寄存器。调试新的设备驱动时,难免要反复修改寄存器,然后看结果现象。传统的做法是修改驱动代码寄存器值->编译->下载->运行->看结果,这一过程比较费时间,而每次需要改的可能只是1个bit,这种情况下 i原创 2022-04-18 22:24:50 · 8489 阅读 · 2 评论 -
I2C 死锁及恢复方法
最近在项目中遇到了 I2C 死锁问题,发出来给大家看看。原创 2022-12-10 22:00:43 · 4499 阅读 · 0 评论 -
IIC、SPI、UART、CAN、RS485、USB、PCI速率
IICS(标准模式)测量与控制场合,100kb/sF(快速模式),速率为 400kb/sHs(高速模式),速率为 3.4Mb/s。具体看器件要求,单片机一般是400k或以下常用。IIC协议是有规定的,其总线的容性负载要求,目前最高的1M左右。普通的芯片只有 低速 100K 与 高速 400K 两种规格。如果通信距离较远,导线的分布电容较大,而上拉电阻又取得太时,信号上升时间不够,接收方就...原创 2020-03-29 21:16:17 · 3370 阅读 · 0 评论 -
Linux 和 Android 源码树
Linux 和 Android 源码树原创 2022-09-18 21:45:23 · 704 阅读 · 0 评论 -
I2C协议精讲(一):I2C bus spec
I2C 系列文章主要分为两个部分来写:1、I2C bus spec:专注于 I2C 协议本身,研究它的传输机制,硬件相关。2、I2C driver:研究 I2C 的软件驱动,包括总线驱动和设备驱动两部分。I2C IntroductionI2C:Inter-Integrated Circuit,集成电路总线。由 Philips 公司在 1982 年为主机板、嵌入式系统开发的一种简单、双向二线制同步串行总线。 Philips 半导体事业部就是现在的 NXP。2006 年 11 月,I2C 的专利已经到原创 2021-12-06 21:39:24 · 956 阅读 · 0 评论 -
IIC和SPI优缺点
用哪种协议首先肯定是看这个芯片支持什么协议。其次再考虑如下:IIC不考虑电源和GND的情况下,两条线,SCL时钟线和SDA数据线,同一个IIC总线上可以挂载2^7-1一共127个设备,不过由于寄生电容的存在,挂载不了这么多,但就算挂载几个设备,也节省主控IO口资源。同一条IIC总线上,不同设备靠设备地址区分。由于只有两条线,所以是半双工通信,通信速度慢。SPI不考虑电源和GND的情况下,SPI有四根线,片选信号CS,时钟SCLK,主输入从输出MISO,主输出从输入MOSI。所以占用主控IO较原创 2020-08-04 10:50:31 · 2928 阅读 · 0 评论 -
Linux 中断子系统(一):框架
中断是大家用的最多的功能,不管是单片机还是 Linux 系统,都需要用到中断,对它的深入理解是非常必要的。为什么需要中断?答案:处理器的速度比外设快很多,内核必须要处理其他任务,只有当外设准备好了,CPU才转过来处理外设的事务。一般通讯方式为:轮询(polling)、中断(interrupt),除了网络传输适合用轮询外,一般其他情况都是用中断。中断分类中断是指CPU正常运行期间,由于内外部事件或程序预先安排的事件,引起的CPU暂时停止正在运行的程序,转而为该内部或外部预先安排的事件服务的程序中原创 2021-12-06 21:15:26 · 619 阅读 · 0 评论 -
SPI driver
SPI 相关源文件目录:kernel-4.14/drivers/spi/spi.c Linux 提供的通用接口封装层驱动kernel-4.14/drivers/spi/spidev.c linux 提供的 SPI 通用设备驱动程序kernel-4.14/drivers/spi/spi-mt65xx.c IC 厂商提供的 SPI 控制器驱动,不同厂商命名不同kernel-4.14/include/linux/spi/spi.h 头文件,包含 SPI 的主要数据结构和函数以上文件对应如下 S原创 2022-04-18 22:23:32 · 502 阅读 · 0 评论 -
I2C 子系统(一):I2C spec
一文带你搞懂 I2C spec原创 2022-06-19 16:41:48 · 1065 阅读 · 0 评论 -
I2C 子系统(三):I2C Driver
一文带你搞懂 Linux I2C Driver原创 2022-06-19 16:45:29 · 1237 阅读 · 0 评论