gpt4 book ai didi

U盘。一切从哪里开始?

转载 作者:行者123 更新时间:2023-12-04 22:05:28 25 4
gpt4 key购买 nike

新手问题在这里。

我在看一个 u-boot 板文件,它有很多功能。
例如; board_mmc_init(), enet_board_init(), setup_splash_img(),等等。

大多数这些函数不会从板文件中调用。他们从其他地方被召唤。但我想不通在哪里。

在 Linux 内核板文件中有一个机器结构。在那里我们可能有 .init_machine = myboard_init.然后myboard_init(void)将调用其他函数,而后者又将调用其他函数。我觉得这种风格很容易阅读。

我的问题是;是否u-boot相当于 .init_machine?我在哪里查看一切“开始”的地方?谁将所有这些松散的功能放在一个 u-boot 中boardfile?
-安迪

最佳答案

首先,uboot 会从指定 CPU 的 start.S 处启动,如下所示:
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=arch/arm/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,在一些杂项之后,你可以引用评论,
它将跳转到 lowlevel_init.S
http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=arch/arm/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=arch/arm/cpu/armv7/mx6/soc.c

在 soc init 完成后,它会去一些板相关的 init,
在board init中,它会调用一些外围设备/驱动程序init。

希望这会让您对 uboot 过程有所帮助。

关于U盘。一切从哪里开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462504/

25 4 0