Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338120
  • 博文数量: 95
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 157
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-26 20:03
文章分类

全部博文(95)

文章存档

2017年(15)

2015年(17)

2014年(63)

分类: LINUX

2014-03-27 20:49:57

    这几天,突然发现移植好的s3c2410的串口2在linux系统下竟然不能用,赶紧查了很多资料,发现,若要在linux系统下是用s3c23410的串口2 ,需要修改内核,把s3c2410的串口2配置成普通的串口。
    1.修改arch/arm/mach-s3c2440/mach-smdk2440.c中的uart2的配置,修改后如下:
     static struct s3c2410_uartcfg smdk2410_uartcfgs[] __initdata = {
        [0] = {
                .hwport             = 0,
                .flags             = 0,
                .ucon             = UCON,
                .ulcon             = ULCON,
                .ufcon             = UFCON,
        },
        [1] = {
                .hwport             = 1,
                .flags             = 0,
                .ucon             = UCON,
                .ulcon             = ULCON,
                .ufcon             = UFCON,
        },
        /* IR port */
        [2] = {
                .hwport             = 2,
                .flags             = 0,
                .ucon             = 0x3c5,
                .ulcon             = 0x03,
                .ufcon             = 0x51,
        }
2. 在drivers/serial/samsung.c中添加对uart2控制器的配置,配置为普通串口。
   添加头文件:#include
             #include
   在static int s3c24xx_serial_startup(struct uart_port *port)函数中,添加     
      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);
        }
3.编译内核,下载进板子后,进行测试,串口2终于可以正常工作了。
 
参考:开贴详述linux-2.6.33内核的移植
     
阅读(1238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~