自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(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

原创 在DDR2 DDR3 芯片上降低cpu占用率的方法

经过上面的方法后,cpu占用率降低了30%,有效缓解了cpu占用率高的问题。

2025-03-27 16:16:29 541

原创 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 FPGA调试记录

在fpga下验证flex noc 带宽统计与latency统计功能

2025-03-22 16:50:47 187

原创 Flex noc V1.1的qos generator和probe功能总结

最近在编写新版本flex noc驱动,针对新版本功能做了一些记录,方便程序开发。其中针对1.0版本寄存器与功能都做了些减面积的改动,先将主要功能进行梳理记录。

2025-03-21 20:14:15 1058

原创 Flex NOC总线驱动简介与应用

介绍基于Flex NOC总线功能与NOC驱动实现方法,对NOC驱动的使用场景进行简要说明

2025-03-19 09:40:07 1010

原创 基于新思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

上海世博村VIP生活馆电力监控系统的应用案例

上海世博村VIP生活馆电力监控系统的应用案例

2013-08-08

基于DSP技术的RFID读写器设计实现

基于DSP技术的RFID读写器设计实现

2013-08-08

霍尼韦尔(Honeywell) 智能家居系统解决方案.

霍尼韦尔(Honeywell) 智能家居系统解决方案.

2013-08-08

Eagle_3D入门

Eagle_3D入门

2013-07-28

cadence教程轻松学

cadence教程轻松学

2013-07-28

DSP_入门教程

DSP_入门教程

2013-07-28

U-BOOT源码分析及移植.pdf

U-BOOT源码分析及移植.pdf arm类文档

2013-06-22

tftp32.400

一款tftp服务类软件!很好用 非常方便

2013-05-26

ic产品认识与学习

ICic产品认识与学习ic产品认识与学习

2011-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除