本驱动专为 Cadence ConnX B20 处理器 及 ARM CoreLink DMA-330 (PL330) 控制器设计。该版驱动采用了零全局变量(低耦合)、全内联优化(高速度)以及超时与故障检测机制(高稳定性)
点击空白处退出提示
本驱动专为 Cadence ConnX B20 处理器 及 ARM CoreLink DMA-330 (PL330) 控制器设计。该版驱动采用了零全局变量(低耦合)、全内联优化(高速度)以及超时与故障检测机制(高稳定性)
手动配置 1D(线性)内存到内存的 DMA 传输指令序列。适用于对 Burst 参数有精确控制需求的场景。
自动配置 1D 内存到内存的 DMA 传输。驱动会根据源/目的地址的对齐情况和总长度,自动计算最优的 bytes_per_beat 和 beats_per_burst,以最大化总线带宽利用率。
通过 Debug 寄存器向指定通道下发 DMAGO 指令,启动 DMA 传输。
极致内联优化:所有指令编码和寄存器访问均使用 static inline __attribute__((always_inline)),消除函数调用开销。
X-Macro 基地址映射:使用 X-Macro 生成基地址查找表,替代低效的 switch-case。
位运算优化:使用 __builtin_ctz 替代 switch-case 计算 bytes_per_beat 的 CCR 编码。
高稳定性:所有硬件轮询均加入超时机制与Fault状态检测,防止死锁。
低耦合设计:移除全局变量,指令缓冲区地址由调用者显式传入(或通过上下文管理),支持多实例安全调用。



评论