2440开发板将串口2的修改为普通串口
2017-04-08 14:59
225 查看
开发环境:
主机环境:VMare下CentOS 5.5
linux版本:linux-3.0-rc4
其寄存器部分寄存器的说明如下:
![](http://i.imgur.com/Ly9kEHz.png)
修改代码如下:
加上如下代码:
![](http://i.imgur.com/un9t9w4.png)
S3C2410_GPH(6),S3C2410_GPH(7)等宏定义在mach/regs-gpio.h。需要包含该文件。有的内核版本是S3C2410_GPH6,S3C2410_GPH7,应根据具体情况修改。
加上头文件:
DivicesDrivers->Characterdevices->SerialDrivers->选中
<*>SansungSoC serial support
<*>Samsungs3c2410 serial port support
<*>SamsungS3C2440/S3C2442/S3c2416 serial port support
![](http://i.imgur.com/Z9cbRvT.png)
保存退出,重新编译内核,下载到开发板。
![](http://i.imgur.com/fhO9Tfc.png)
参考文献:
主机环境:VMare下CentOS 5.5
linux版本:linux-3.0-rc4
1.背景
Linux内核默认把UART2的功能设置为红外通讯(Irda),没有作为正常串口使用,如果我们想要将UART2作为串口,此时,串口2是无法收发数据的,因此需要做相应的修改。其寄存器部分寄存器的说明如下:
![](http://i.imgur.com/Ly9kEHz.png)
2.修改平台配置文件
2.1 修改mach-smdk2440.c
打开arch/arm/mach-s3c2440/mach-smdk2440.c(注意不同的平台mach-smdk2440.c文件有可能有略微的区别)修改代码如下:
static struct s3c2410_uartcfg smdk2440_uartcfgs[] __initdata = { [0] = { .hwport = 0, .flags = 0, .ucon = 0x3c5, .ulcon = 0x03, .ufcon = 0x51, }, [1] = { .hwport = 1, .flags = 0, .ucon = 0x3c5, .ulcon = 0x03, .ufcon = 0x51, }, /* IR port */ [2] = { .hwport = 2, .flags = 0, .ucon = 0x3c5, // .ulcon = 0x43, .ulcon = 0x03, .ufcon = 0x51, } };
2.2 修改samsung.c
打开drivers/tty/serial/samsung.c文件(不同内核版本可能文件位置略有不同)。加上如下代码:
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); }
![](http://i.imgur.com/un9t9w4.png)
S3C2410_GPH(6),S3C2410_GPH(7)等宏定义在mach/regs-gpio.h。需要包含该文件。有的内核版本是S3C2410_GPH6,S3C2410_GPH7,应根据具体情况修改。
加上头文件:
#include<linux/gpio.h> #include<mach/regs-gpio.h>
3.修改配置文件
确认相应驱动被被编译进内核makemenuconfigDivicesDrivers->Characterdevices->SerialDrivers->选中
<*>SansungSoC serial support
<*>Samsungs3c2410 serial port support
<*>SamsungS3C2440/S3C2442/S3c2416 serial port support
![](http://i.imgur.com/Z9cbRvT.png)
保存退出,重新编译内核,下载到开发板。
4.测试
运行测试程序后,有以下警告。好像是回溯信息,折腾了好久,没有去掉,就放着了。![](http://i.imgur.com/fhO9Tfc.png)
参考文献:
相关文章推荐
- TQ2440中如何把串口0由调试串口修改为普通串口?
- Linux内核修改:将2440串口UART2(红外端口)更成普通串口驱动
- TQ2440开发板学习纪实(7)--- 基于中断的UART串口接收
- android串口权限修改(imx53开发板)
- 修改SMDK6410的调试串口为普通串口(wince系统)
- 修改SMDK6410的调试串口为普通串口(wince系统)
- 如何把2440 5.0BSP的红外串口改成普通串口?
- 修改s3c440普通串口驱动为485驱动
- 如何把2440 5.0BSP的红外串口改成普通串口
- 友善2440开发板开启串口输出调试信息
- 修改SMDK6410的调试串口为普通串口(wince系统)
- RT5350 openwrt将ttyS1修改为控制端口,ttyS0为普通串口
- 海思3518c普通串口更换485通讯(启用rtsn管脚)-内核代码修改
- 2440开发板及部分ARM嵌入式开发板修改LCD及VGA参数教程
- 修改2416其他3个串口为普通串口并激活使用
- mini2440 串口1通信串口改调试串口及6410将com0修改为普通串口
- 友善2440开发板开启串口输出调试信息
- 第十三章 Openwrt 修改串口波特率 以适应普通51不支持 115200高速率
- 移植u-boot-2012.04.01到jz2440开发板之修改代码支持NAND启动
- YC2440 COM0非调试和普通串口 解决方法