uboot - 配置过程

===分析uboot的配置过程(mkconfig脚本)===

uboot怎么配置?我们在终端上执行make NAME_config时的运行过程解析!


我们执行make x210_sd_config时会运行makefile的这两行程序,先分析下

第二行:echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk

就是讲链接地址写入到 $(obj)board/samsung/x210/config.mk文件中。@是静默编译

其实有些板子的配置第二行时也可以这样做,进入 $(obj)board/samsung/x210/文件夹

手工创建 config.mk文件 写入TEXT_BASE = 0xc3e00000。


接着我们来分析第一行命令,这个其实就是运行uboot根目录下的mkconfig文件,

并传入6个参数:$(@:_config=) arm s5pc11x x210 samsung s5pc110

$1:$(@:_config=) :去掉目标x210_sd_config中的_config字符串也就是 x210_sd

$2:arm

$3:s5pc11x

$4:x210

$5:samsung

$6:s5pc110

然后开始运行mkconfig····


以上这段shell脚本主要的功能是打印板子的名字

echo "Configuring for ${BOARD_NAME} board..."  ${BOARD_NAME} = $1 = x210_sd

所以在配置是会打印出 Configuring for x210_sd board...  如图:


继续看脚本,下面的的工作主要是创建符号链接:


#
# Create link to architecture specific headers
#
if [ "$SRCTREE" != "$OBJTREE" ] ; then
	mkdir -p ${OBJTREE}/include
	mkdir -p ${OBJTREE}/include2
	cd ${OBJTREE}/include2
	rm -f asm
	ln -s ${SRCTREE}/include/asm-$2 asm
	LNPREFIX="../../include2/asm/"
	cd ../include
	rm -rf asm-$2
	rm -f asm
	mkdir asm-$2
	ln -s asm-$2 asm
else
#我们是默认编译运行这里
#创建符号链接1:arm -> asm-arm
	cd ./include
	rm -f asm
	ln -s asm-$2 asm
fi

rm -f asm-$2/arch

if [ -z "$6" -o "$6" = "NULL" ] ; then
	ln -s ${LNPREFIX}arch-$3 asm-$2/arch
else
#创建符号链接“2”(后面会被删除 所以这个不算):
#asm-arm/arch -> arch-s5pc110
ln -s ${LNPREFIX}arch-$6 asm-$2/archfi

 
#不执行
# create link for s3c24xx SoCif [ "$3" = "s3c24xx" ] ; thenrm -f regs.hln -s $6.h regs.hrm -f asm-$2/archln -s arch-$3 asm-$2/archfi
#不执行
# create link for s3c64xx SoCif [ "$3" = "s3c64xx" ] ; thenrm -f regs.hln -s $6.h regs.hrm -f asm-$2/archln -s arch-$3 asm-$2/archfi
#不执行
# create link for s5pc1xx SoCif [ "$3" = "s5pc1xx" ] ; then rm -f regs.h ln -s $6.h regs.h rm -f asm-$2/arch ln -s arch-$3 asm-$2/archfi# create link for s5pc11x SoCif [ "$3" = "s5pc11x" ] ; then
 
#创建符号链接2:regs.h -> s5pc110.h
rm -f regs.h ln -s $6.h regs.h
 
#删除上面创建的链接“2” 创建下面新的(算打补丁吧 不直接该上面的)
#创建符号链接3:asm-arm/arch -> arch-s5pc11x
rm -f asm-$2/arch ln -s arch-$3 asm-$2/archfi
#不执行
# create link for s5p64xx SoCif [ "$3" = "s5p64xx" ] ; thenrm -f regs.hln -s $6.h regs.hrm -f asm-$2/archln -s arch-$3 asm-$2/archfi
#不执行
# create link for s5p644x SoCif [ "$3" = "s5p644x" ] ; thenrm -f regs.hln -s $6.h regs.hrm -f asm-$2/archln -s arch-$3 asm-$2/archfiif [ "$2" = "arm" ] ; then
 

#创建符号链接4:asm-arm/proc ->proc-armv
rm -f asm-$2/procln -s ${LNPREFIX}proc-armv asm-$2/procfi# create link for s3c64xx-mp SoCif [ "$3" = "s3c64xx-mp" ] ; thenrm -f regs.hln -s $6.h regs.hrm -f asm-$2/archln -s arch-$3 asm-$2/archfi
 

SO!!为虾米要创建这些符号链接呢??

因为为了移植不同的开发板SOC,比如源码中你在#include<asm/xxx.h>时,

其实兼容了所以版本板子的asm-soc/xxx.h  不是吗~~~


最后分析最后一段的shell脚本:(主要是生成include/config.mk文件和生成配置头文件include/config.h)


注意:此时的路径是在include下,所以上面生成的config.mk和config.h是在include下的:

config.mk的生成:

生成目的:在主makefile中要调用它。

生成内容:如下图:

config.h的生成:

生成目的:其实是为了更好的移植性,和上面做的符号链接类似:(config.h就是为了包含$1.h )

echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h

生成内容:如下图:


<configs/x210_sd.h>,这个头文件是我们移植x210开发板时,对开发板的宏定义配置文件。

这个文件是我们移植x210时最主要的文件。
x210_sd.h文件会被用来生成一个autoconf.mk文件,这个文件会被主Makefile引入,指导整

个编译过程。这里面的这些宏定义会影响我们对uboot中大部分.c文件中一些条件编译的选择。

从而实现最终的可移植性。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Uboot是一种嵌入式系统的引导程序,用于启动操作系统。TP-Link720nv4是一款由TP-Link公司生产的路由器型号。 Uboot-tplink720nv4是指为TP-Link720nv4路由器定制的Uboot引导程序。Uboot-tplink720nv4具有以下特点: 1. 支持快速启动:Uboot-tplink720nv4能够在路由器开机时快速加载,以便尽快启动路由器操作系统,降低用户等待时间。 2. 自定义引导选项:Uboot-tplink720nv4具有丰富的引导选项,用户可以根据自己的需求进行选择。比如,可以选择从不同的存储设备启动,如FLASH、SD卡等,或者通过网络启动。 3. 系统维护功能:Uboot-tplink720nv4还提供了一些系统维护功能,方便用户管理和维护路由器。例如,可以进行固件升级、配置文件恢复和备份等操作。 4. 可靠性和稳定性:Uboot-tplink720nv4经过精心设计和测试,具有较高的可靠性和稳定性。它能够有效地处理各种异常情况,并在出现问题时进行适当的错误处理和恢复。 总之,Uboot-tplink720nv4是一款针对TP-Link720nv4路由器定制的引导程序,能够提供快速启动、自定义引导选项、系统维护功能以及可靠性和稳定性等特点。这些特点使得Uboot-tplink720nv4成为路由器启动和管理的重要工具,为用户提供了更好的使用体验和更高的可靠性。 ### 回答2: U-Boot是一个开源的引导加载程序,用于在嵌入式设备上引导操作系统。而TP-Link 720N V4是一款由TP-Link公司生产的路由器。uboot-tplink720nv4是U-Boot的一个定制版本,专门针对TP-Link 720N V4进行优化和适配。 uboot-tplink720nv4的主要功能有以下几个方面: 1. 引导加载程序:uboot-tplink720nv4负责引导路由器的操作系统。它从存储介质(如闪存或TF卡)中读取操作系统的映像文件,并将其加载到系统内存中进行执行。它也可以从网络中引导操作系统,例如通过TFTP协议从服务器下载映像文件。 2. 诊断和配置:uboot-tplink720nv4提供了一套诊断和配置工具,可以对路由器进行诊断和设置。通过串口或网络接口,用户可以访问uboot-tplink720nv4的控制台,查看系统状态、配置参数和执行一些基本的维护操作。 3. 固件更新:uboot-tplink720nv4还支持在路由器上进行固件更新。用户可以通过控制台上传新的固件映像文件,uboot-tplink720nv4会将其写入到闪存中,以更新路由器的软件版本。 4. 定制和优化:uboot-tplink720nv4是根据TP-Link 720N V4的硬件架构和功能进行定制和优化的。它可以最大程度地利用路由器的资源,提供高性能和稳定的引导加载功能。 总之,uboot-tplink720nv4是一款针对TP-Link 720N V4路由器的定制U-Boot引导加载程序,它提供了引导加载、诊断和配置、固件更新等功能,可以最大化利用路由器的性能和功能。 ### 回答3: uboot-tplink720nv4 是一个针对 TP-Link 720n V4 路由器的 U-Boot 引导程序。U-Boot 是一个开源的引导加载程序,它负责加载操作系统并引导设备启动。TP-Link 720n V4 是一款低成本的家用路由器,uboot-tplink720nv4 提供了一种自定义引导程序的方式,使用户能够更灵活地管理和控制设备。 uboot-tplink720nv4 的安装需要通过刷写固件的方式完成。刷写固件前需确保设备已 root 或已解锁。在刷写过程中需要注意备份原始固件,以防意外发生。安装完成后,用户可以根据自己的需要进行配置和使用。 uboot-tplink720nv4 提供了丰富的功能和选项,例如用户可以定制启动菜单、修改网络设置、烧录新固件等。这些功能使用户可以更好地控制路由器,并提供了更高的扩展性和自定义化的可能性。 与传统的固件相比,uboot-tplink720nv4 的优势在于其开源性和灵活性。用户可以根据自己的需求进行二次开发和定制,从而实现更多个性化的功能。此外,作为开源项目,uboot-tplink720nv4 可以通过社区的力量进行不断的改进和更新,提供更好的用户体验和稳定性。 总之,uboot-tplink720nv4 是一个适用于 TP-Link 720n V4 路由器的 U-Boot 引导程序,它提供了更灵活和可定制的方式来管理和控制设备。用户可以根据自己的需求进行安装和配置,并享受更多个性化的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值