明远智睿技术论坛

 找回密码
 立即注册
搜索
查看: 8048|回复: 7

imx6 uart开启DMA

[复制链接]

3

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2020-2-18 15:19:22 | 显示全部楼层 |阅读模式
核心板:MY-IMX6-EK200
linux:Linux-3.0.35
内核代码:linux-3.0.35-svn42-Release.20181126.tar
请问如何开启5个串口的DMA?
回复

使用道具 举报

3

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2020-2-19 13:53:34 | 显示全部楼层
static const struct imxuart_platform_data uart0_data __initconst = {
        .flags      = IMXUART_HAVE_RTSCTS | IMXUART_USE_DCEDTE | IMXUART_SDMA,
        .dma_req_rx = MX6Q_DMA_REQ_UART1_RX,
        .dma_req_tx = MX6Q_DMA_REQ_UART1_TX,
        .dir_set=mxc_rs485_dir_set,
};

static const struct imxuart_platform_data uart1_data __initconst = {
        .flags      = IMXUART_HAVE_RTSCTS | IMXUART_USE_DCEDTE | IMXUART_SDMA,
        .dma_req_rx = MX6Q_DMA_REQ_UART2_RX,
        .dma_req_tx = MX6Q_DMA_REQ_UART2_TX,
        .dir_set=mxc_rs485_dir_set,

};

static const struct imxuart_platform_data uart2_data __initconst = {
        .flags      = IMXUART_HAVE_RTSCTS | IMXUART_USE_DCEDTE | IMXUART_SDMA,
        .dma_req_rx = MX6Q_DMA_REQ_UART3_RX,
        .dma_req_tx = MX6Q_DMA_REQ_UART3_TX,
        .dir_set=mxc_rs485_dir_set,
};
       
static const struct imxuart_platform_data uart3_data __initconst = {
        .flags      = IMXUART_HAVE_RTSCTS | IMXUART_USE_DCEDTE | IMXUART_SDMA,
        .dma_req_rx = MX6Q_DMA_REQ_UART4_RX,
        .dma_req_tx = MX6Q_DMA_REQ_UART4_TX,
        .dir_set=mxc_rs485_dir_set,

};
static const struct imxuart_platform_data uart4_data __initconst = {
        .flags      = IMXUART_HAVE_RTSCTS | IMXUART_USE_DCEDTE | IMXUART_SDMA,
        .dma_req_rx = MX6Q_DMA_REQ_UART5_RX,
        .dma_req_tx = MX6Q_DMA_REQ_UART5_TX,
        .dir_set=mxc_rs485_dir_set,

};


static inline void mx6q_sabresd_init_uart(void)
{
        imx6q_add_imx_uart(0, &uart0_data);
        imx6q_add_imx_uart(1, &uart1_data);
        imx6q_add_imx_uart(2, &uart2_data);
        imx6q_add_imx_uart(3, &uart3_data);
        imx6q_add_imx_uart(4, &uart4_data);
}

我是这么加的,但是内核在初始化串口的时候卡住了
回复 支持 反对

使用道具 举报

3

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2020-2-19 14:47:51 | 显示全部楼层
求回复。。
回复

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
发表于 2020-2-19 15:12:35 | 显示全部楼层

你全部都用RS485嘛?
建议用高版本3.14或4.1的
回复 支持 反对

使用道具 举报

3

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2020-2-19 15:24:07 | 显示全部楼层
软件01 发表于 2020-2-19 15:12
你全部都用RS485嘛?
建议用高版本3.14或4.1的

是的,项目需要使用5个485. 3.0的内核一直在用,换的话还要改很多其他的东西。您这边有例子可以用来参考吗
回复 支持 反对

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
发表于 2020-2-19 15:49:02 | 显示全部楼层
luogf 发表于 2020-2-19 15:24
是的,项目需要使用5个485. 3.0的内核一直在用,换的话还要改很多其他的东西。您这边有例子可以用来参考 ...

https://community.nxp.com/message/886247
arch/arm/mach-mx6/serial.h里面有DMA控制的,但是没用到
版本太老,不支持
回复 支持 反对

使用道具 举报

3

主题

10

帖子

71

积分

注册会员

Rank: 2

积分
71
 楼主| 发表于 2020-2-19 17:57:15 | 显示全部楼层
软件01 发表于 2020-2-19 15:49
https://community.nxp.com/message/886247
arch/arm/mach-mx6/serial.h里面有DMA控制的,但是没用到
版 ...

感谢回复,那3.14版本的怎么加呢?直接在设备树里改就行吗
回复 支持 反对

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
发表于 2020-2-21 13:43:13 | 显示全部楼层
luogf 发表于 2020-2-19 17:57
感谢回复,那3.14版本的怎么加呢?直接在设备树里改就行吗

默认支持
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明远智睿  

GMT+8, 2024-3-28 20:37 , Processed in 0.058752 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表