天嵌 ARM开发社区

 找回密码
 注册
查看: 2266|回复: 2

S3C2440串口驱动问题

[复制链接]
tianlansefy 发表于 2012-5-29 22:28:26 | 显示全部楼层 |阅读模式
本帖最后由 tianlansefy 于 2012-5-29 22:31 编辑

三个疑惑:
1、samsung.c的代码,在文件最后的s3c24xx_serial_initconsole()函数中有这么一句:
   struct platform_device *dev = s3c24xx_uart_devs[0];
s3c24xx_uart_devs结构体应该是系统预先定义好的平台设备结构体。但是我在内核中只找到了它的声明,并没有对其中的成员变量进行赋值的内容啊。那么这里为什么能拿来直接使用呢?
2、在mach-smdk2440.c中对s3c2410_uartcfg这个结构体中的成员变量进行了填充,也就是说这个是可以直接是用的。看到驱动代码中在函数s3c24xx_serial_init_port()中有这样的语句:
    cfg = s3c24xx_dev_to_cfg(&platdev->dev);
这句话的意思就是将platform_device->device->platform_data中的数据复制给cfg(一个s3c2410_uartcfg结构体),这也是直接使用的,那么在板级初始化的时候,是在哪里将cfg赋值给platform_data的呢?
3、uart_driver和uart_ops是怎么联系起来的呢?

TQ-ZQL 发表于 2012-6-4 10:39:47 | 显示全部楼层
本帖最后由 TQ-ZQL 于 2012-6-4 10:40 编辑

1.在plat-samsung/dev-uart.c定义,在plat-samsung/init.c中赋值
2.也是在plat-samsung/init.c中赋值
3.s3c24xx_serial_probe中读取
struct s3c24xx_uart_port s3c24xx_serial_ports
这个结构体,它里面就有一个uart_ops的结构。
其实这些都可以通过sourceInsigh3,看代码找到的。
 楼主| tianlansefy 发表于 2012-6-4 15:06:42 | 显示全部楼层
TQ-ZQL 发表于 2012-6-4 10:39
1.在plat-samsung/dev-uart.c定义,在plat-samsung/init.c中赋值
2.也是在plat-samsung/init.c中赋值
3.s ...

哦,非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-16 11:30 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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