原先的EDMA驱动,由Edma类作为Edma设备的总管,edma_pcie作为具体Edma设备的驱动 bcal设计IDriver的子类为设备总管,通过index访问设备,不限定设备的实现方式,因此不再需要edma_pcie类
接口用途
对比
<tt>free</tt>
- 原接口
- 新接口
- 变更说明 作为IDriver的公共函数
<tt>init</tt>
- 原接口
- 新接口
void config(int32_t index, void *config, uint32_t size);
- 变更说明 设备初始化函数名称统一变更
<tt>open</tt>
- 原接口
- 新接口 无
- 变更说明 不再需要
open接口,如果需要打开设备,在新的init接口执行
<tt>set_fd</tt>/<tt>get_fd</tt>
- 原接口
void set_fd(uint8_t idx, int32_t fd);
int32_t get_fd(uint8_t idx);
- 新接口 无
- 变更说明 原接口需要在
Edma类实例之间(owner和非owner)、Edma类和edma_pcie类之间传递句柄资源。 新接口对设备的形式不做限定,因此删除该接口
<tt>edma_poll</tt>
<tt>edma_read</tt>
- 原接口
string edma_read(uint8_t id, uint32_t max_len, uint32_t timeout);
- 新接口
string_t edma_read(int32_t index, uint32_t max_len, uint32_t timeout);
- 变更说明 入参形式小修改;明确规定读写的消息格式
<tt>edma_write</tt>
- 原接口
void edma_write(uint8_t id, const string_view &val, uint32_t timeout);
- 新接口
int32_t edma_write(int32_t index, const std::string_view &val, uint32_t timeout);
- 变更说明 入参形式小修改;明确规定读写的消息格式