- 博客(18)
- 收藏
- 关注
原创 ubuntu升级失败报错
参考https://blog.csdn.net/jakekiller00/article/details/147016548。打印出来是code没升级。
2025-09-09 12:44:08
348
原创 VMware、ubuntu环境配置
uboot已经在u盘里 不用管 然后可以直接编译 什么都不用做 得到生成的设备树dtb和镜像文件zImage。移动拷贝备份好的文件,包括根文件系统,linux内核文件等 参考ubuntu环境配置的word文档。拷贝解压rootfs后即可 无需修改 参考38.4 我打包好的根文件系统已经改完了。进入自定义硬件 分配内核和内存 我的电脑32G内存 可以分8G。点击后会进入broadcom官网,登录账号,若无账号先注册。下载用户协议阅读,填写相关信息,就可以勾选下载了。登录成功后进入我的下载页面,
2025-08-24 03:10:31
969
原创 Linux驱动——I2C驱动核心总结
参考文章:i2c_bus总线i2c_clienti2c_driver这个四个结构体以及总线是怎么和设备树信息以及驱动文件信息匹配的?设备和驱动是怎么匹配的?带着这些问题去阅读。我们都知道注册一个字符设备驱动就会向上提供一个字符设备节点,比如/dev/xxx节点,对这个节点进行write/read操作,最终就会调用我们在字符驱动中提供的write/read函数,完成我们想要实现的功能。同样地,i2c设备和驱动匹配后,也会注册设备节点供用户操作。这里的设备节点可以是字符设备,也可以是块设备。
2025-08-19 02:09:32
527
原创 Linux驱动开发——I2C驱动框架
裸机中对于AP3216C传感器的驱动编写,主要提供四个文件:bsp_i2c.c、bsp_i2c.h、bsp_ap3216c.c和bsp_ap3216c.h前两个是IMX6U的IIC接口驱动,后来两个是具体设备的IIC设备驱动文件。相当于有两部分驱动:1、IIC主机驱动,通用的通信协议初始化,数据传输2、IIC设备驱动,具体设备的初始化和传输等对于IIC主机驱动,编写完成后无需修改,其他的IIC设备直接调用其提供的API函数即可。
2025-08-18 19:26:35
1197
原创 软件iic收不到ack信号怎么排查
软件iic通信mpu6050,发送了地址信息,但一直接收不到应答位,Ack为1,怎么怎么排查软件IIC是通过GPIO模拟的,因此时序控制需要特别注意。以下是一些常见问题:如果硬件和时序都没有问题,可以排查代码中的潜在问题,以下是一些建议。6.调试建议使用逻辑分析仪:如果你有逻辑分析仪或示波器,可以使用它来检查 SDA 和 SCL 线的时序,确保时序信号符合 I2C 协议,且没有信号冲突。比如:测量起始/停止条件的脉冲宽度是否达标测量SCL上升沿前SDA的稳定时间是否满足手册要求等或者降低IIC
2025-06-19 21:34:37
1460
原创 面试流程问题回答
原因硬件上:排查是不是SDA或SCL线存在接触不良的情况;电源有没有给从设备正确供电;上拉电阻配置不合理,过大会导致上升沿变慢,不能再规定时间内到达高电平,违反时序要求;过小会导致电流过大,超出芯片规格等问题;从设备的硬件地址连接引脚(A0,A1,A2…)是否有误,导致实际地址和主设备发送的不匹配;软件上:首先排查是不是从设备地址格式错误;看软件配置的IIC时钟速率,结合芯片手册,看一下是不是超出了从设备支持的最大速度;GPIO模式配置,SDA和SCL应该要配置成开漏输出。
2025-06-18 15:00:34
236
原创 项目芯片选型以及低功耗参考
所以综合成本和功耗性能方面的考虑,52832是一个比较中间保守的选择,也是Nordic公司销售最高的芯片,开发工具链,SDK案例比较成熟,对于第一次开发比较友好。用国产的还得我们上位机软件进行更深层次的滤波。840的话支持多协议,且有1MB的Flash,还支持zigbee协议,可以和蓝牙协议并发,但同样的功耗略高;52832 基于64MHz Cortex-M4F内核架构,单核,支持浮点运算,运算能力更好,外带512KB Flash和64KB的RAM,能够轻松承载蓝牙协议栈(约100KB)和用户程序。
2025-06-17 17:24:01
1279
原创 计算机网络
TCP/IP网络从上到下分为,应用层、传输层、网络层和网络接口层。网络接口层传输单位为帧(frame),IP层传输单位为包(packet),TCP层传输单位为段(segment),HTTP传输单位则是消息或者报文(message)应用层提供原始应用数据;传输层负责分段并添加TCP头,用来告知发送到什么应用(端口);网络层添加IP头形成网络包,用来明确数据包的目的设备地址;网络接口层添加帧头,用来在以太网中通讯。TCp是一种面向连接的可靠的。基于字节流的传输层通信协议。
2025-06-09 22:32:09
859
原创 Cortex-M架构学习
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考什么是Cortex-M3&M4?什么是ARM架构?Cortex-M3和Cortex-M4都是基于ARM处理器架构的处理器。ARM架构有低功耗、高性能、易于集成以及成本效益高等特点,广泛应用于移动设备、嵌入式系统、物联网领域等。在FreeRTOS中的任务调度切换中,主要搞清楚几个关键的寄存器。
2025-06-07 22:44:16
900
原创 pinctrl和gpio子系统
Linux驱动讲究驱动分离和分层,pinctrl和gpio子系统就是驱动分离和分层思想下的产物。驱动分离和分层其实就是按照面向对象编程的设计思想而设计的设备驱动框架。代码复杂:需要查阅芯片手册,了解每个寄存器的位定义容易出错:引脚功能冲突可能导致系统不稳定移植性差:不同芯片的寄存器布局不同,代码难以复用Pinctrl和GPIO子系统的引入,将硬件相关的细节抽象出来,为驱动开发者提供了统一的API接口,大大简化了开发流程。pinctrl子系统完成PIN脚的特定复用以及电气属性配置;
2025-06-03 23:35:02
1182
原创 linux驱动——字符设备驱动总结
定义一个目标设备结构体,这个结构体中包含如下变量待分配的设备号dev_t;该字符设备对应的struct cdev结构体;设备类class;struct device设备结构体主次设备号整型变量int major;int minor;定义文件操作函数file_operations结构体。自定义实现设备需要的操作函数实现驱动入口函数xxx_init,在驱动入口函数完成具体字符设备的初始化,譬如相关寄存器位的设置。然后开始注册字符设备驱动。。。。1、
2025-05-25 19:26:20
899
原创 低功耗蓝牙协议栈——GAP规范以及广播详解
Generic Access Profile(通用访问规范) 它在用来控制设备连接和广播,用于提供蓝牙设备的通用访问功能,包括设备发现、连接、鉴权、服务发现等等。GATT和ATT是建立连接后的通信规范蓝牙连接的规范是通过GAP建立通信的。GAP使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与合同设备进行交互。GAP 给设备定义了若干角色,其中主要的两个是:外围设备(Peripheral)和中心设备(Central)。
2025-05-23 18:39:38
1668
原创 虚拟机安装Ubuntu检测到U盘但是连接选项灰色
如果其他都没问题,但是可移动设备那一栏是灰色的,可以尝试打开虚拟机系统的本地文件,寻找vmx格式文件并用记事本打开,把里面usb.restrictions.defaultAllow = “FALSE” 改成usb.restrictions.defaultAllow = “TRUE”。改了之后正常连接识别。
2024-11-04 15:42:24
541
原创 数据结构学习——树
课程链接:【【强烈推荐】深入浅出数据结构 - 顶尖程序员图文讲解 - UP主翻译校对 (已完结)】 https://www.bilibili.com/video/BV1Fv4y1f7T1/?提示:以下是本篇文章正文内容,下面案例可供参考。
2024-09-09 11:08:06
967
原创 数据结构学习之队列
课程链接:【【强烈推荐】深入浅出数据结构 - 顶尖程序员图文讲解 - UP主翻译校对 (已完结)】 https://www.bilibili.com/video/BV1Fv4y1f7T1/?p=17&share_source=copy_web&vd_source=a380547882bee6e5ecb87e70ac629227————————————————队列先进先出,栈先进后出。栈的插入和弹出都必须从一端进行,称为栈顶。列表元素的插入必须从队尾进行,元素删除必须从另外一段,即队头进行。使用数组实
2024-08-29 21:15:19
507
原创 数据结构学习之栈
课程链接:【【强烈推荐】深入浅出数据结构 - 顶尖程序员图文讲解 - UP主翻译校对 (已完结)】 https://www.bilibili.com/video/BV1Fv4y1f7T1/?提示:以下是本篇文章正文内容,下面案例可供参考。
2024-08-27 15:11:26
805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅