OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4517|回复: 8

请教uboot启动linux命令的问题

[复制链接]

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
发表于 2021-12-2 13:26:11 | 显示全部楼层 |阅读模式
1金钱
uboot倒计时结束后会自动启动linux,那这倒计时结束后是怎么跳转的,跳转到哪里执行了启动命令

最佳答案

查看完整内容[请看2#楼]

如果你去看了uboot启动过程分析,就不会问这个问题了,开发手册上有大体的描述
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2021-12-2 13:26:12 | 显示全部楼层
如果你去看了uboot启动过程分析,就不会问这个问题了,开发手册上有大体的描述
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-12-3 01:51:43 | 显示全部楼层
帮顶
回复

使用道具 举报

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
 楼主| 发表于 2021-12-3 09:06:32 | 显示全部楼层
jermy_z 发表于 2021-12-2 13:26
如果你去看了uboot启动过程分析,就不会问这个问题了,开发手册上有大体的描述

我看了,从倒计时结束,执行命令,传几个参数,但没看到怎么跳转到启动Linux的最初函数

从815页开始,有提到,但最后讲到了命令模式详解,似乎并没有提怎么跳转

下面是最后原文
回到示例代码 32.2.9.6 的 autoboot_command 函数中,如果倒计时自然结束那么就执行函数run_command_list,此函数会执行参数 s 指定的一系列命令,也就是环境变量 bootcmd 的命令,bootcmd 里面保存着默认的启动命令,因此 linux 内核启动!这个就是 uboot 中倒计时结束以后自动启动 linux 内核的原理。如果倒计时结束之前按下了键盘上的按键,那么 run_command_list函数就不会执行,相当于 autoboot_command 是个空函数。
回到“遥远”的示例代码 32.2.9.2 中的 main_loop 函数中,如果倒计时结束之前按下按键,
那么就会执行第 74 行的 cli_loop 函数,这个就是命令处理函数,负责接收好处理输入的命令。

我也在查找之后的跳转
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12687
金钱
12687
注册时间
2012-11-26
在线时间
3710 小时
发表于 2021-12-3 09:10:13 | 显示全部楼层
xlj666 发表于 2021-12-3 09:06
我看了,从倒计时结束,执行命令,传几个参数,但没看到怎么跳转到启动Linux的最初函数

从815页开始, ...

你从驱动指南V1.6的846页往前看
学无止境
回复

使用道具 举报

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
 楼主| 发表于 2021-12-3 10:04:12 | 显示全部楼层
jermy_z 发表于 2021-12-3 09:10
你从驱动指南V1.6的846页往前看

你的1.6?我的1.5,我先去看看1.6的
回复

使用道具 举报

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
 楼主| 发表于 2021-12-3 10:24:37 | 显示全部楼层
xlj666 发表于 2021-12-3 10:04
你的1.6?我的1.5,我先去看看1.6的

bootz命令启动Linux,do_bootz函数实现bootz,那谁来调用do_bootz?
回复

使用道具 举报

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
 楼主| 发表于 2021-12-3 11:33:50 | 显示全部楼层
jermy_z 发表于 2021-12-3 09:10
你从驱动指南V1.6的846页往前看

bootz命令启动Linux,do_bootz函数实现bootz,那谁来调用do_bootz?
回复

使用道具 举报

15

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-9-29
在线时间
19 小时
 楼主| 发表于 2021-12-3 18:40:43 | 显示全部楼层
从main_loop()函数开始,到最后cmd_process()执行命令过程,教程省了中间一些传递过程
屏幕截图 2021-12-03 183721.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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