Linux主机:ubuntu16.04 开发板:mini2440 Linux内核:2.6.33.2
在Linux系统里面对mini2440的串口驱动已经编写好了,但是在测试的时候发现串口一和串口二都没有问题,串口三发送和接收都没有数据,在查看/driver/serial下面的s3c2440.c和samsung.c对三个串口都进行了注册了,名字是s3c2410_serial,在开发板目录下/dev下面都有这三个驱动文件,但是使用minicom进行测试的时候串口一和串口二都没问题,串口三没数据,下面说一下我的修改方法(很简单):
1、在samsung.c文件下添加头文件 #include<linux/gpio.h> #include <mach/regs-gpio.h>
2、在samsung.c文件的第 397行 static int s3c24xx_serial_startup(struct uart_port*port) 这个函数最后面里面添加以下内容:
/* the port reset code should have done the correct
* register setup for the port controls */
if(port->line ==2){
s3c2410_gpio_cfgpin(S3C2410_GPH(6),S3C2410_GPH6_TXD2);
s3c2410_gpio_pullup(S3C2410_GPH(6),1);
s3c2410_gpio_cfgpin(S3C2410_GPH(7),S3C2410_GPH7_RXD2);
s3c2410_gpio_pullup(S3C2410_GPH(7),1);
}
return ret;
添加上面两个以后串口三通过minicom就能收发数据了