SOC OV788开发:10.uart 中断接收 以及usb启动模式

举报
aiot_bigbear 发表于 2022/09/24 23:55:55 2022/09/24
953 0 0
【摘要】 SOC OV788开发:10.uart 中断接收 以及usb启动模式 IRQ_HANDLER_DECLARE_START IRQ_MAP(UART, uart_irq_handler); #if d...

SOC OV788开发:10.uart 中断接收 以及usb启动模式

IRQ_HANDLER_DECLARE_START

IRQ_MAP(UART, uart_irq_handler);

#if defined(CONFIG_WIFIMODULE_BRCM4334X) || defined(CONFIG_WIFIMODULE_RTL8195A)

extern void app_scio_irq_handler_1(void);

#ifdef CONFIG_WIFIMODULE_USE_SCIO1

IRQ_MAP(SCIF1, app_scio_irq_handler_1);

#else

IRQ_MAP(SCIF2, app_scio_irq_handler_1);

#endif

#endif

IRQ_MAP(VP, vp_irq_handler);

IRQ_MAP(EOF, eof_intr_process);

IRQ_MAP(VSYNC, vsync_irq_handler);

IRQ_MAP(GPIO, gpio_irq_handler);

#ifdef CONFIG_MIMG_EN

IRQ_MAP(IMG, mimg_irq_handler);

#endif

#ifdef CONFIG_SCIF_USE_INTR

#ifdef CONFIG_APP_USE_SCIF02

IRQ_MAP(SCIF2, app_scif_irq_handler);

#else

IRQ_MAP(SCIF1, app_scif_irq_handler);

#endif

#endif

IRQ_HANDLER_DECLARE_END

static void uart_irq_handler(void)

{

static unsigned char uart_buf[128] = {0};

static int uart_count = 0;

while(1)

{

​ int ch = uart_testgetc();

​ if(ch == -1)

​ break;

​ uart_buf[uart_count++] = ch;

​ if(uart_count >= 128)

​ {

​ memset(uart_buf, 0, sizeof(uart_buf));

​ uart_count= 0;

​ break;

​ }

​ if(ch != ‘\r’ && ch != ‘\n’)

​ uart_putc(ch);

​ else

​ {

​ uart_putc(’\r’);

​ uart_putc(’\n’);

​ while((uart_count >= 1) && (uart_buf[–uart_count] == ‘\r’ || uart_buf[–uart_count] == ‘\n’))

​ uart_buf[uart_count] = ‘\0’;

handle_uart_data_cmd(uart_buf);

​ memset(uart_buf, 0, sizeof(uart_buf));

​ uart_count= 0;

​ }

}

}

static void board_usb_boot(void)

{

debug_printf(“Enter usb debug mode\n”);

disable_cache();

PADCLKSET;

usbdbg_en();

while(1);

}

文章来源: blog.csdn.net,作者:悟空胆好小,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/xushx_bigbear/article/details/123079598

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。