全部博文(396)
分类: 嵌入式
2017-03-08 15:58:28
小时候看过一个电视剧叫做《小龙人》,你别说,其实还是挺励志的,为了找到自己的妈妈,费劲千辛万苦,这果断是一部好的电视剧,而现在的孩子们在看什么呢?《轩辕剑》,天天神啊,魔啊,虚幻,华而不实的东东,除了商业价值,能有什么对孩子们有营养的东东?
又想起了那句,人是人他妈生的,妖是妖他妈生的,那么我们前面用clk_get获取的时钟时在哪有的,天然就有?必须不可能啊,凡是得讲个科学道理啊,怎能无中生有???
镜头转向s3c2410-clock.c
对,你没看错,就是在这儿定义的,看见木有,什么name啦,parent啦,全是在这儿定义好的,如果你够仔细你会发现,在uart那块儿成员多一个,是什么呢?对,是devname,呵呵。。一个设备可能好多串口呢?我们咋知道哪个串口呢?嘿嘿。小伙儿,你有福气了,就是用devname驱分的。
可能你会和我一样有好奇心,他们的父亲到底是谁,好吧,满足你,于是梦又回到了clock.c
我去。你看到了,这就是我们之前第一篇讲的,什么fclk,pclk,hclk啦,他们就是那些clock的parent,呵呵。。当然,足够信心的你,也一定看到了clk_mpll,什么是mpll,upll就不用我重复了吧,如果你是在想不起,看本系列第一篇吧,好吗?亲。而他们两个正是clk_f,clk_usb_bus的parent
好的, 它的爹妈我们找到了,那你可能又想了,那他们是在什么时候被注册的呢?就是他们什么时候出生的呢?我负责任的告诉你,他们再一个叫做s3c24xx_register_baseclocks中注册的,我去。。你不是想问s3c24xx_register_baseclocks在哪调用的吧?我只能说你能不能动俩下鼠标,很好搜的,亲。
我给一下调用到这儿的顺序吧:注意蓝色部分是顺序啊。。切记
看到了就是smdk2410_map_io函数
看到了,是s3c24xx_init_io函数:
看到了,最后一样,cpu_ids,函数的内部就不分析了哈,咱有空再看,
看到了,是s3c2410_init_clocks函数
看到了?是s3c24xx_register_baseclocks
我滴个妈呀,终于到了终点。。兄弟,如果这个过程你还没清楚,你找我来吧,咱来抱头痛哭一顿,然后改行吧!