ZHCAG86 July 2026 AWR2944 , AWR2944P
DPL(Data Porting Layer)是 SDL 的底层抽象层,屏蔽不同芯片平台和不同处理器核心在中断管理、延时控制和地址映射上的差异。所有上层 SDL 模块通过 DPL 接口访问底层硬件资源。
设计目的是解耦 SDL 模块与具体硬件实现,使得同一套 SDL 代码可以移植到 AM263x、AM273x、AWR2944 等不同芯片上。DPL 提供两组主要能力:中断管理(注册/注销/使能/禁用)和基础工具(延时/地址转换)。在AWR2944上同时支持 R5F 和 C66x DSP 两种核心的中断管理。
DPL 接口以函数指针结构体形式SDL_DPL_Interface注册到 SDL 库,包含接口如下:
| 接口 | 对应函数 | 说明 |
|---|---|---|
| enableInterrupt | SDL_TEST_enableInterrupt | 使能指定中断号 |
| disableInterrupt | SDL_TEST_disableInterrupt | 禁用指定中断号 |
| registerInterrupt | SDL_TEST_registerInterrupt | 注册中断回调 |
| deregisterInterrupt | SDL_TEST_deregisterInterrupt | 注销中断回调 |
| delay | ClockP_sleep | 延时(μs 级) |
| addrTranslate | SDL_TEST_addrTranslate | 物理地址转本地地址 |
DPL 本身不提供独立测试,它作为所有 SDL 模块的前置条件。使用方法是在应用入口处先调 SDL_TEST_dplInit() 初始化 DPL,再初始化具体 SDL 模块。注意DPL 必须在所有 SDL 模块之前初始化。