u-boot分析3:第二阶段代码分析2--命令解析过程及自定义命令

上一节说到,u-boot中最重要的就是命令,那么这些命令是怎么被识别并去执行相应的动作的,这里详细分析一下。

首先可以想象一下,u-boot需要完成对很多命令的响应,当用户输入一个命令时,它需要去解析识别该命令,然后调用与该命令相对应的函数(即执行相应的动作),由于命令有很多,命令与执行动作需要对应起来,所以这里应该是一个命令对应一个结构体,结构体里面至少包括两个变量:命令的名字name、命令对应函数指针void(*do_name)(void var)。输入命令,根据命令的名字去找到相对应的结构体,然后执行相关函数。

不管是启动内核还是响应控制界面,u-boot从串口获取到命令后,都是执行run_command()函数,去run_command()函数里看一下:

首把命令复制到 char *str,存起给后面使用


往下看:对命令进行分离并且支持";"分离命令


接着是: 提取参数,解析命令,解析完后,要去找到与这个命令对应的命令结构体cmd_tbl_t *cmdtp。如何找到?重点分析cmd_tbl_t *find_cmd (const char *cmd)这个函数


先看下结构体cmd_tbl_t ,在Command.h中定义:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值