- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 DDR中DM DQS信号简介
由于DDR在每个时钟周期的上升沿和下降沿传输数据,DQS的边沿(上升沿和下降沿)为接收端提供了数据采样的精确时间窗口。在DDR(双倍数据速率)内存中,DM(Data Mask)和DQS(Data Strobe)信号是确保高速数据传输可靠性和灵活性的关键。每个DM位对应一个字节(8位)的数据,当DM为高电平时,对应的数据字节被屏蔽,不会被写入内存。:数据信号(DQ)与DQS同步传输(源同步),减少时钟偏移(Skew)的影响。:例如,仅更新64位数据中的低32位,通过置高DM的高4位实现屏蔽。
2025-04-03 14:33:09
356
原创 linux poll、epoll驱动层应用层示例,实现高精度任务处理
(如数据可读/可写),应用层通过文件描述符监控这些事件。实现高效的事件驱动交互,适用于传感器数据采集、异步通知等场景。边缘触发(ET)模式下,必须将文件描述符设置为非阻塞(的驱动层与应用层协作需要内核模块提供。唤醒等待队列,通知应用层事件就绪。通过以上实现,驱动层与应用层可通过。,当写入数据时触发可读事件。和自旋锁保护共享数据(如。避免在中断上下文中直接调用。),并循环读取直到返回。: 创建一个字符设备。方法,通过等待队列(在 Linux 中,
2025-03-31 22:19:17
416
原创 linux Kthread的使用示例
在Linux内核中,kthread(内核线程)用于创建运行在内核空间的后台线程,常用于驱动开发中执行异步任务(如轮询设备状态、数据处理等)。
2025-03-31 21:11:16
952
原创 linux hrtimer使用简介
在Linux驱动开发中,高精度定时器(hrtimer)的设计旨在提供纳秒级精度的定时功能,其实现基于红黑树算法和硬件时钟事件的支持。
2025-03-31 20:44:22
695
原创 ARM64 嵌入式汇编内存屏蔽指令的写法
在 ARM64 架构中,DSB(Data Synchronization Barrier)和DMB(Data Memory Barrier)是用于强制内存访问顺序的关键指令。DMB确保在屏障的所有内存访问(Load/Store)在屏障的内存访问之前完成,但对指令执行顺序无影响。常用于多核/多线程场景,防止内存访问乱序。
2025-03-31 17:34:36
539
原创 使用AXI DMA封装通用函数替代memcpy,减少cpu占用率,增加拷贝速度
2. 使用hwacc_memcpy可执行程序测试,使用ion申请物理地址的方式invalid cache测试ts_memcpy函数速度,测得 512KB拷贝:约752MB/s,2MB:957MB/s, 4MB: 995MB/s,8MB:1014MB/s。1. 使用hwacc_memcpy可执行程序测试,使用指定物理地址不刷cache测试ts_memcpy函数速度,测得 512KB拷贝:约989MB/s,2MB:1.2GB/s, 4MB: 1.3GB/s。最终通过DMA实现了拷贝数据5倍性能的提升。
2025-03-28 18:51:17
517
原创 DDR2 DDR3 DDR4 linux 驱动开发
正常DDR驱动会放在二级loader或uboot spl中,但在kernel也有处理DDR功能的需求,估在kernel增加DDR驱动用于实现这些特定功能。计划功能点:1.能够观察training眼图,可简介指示非合封的DDR PCB走线情况是否良好2. 支持调试业务的时候修改DDR port的优先级3.可支持DDR频率调整功能4.支持kernel直接retention时调用下电部分代码5.处理DDR相关中断异常。
2025-03-27 18:00:26
137
原创 devm_ioremap_resource映射的内存,不需要iounmap调用
使用映射内存后,模块卸载时无需手动iounmap,内核会确保资源正确释放。这种机制减少了代码冗余和潜在的内存泄漏风险,是Linux设备驱动开发中的推荐做法。
2025-03-27 14:24:03
223
原创 grep + 脚本截取命令的使用
最近在批量检查qspi 启动重复配置的一个问题,需要排查当前用的驱动是哪个,需要用到脚本检查,顺带做了下记录。注释:其中cut -d 是截取文件;cat + grep 是搜索文件中的内容。2.排查真正使用的是哪个驱动。
2025-03-26 16:04:31
271
原创 Flex noc V1.1的qos generator和probe功能总结
最近在编写新版本flex noc驱动,针对新版本功能做了一些记录,方便程序开发。其中针对1.0版本寄存器与功能都做了些减面积的改动,先将主要功能进行梳理记录。
2025-03-21 20:14:15
1058
原创 基于新思ddr控制器与芯动ddr phy的ddr3 retention深度休眠的training数据影响因素实验
为了摸索retention模式下的可靠性范围,做了如下实验。用于评估training值更新阈值如何设定。
2025-03-14 15:22:37
154
原创 基于新思ddr控制器与芯动ddr phy的钰创ddr2、紫光ddr3 retention深度休眠方案
主要讲述新思和芯动IP+钰创DDR2 紫光DDR3 深度休眠retention的流程与详细操作方法和技术难点
2025-03-11 20:59:45
1027
原创 基于DW timer实现RF433MHz无线接受模块linux驱动
本驱动主要利用DW timer定时器触发中断,每80us读取gpio状态,接受RXB62 ASK超外差无线接收模块,通过procfs将收到的gpio 24bit信息显示出来,供上层软件使用,解决了在应用层或kernel层使用cpu定时因为调度影响导致精度不够问题。
2025-01-24 15:49:55
187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人