这里有新手问题.
我正在看一个u-boot boardfile,它有很多功能.
例如; board_mmc_init(), enet_board_init(), setup_splash_img(),等等
大多数这些函数都不会从boardfile中调用.他们从其他地方打来电话.但我无法弄清楚在哪里.
在Linux内核板文件中有一个机器结构.在那里,我们可能有.init_machine = myboard_init.那么myboard_init(void)就会调用其他函数这将反过来通话等功能.我发现这种风格很容易阅读.
我的问题是; 确实u-boot有一个相当于.init_machine? 我在哪里看到一切'开始'?谁将所有那些松散的函数调用在u-boot中boardfile?
-Andy
Jie*_*ang 13
首先,uboot将从指定CPU的start.S开始,如下所示:http://git.denx.de/cgi-bin/gitweb.cgi?p = u-boot.git; a = blob; f =拱/臂/ CPU/ARMv7的/ start.S中; H = ef62fc83270a327bc7df970f598540f1d7ce0fe2; HB = HEAD
它会做一些像"异常向量"设置,缓存设置等.
然后它会跳转到 http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=arch/arm/lib/crt0.S 做一些c运行时建立,
然后它将返回start.S,在一些misc之后,你可以引用注释,它会跳转到lowlevel_init.S http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot的.git; A =斑点; F =拱/臂/ CPU/ARMv7的/ lowlevel_init.S; H = 82b2b86520eb2b2d63c2478145b625a49f931542; HB = HEAD
然后..它将转向soc(在ARM中很常见)init,如下所示:http://git.denx.de/cgi-bin/gitweb.cgi?p = u-boot.git; a = blob; f =拱/臂/ CPU/ARMv7的/ MX6/soc.c
在soc init完成之后,它会转到某个板关联init,在board init中,它将调用一些外围设备/驱动程序init.
希望能给你一些关于uboot进程的打击.
| 归档时间: |
|
| 查看次数: |
8499 次 |
| 最近记录: |