MTK串口配置及流程

端口配置

static port_setting_struct const NVRAM_EF_PORT_SETTING_DEFAULT[]=
{
    {
    /* USB转虚拟串口 */
        99,   
        4,   /* uart_port_usb */           
    /* 串口输出 */
        99,  /* tst-ps uses uart_port_null(value is 99) */
        0,   /* uart_port1 (value is 0) */
/* Catcher打印trace */
        4,   
        99,

        115200, /* tst default baud rate base = 115200 = 0x0001C200 */

流程

初始化注册各端口的handler

将uart_port1与Uart_Drv_Handler绑定,将uart_port_usb端口与USB2UART_Drv_Handler绑定。

// hal/peripheral/src/drv_comm.c
void Drv_Init_Phase1(void)
{
    DCL_HANDLE uart_handle;
    uart_handle =  DclSerialPort_Open(uart_port1, 0);
    DclSerialPort_RegisterCallback(uart_handle, &Uart_Drv_Handler);
}

void Drv_Init_Phase2(void)
{
    DCL_HANDLE uart_handle;

    #ifdef __USB_COM_PORT_ENABLE
    uart_handle = DclSerialPort_Open(uart_port_usb, 0);
    DclSerialPort_RegisterCallback(uart_handle, &USB2UART_Drv_Handler);
}

Uart_Drv_Handler的实现

// hal/peripheral/src/uart_handler.c
Seriport_HANDLER_T  Uart_Drv_Handler = {
  DCL_UART_TYPE, UART_Handler};

DCL_STATUS UART_Handler(DCL_DEV dev,DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data)
{
    kal_bool return_flag = KAL_FALSE;
    kal_bool return_status = STATUS_OK;

    switch (cmd)
        {
        case SIO_CMD_INIT:
                {
                    UART_CTRL_INIT_T*    prCtrlInit;
                    prCtrlInit = &(data->rUARTCtrlI
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值