原UART驱动,其实例本质上是单个UART控制器的驱动;但是混合了UART总管的角色,比如允许执行串口互联操作 新的bcal设计,UART驱动实例为所有UART控制器的总管
接口用途
- bmc_soc 串口环回测试
- soctrl 串口互联操作
- power_mgmt DFT检查CAN通道是否正常
- rmcpd 串口管理(SOL)
对比
<tt>free</tt>
<tt>open_port</tt>
- 原接口
void open_port(uint8_t chan, uint32_t baud);
- 新接口
void open(int32_t index);
- 变更说明 名字修改,波特率设置使用通用的set_baud_rate接口
<tt>uart_close</tt>
- 原接口
void uart_close(uint8_t chan);
- 新接口
void close(int32_t index);
- 变更说明 名字修改
<tt>x_connect_y</tt>
- 原接口
void uart_connect_uart(uint32_t uart, uint32_t port_or_uart) const;
void uart_connect_port(uint32_t uart, uint32_t port_or_uart) const;
void port_connect_port(uint32_t src_port, uint32_t dst_port) const;
- 新接口
void uart_connect_uart(uint32_t src_uart, uint32_t dst_uart);
void uart_connect_port(uint32_t src_uart, uint32_t dst_port);
void port_connect_port(uint32_t src_port, uint32_t dst_port);
- 变更说明 无
<tt>query_x_connection</tt>
- 原接口
uint32_t query_uart_connection() const;
uint32_t query_port_connection() const;
- 新接口
uint32_t query_uart_connection(int32_t index);
uint32_t query_port_connection(int32_t index);
- 变更说明 增加入参index,用于指定uart控制器
<tt>read</tt>/<tt>select_read</tt>
- 原接口
string read(uint8_t chan, uint32_t len);
string select_read(uint8_t chan, uint32_t len);
- 新接口
string_t read(int32_t index, uint32_t len);
string_t select_read(int32_t index, uint32_t len, uint32_t timeout);
- 变更说明 参数名字变更 select_read原接口是固定1s timeout,这里改为通过参数指定
<tt>write</tt>
- 原接口
void write(uint8_t chan, const string_view &val);
- 新接口
int32_t write(int32_t index, const string_t &val);
- 变更说明 保持不变,增加了返回值
<tt>send_break</tt>
- 原接口
void send_break(uint8_t chan, int duration);
- 新接口
void send_break(int32_t index, int32_t duration);
- 变更说明 无
<tt>get_current_baud</tt>
- 原接口
uint32_t get_current_baud(int32_t uart_index) const;
- 新接口
uint32_t get_host_baud_rate(int32_t index);
- 变更说明 命名变更
<tt>update_baud</tt>
- 原接口
void update_baud(int32_t uart_index, uint8_t connect_uart);
- 新接口 删除
- 变更说明 原本用途是,获取系统串口的波特率,设置到指定uart控制器上;可以通过get_host_baud_rate+set_baud_rate接口组合实现
<tt>update_baud_v2</tt>
这个东西似乎没有必要,可以get+set
- 原接口
void update_baud_v2(uint8_t chan, uint32_t val);
- 新接口
void set_baud_rate(int32_t index, uint32_t baud);
- 变更说明 命名变更
<tt>update_xxx</tt>
- 原接口
void update_oddeven(uint8_t chan, char even);
void update_data_bits(uint8_t chan, uint8_t bits);
void update_stop_bits(uint8_t chan, uint8_t stop);
- 新接口
void set_parity(int32_t index, char parity);
void set_data_bits(int32_t index, uint8_t bits);
void set_stop_bits(int32_t index, uint8_t bits);
- 变更说明 命名变更