TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x uart驱动问题

要驱动六个uart,怎么在所给的内核源码的基础上进行修改,多谢各位帮忙。。。本人新手。。实在搞不懂了。。多谢

kooking:

理论上,这个在内核里面应该已经做好了,你可以在文件系统下查看一下ls /dev/ttyS0 – ttyS5或者ttyO0 – ttyO5

guangjie shaoguangjie:

回复 kooking:

您好!我用您说的命令查了一下,ttyS0-ttyS5是都存在的?然后呢?这样查看之后能说明什么?谢谢

kooking:

回复 guangjie shaoguangjie:

这个说明设备串口设备结点已经存在,内核可能已经支持了6个串口的驱动,所以串口驱动不需要做修改,应用程序中open()打开设备结点后,可以用write(),read()对串口进行操作了。

不过不知道您还有没有其它的什么需求

guangjie shaoguangjie:

回复 kooking:

您好!这是运行命令后的截图:

crw——-    1 root     tty      253,   0 Nov 20 06:34 ttyO0                   crw-rw—-    1 root     dialout  253,   1 Jan  1  1970 ttyO1                   crw-rw—-    1 root     dialout  253,   2 Jan  1  1970 ttyO2                   crw-rw—-    1 root     dialout  253,   3 Jan  1  1970 ttyO3                   crw-rw—-    1 root     dialout  253,   4 Jan  1  1970 ttyO4                   crw-rw—-    1 root     dialout  253,   5 Jan  1  1970 ttyO5

只有ttyO0在tty组,其他五个属于dialout组是什么意思?我们的板子硬件上只连了uart0,但是在board-am335x.c和serial.c中没有uart0的pinmux的设置

board-am335x.c:

/* Chipsee AM335x SOM */static struct evm_dev_cfg evm_chipsee_som_dev_cfg[] = {    {mii1_init,    DEV_ON_BASEBOARD, PROFILE_ALL},        {mmc0_init,     DEV_ON_BASEBOARD, PROFILE_ALL},        {lcdc_init,     DEV_ON_BASEBOARD, PROFILE_ALL},        {chipsee_backlight_init, DEV_ON_BASEBOARD, PROFILE_ALL},        //{cap_tsc_init,     DEV_ON_BASEBOARD, PROFILE_ALL},        {tsc_init,       DEV_ON_BASEBOARD, PROFILE_ALL},        {gpio_led_init,  DEV_ON_BASEBOARD, PROFILE_ALL},        {mcasp0_init,   DEV_ON_BASEBOARD, PROFILE_ALL},        {chipsee_hmi_audio_init,   DEV_ON_BASEBOARD, PROFILE_ALL},        {NULL, 0, 0},};

serial.c:

static void omap_serial_fill_default_pads(struct omap_board_data *bdata){    switch (bdata->id) {    case 0:        bdata->pads = default_uart1_pads;        bdata->pads_cnt = ARRAY_SIZE(default_uart1_pads);        break;    case 1:        bdata->pads = default_uart2_pads;        bdata->pads_cnt = ARRAY_SIZE(default_uart2_pads);        break;    case 2:        bdata->pads = default_uart3_pads;        bdata->pads_cnt = ARRAY_SIZE(default_uart3_pads);        break;    case 3:        if (cpu_is_omap44xx()) {            bdata->pads = default_omap4_uart4_pads;            bdata->pads_cnt =                ARRAY_SIZE(default_omap4_uart4_pads);        } else if (cpu_is_omap3630()) {            bdata->pads = default_omap36xx_uart4_pads;            bdata->pads_cnt =                ARRAY_SIZE(default_omap36xx_uart4_pads);        }        break;    default:        break;    }}

这两个文件里都没有uart0的pin的设置。请问,它的pin在哪里设置的?多谢

shanshan wan:

你好,不知你的六个串口是否都能使用了,我现在也遇到这个问题?你解决了的话,能否告知是怎样解决的?

赞(0)
未经允许不得转载:TI中文支持网 » am335x uart驱动问题
分享到: 更多 (0)