- 博客(249)
- 资源 (34)
- 收藏
- 关注

原创 usb资料收集
https://beyondlogic.org/usbnutshell/usb1.shtml
2021-04-16 16:17:16
409

原创 蒋梦麟
诸君离学校而去了。在社会上立身的困难,恐怕比在学校里求学还要加甚。若非立志奋斗,则以前所受的教育,反足以增加人生的苦恼,或转为堕落的工具。这是诸君所当特别注意的。事业的成功,须经过长时间的辛苦艰难——成功的代价,走过了许多荆棘的路,方才能寻获康庄大道。立志是砍荆棘的斧斤,奋斗是劳力。万不可希望以最少的劳力,获最大的成功。================================
2008-07-06 21:43:00
910
原创 瞬态响应导致的pcie模块重启
【摘要】本文分析了PCIE模块因电源瞬态响应不足导致的复位故障现象,重点探讨了电源设计中瞬态响应的关键概念和解决方案。通过DC-DC转换器示例,详细说明了电容组合设计对改善瞬态响应的重要性,包括总容量计算、电容类型选择(电解/聚合物电容+MLCC+陶瓷电容)及布局策略。文章提供了理论设计公式和实际设计建议,强调在缺乏模块参数时经验值的重要性,最终实现将电压跌落从63mV降至16mV的优化效果,显著提升系统稳定性。
2025-08-02 10:07:35
135
原创 外设数据到昇腾310推理卡 之四ion与dma buf历程
摘要:本文分析了Android内存管理器ION的发展历程及其被DMA-BUFHEAP替代的过程。ION曾用于解决多媒体缓冲共享问题,但因碎片化和性能瓶颈逐渐被2019年进入Linux主线的DMA-BUFHEAP取代。文章对比了两者的特性差异,并给出不同内核版本下的兼容性建议(5.10开始必须迁移,5.11后仅支持HEAP)。通过分析5.10和5.11版本代码变化,指出缓存同步接口的差异,强调开发时需考虑架构支持和硬件兼容性。最后提出后续将重点分析CMA_HEAP的实现与应用。
2025-07-27 12:28:29
962
原创 3403 烧结10% timeout error问题之PCIE时钟
摘要:文章分析了海思3403芯片PCIE烧结过程中10%失败率问题。排查发现PCIE_REFCLK_SEL时钟选择配置存在问题,硬件设计方面确认了电阻配置(两端各49.9Ω下拉电阻导致总阻抗25Ω)与PCIE规范存在差异,可能导致信号质量问题。尽管按规范调整了电阻和电容配置(AC耦合电容0.1μF~0.2μF,49.9Ω±1%下拉电阻),问题仍未解决。文章指出硬件设计中涉及双方通信时需全局考虑阻抗匹配,并暗示3403的10%烧结失败率是常见现象。(149字)
2025-07-26 10:50:09
788
原创 外设数据到昇腾310推理卡 之三 pgprot_dmacoherent
文章摘要:本文分析了Linux内核中vb2_queue结构在V4L2框架下的初始化过程,对比了sun4i和rockchip两种设备驱动的实现差异。重点探讨了mmap内存映射时的属性配置问题,通过实验测试了不同内存类型(DMA-coherent、cache、nocache)的读写性能。结果表明,DMA-coherent内存在CPU读取时耗时较长,这会影响摄像头等设备获取图像后的CPU处理效率。最后指出该问题在Jetson和Rockchip等平台均有类似报告,建议开发者关注此类性能瓶颈。
2025-07-19 15:56:07
565
原创 外设数据到昇腾310推理卡 之二dma_alloc_attrs
本文分析了Linux内核DMA内存分配机制,重点介绍了三种分配方式:1)硬件一致性内存分配(通过dma-coherent属性);2)直接物理地址映射(dma_direct_alloc);3)IOMMU映射。详细阐述了dma_alloc_attrs的核心流程:物理页分配、地址转换和缓存一致性处理,并对比了不同属性(如DMA_ATTR_NO_KERNEL_MAPPING)的应用场景。文章还指出dma_alloc_coherent实际调用dma_alloc_attrs且默认关闭cache
2025-07-12 15:13:11
1016
原创 外设数据到昇腾310推理卡 之一
本文分析了Linux内核中视频缓冲区管理的底层内存分配机制,重点介绍了videobuf2框架下的三种内存分配方式:dma-contig(物理连续内存)、dma-sg(非连续内存)和cma-sg(CMA内存)。针对需要物理连续内存的应用场景(如摄像头、编解码器),详细解析了videobuf2-dma-contig.c的实现,包括其核心接口函数和DMA属性配置。特别讨论了DMA_ATTR_FORCE_CONTIGUOUS等关键属性在不同硬件场景下的应用限制,指出CMA内存大小对商用系统的影响。最后提出了内存分配
2025-07-12 10:11:11
1083
原创 mmap映射物理内存之三invalid cache
本文探讨了ARM架构下cache无效化(invalid)操作的实现方案。通过实验发现:1)用户态无法直接执行DCIVAC指令,需通过内核态ioctl接口实现;2)内核态invalid操作需使用copy_from_user安全接口传输用户数据;3)mmap映射的物理地址无法被invalid操作处理,触发段错误。分析指出这与ARMv8的PAN(Privileged Access Never)安全机制相关,但当前系统未启用该功能。测试表明malloc分配的内存可正常invalid,而mmap内存则不行。最终建议尝
2025-06-28 21:42:17
328
原创 mmap映射物理内存之二clean cache
本文设计了一种在aarch64架构下测试cleancache操作有效性的方法:通过两个程序分别以带cache和不带cache方式映射同一段物理内存,写入特定模式数据后验证读取结果。实验表明,按64字节cacheline步长执行dccvac指令可有效清空缓存,但单指令效率较低;优化为4/6指令并行后,清理32MB数据的耗时从26ms降至6ms。测试还发现,步长增大至4KB会导致缓存清理不完全。该方案为验证和优化cache一致性操作提供了有效手段,未来可结合NEON指令和多核处理进一步提升性能。
2025-06-28 15:27:54
852
原创 mmap映射物理内存之一cache与lock
本文探讨了通过mmap映射预留内存的性能优化问题。测试环境为飞腾D2000平台,使用mbw工具测得单核内存拷贝带宽基准为3.6GB/s。研究发现:1)mmap映射内核预留内存默认关闭cache,导致拷贝性能降至90KB/s;2)开启cache后性能提升至1.88MB/s,但存在mlock失效问题;3)mlock可使malloc内存拷贝速度从2.28MB/s提升至4.56MB/s。分析表明,关闭cache导致CPU直接访问内存,延迟增加10倍,而ARM架构在非缓存模式下指令效率极低。建议在需要CPU频繁访问的
2025-06-28 11:15:17
836
原创 linux 常用工具的静态编译之一
在嵌入式开发中,有时一些常用的工具在系统中并没有,这时或者通过buildroot等在制作文件系统时生成,或者静态交叉编译使用。 静态交叉编译出的文件虽然大,但通用性好。本文介绍几个常用工具的交叉编译,在x86机器编译aarch64。
2025-06-14 10:49:40
691
原创 自定义reset50模型转换到昇腾om
1) 自定义网络的模型转换,需要转换时实例化网络模型。 2) 明确模型输入数据的维度及各维度的大小。毕竟模型的主要工作即处理这些数据。
2025-03-22 22:24:34
1049
原创 3588 typec之正反插
typec的接口定义为24管脚,而实际应用时可能只实现部分管脚,这部分在速率测试上要注意。而CC的作用,除了区分主从,还要区分正反面。如果强制cc上拉或者下拉到某个角色,可能导致正反面插入时速率不同。
2025-03-09 11:32:34
1386
原创 v4l2接收流程
在让驱动分配内存,已经应用向驱动获取内存信息时,都用到一个字段,即type:此字段的取值包括:此处我们关注两个video_capture1) 何为mplane?所谓plane,即为一个分量所占的内存空间。mplane即多个plane表示一帧图像。如下图Y U V分布占用一个plane。如下,Y与UV分别占用一个plane常见的NV12 NV16等都属于此范畴。2) 与之相对应的Interleaved,即一块内存即为完整的一帧图像例如: YUYV;YVYU等采用此方式。
2023-12-09 22:12:16
1453
GBA_900a_EngWS_C Petersen_Lightning (PCIe JBOF) Update,
2017-05-25
pcre2-10.34.zip
2020-05-03
linuxbestpicture.zip
2021-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人