精华内容
下载资源
问答
  • uboot中make menuconfig以及添加命令

    千次阅读 2018-03-19 10:26:19
    uboot中make menuconfig以及添加...,主要涉及到uboot中make menuconfig以及添加命令方面的内容,对于uboot中make menuconfig以及添加命令感兴趣的同学可以参考一下。1. make menuconfig:与make config一样,只不过...
    转载地址:http://www.fx114.net/qa-280-145089.aspx
    本篇文章主要介绍了"uboot中make menuconfig以及添加命令",主要涉及到uboot中make menuconfig以及添加命令方面的内容,对于uboot中make menuconfig以及添加命令感兴趣的同学可以参考一下。

    1. make menuconfig:与make config一样,只不过是图形界面而已,需要安装ncurses。

    2. make menuconfig中的menuconfig与all,clean一样,是目标。自己的uboot(简称uboot2011)中的menuconfig目标下面有一行:$(SHELL) $(SCRIPTSDIR)/Menuconfig config.in。表示使用脚本文件夹下的Menuconfig来解释本目录的config.in。本目录的config.in下面最后有:

    if [ "$CONFIG_RTL838X" = "y" ] || [ "$CONFIG_RTL838XS" = "y" ]; then
        source ./board/Realtek/rtl838x/menuconfig.in
    elif [ "$CONFIG_RTL839X" = "y" ] || [ "$CONFIG_RTL839XS" = "y" ]; then
        source ./board/Realtek/rtl839x/menuconfig.in
    fi

    这样就找到了其实最后诊断那个目录是在。。。地方。然后依照示例加一行就ok。

    3. 我加了bool 'My Test' CONFIG_MY_TEST,这样会在autoconfig.h中出现宏CONFIG_MY_TEST=1,然后再通过这个宏切uboot中自定义的命令就好。

    4. 照着CONFIG_CMD_FLASH_TEST来添加:

    Autoconf.h (include\configs):#define CONFIG_CMD_FLASH_TEST 1
    Board_cmd.c (8x):#ifdef CONFIG_CMD_FLASH_TEST
    Board_cmd.c (8x):#ifdef CONFIG_CMD_FLASH_TEST
    Board_cmd.c (8x):#ifdef CONFIG_CMD_FLASH_TEST
    Board_cmd.c 9x):#ifdef CONFIG_CMD_FLASH_TEST
    Board_cmd.c 9x):#ifdef CONFIG_CMD_FLASH_TEST
    Board_cmd.c 9x):#ifdef CONFIG_CMD_FLASH_TEST
    8x.h (include\configs):#if defined(CONFIG_CMD_FLASH_TEST)    //CONFIG_SYS_POST_FLASH will use flash test
    8x.h (include\configs):#define CONFIG_CMD_FLASH_TEST 1
    8xS.h (include\configs):#if defined(CONFIG_CMD_FLASH_TEST)    //CONFIG_SYS_POST_FLASH will use flash test
    8xS.h (include\configs):#define CONFIG_CMD_FLASH_TEST 1
    9x.h (include\configs):#if defined(CONFIG_CMD_FLASH_TEST)    //CONFIG_SYS_POST_FLASH will use flash test
    9x.h (include\configs):#define CONFIG_CMD_FLASH_TEST 1
    9xS.h (include\configs):#if defined(CONFIG_CMD_FLASH_TEST)    //CONFIG_SYS_POST_FLASH will use flash test
    9xS.h (include\configs):#define CONFIG_CMD_FLASH_TEST 1

    展开全文
  • make menuconfig 打开之后会出现选项,y 为* n为空 m为M (*) a.c --- a.o ----- zImage 既编译又连接 (*) b.c --- b.o ----- zImage  既编译又连接 (M) d.c --- d.o 只编译不连接 ( ) e.c 不编译 ...

    一个嵌入式系统从软件角度分为三个层次

    1,引导加载程序  包含固化在固件中的boot程序(如BIOS),和Bootloader(如grub或lilo)两个部分。

    2,linux内核

    3,文件系统:包含应用程序和系统命令

    BIOS在完成硬件检测和资源分配后,Bootloader将硬盘中的引导程序读到系统内存中,然后跳转到内存运行。

    嵌入式系统一般没有boot,只需要bootloader,一种bootloader重新上电会跳到内存Flash 0x00000000开始执行。另一种bootloader 会进行一些硬件设备初始化,然后,跳转到bootloader指定的flash位置启动os内核。

    214645_uGS3_274829.gif

    编译bootloader 常用的指令 

    一般用        arm-linux-gcc  hello.c -o hello    编译文件

    反汇编命令   arm-linux-objdump -D -S hello >hello.txt (>hello.txt 把结果重定向到 hello.txt)

    ELF文件查看 arm-linux-readelf -a hello (可以查看大段小段模式,及运行平台)

                    arm-linux-readeld -d hello (查看hello使用的动态链接库)

    编译uboot的源文件boot中的主要目录

    220419_V9aS_274829.png

    220459_lAws_274829.png

    board 和开发板相关的文件 如board/samsung/smdk6410

    common uboot命令

    cpu 处理器对应的文件

    uboot常用命令 

    help查看所有命令

    printfenv: 查看当前环境变量

    setenv : 添加环境变量    如setenv test 123 (添加环境变量 值123) setenv test (删除环境变量)

    saveenv:保存当前环境变量 这样重启自己添加的环境变量就不消失了

    tftp 下载文件

    tftp c0000000  zImage (zImage 存在与宿主机tftp服务器的目录下)

    nand 

    nand info 查看nandflash 大小

    nand erase 100000 700000 擦除 100000 到700000数据

    go addr 运行addr(地址)的应用


    make menuconfig

    打开之后会出现选项,y 为*   n为空  m为M

    (*) a.c  --- a.o ----- zImage 既编译又连接

    (*) b.c  --- b.o ----- zImage 既编译又连接


    (M) d.c ---  d.o  只编译不连接

    ( )  e.c              不编译

    至于内核选项该如何配置,可以Google下Linux内核配置详解。由于太多不列举。

    平时配置时,可以到/arch/arm/configs找到和开发板相近的config进行修改配置

    cp /arch/arm/xxx_config /forlinux/linux3.0.1 也就是.config所在的目录(ls -a查看)


    make  zImage V = 1会列出详细的编译信息,便于查找出错

    生成的文件在 arch/arm/boot/ 下zImage


    转载于:https://my.oschina.net/u/274829/blog/269255

    展开全文
  • (写在前面: 本文是本人分析uboot中的makefile文件得到的粗浅的见解,写的越多越感觉其中的深奥复杂。本文是编辑在word中粘贴过来的, 排版可能有有点问题, 或者可以下载 ...

    Make menuconfig  到底做了什么?

    (写在前面: 本文是本人分析uboot中的makefile文件得到的粗浅的见解,写的越多越感觉其中的深奥复杂。本文是编辑在word中粘贴过来的, 排版可能有有点问题, 或者可以下载 https://files.cnblogs.com/files/syyxy/make_menuconfig%E5%88%B0%E5%BA%95%E5%81%9A%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.zip 这个是我的原版,排版会好一些)

    在Uboot的主Makefile中 496行可以看到如下定义

    %config: scripts_basic outputmakefile FORCE

    $(MAKE) $(build)=scripts/kconfig $@

     

    在Makefile 415行中可以看到如下定义:

    scripts_basic:

        $(MAKE) $(build)=scripts/basic

        rm -f .tmp_quiet_recordmcount

     

    $(build) 在 script/ Kbuild.include 文件中下定义如下:

     

     

    则将其展开得到:

    Make -f scripts/Makefile.build obj=srcipts/basic

     

    由于没有指定目标,因此__build 为默认目标

     

    __build: $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y)) \

         $(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) \

         $(subdir-ym) $(always)

    @:

     

    解析:

    $(KBUILD_BUILTIN): 在根目录的makefile中, 将其置为了1,且被export了下来

     

     

    那么 $(if $(KBUILD_BUILTIN),$(builtin-target) $(lib-target) $(extra-y))

    返回的结果就是 $(builtin-target) $(lib-target) $(extra-y)

     

    $(KBUILD_MODULES):在根目录中设置了为0, 且被export了下来. 因此:

    $(if $(KBUILD_MODULES),$(obj-m) $(modorder-target)) 的返回值就是空。则__build可以写作:

    __build: $(builtin-target) $(lib-target) $(extra-y)$(subdir-ym)$(always)

     

    接下来分析依赖文件:

    $(builtin-target)在Makefile.build 文件中找到其定义如下:

     

     

    和:

     

     

     

    首先看:

    ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)

    builtin-target := $(obj)/built-in.o

    endif

     

    如果没有定义 $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target) ,则

    builtin-target := $(obj)/built-in.o, 否则不定义该变量。

     

    那么, 如何查看有没有定义这几个变量?

    在我看来, 需要在3个地方查看变量的定义:

    1) 本makefile中

    2) 是否是上层makefile 通过export的方式传递下来

    3) 有没有通过include 其他文件

     

    首先查看$(obj-y):

    在当前makefile.build 中 只有一处定义:

     

     

    但是我们仍然还要看此Makefile include了那几个文件,如下:

     

    通过查看各个文件, 在Makefile.lib 中发现如下定义:

    obj-y      := $(patsubst %/, %/built-in.o, $(obj-y))

    obj-y      := $(addprefix $(obj)/,$(obj-y))

    通过以上可以看出,上面的使用仍然需要 $(obj-y)。因此不是我们的目标(请注意,我们此阶段的目标是找到$(obj-y)的具体定义)。

    在 Makefile.build中发现如下片段:

    # Do not include host rules unless needed

    ifneq ($(hostprogs-y)$(hostprogs-m),)

    include scripts/Makefile.host

    endif

    接下来就是确定有没有定义 $(hostprogs-y)$(hostprogs-m) ,这两个变量。

      

    通过 $(error  $(hostprogs-y)) 打印 $(hostprogs-y) 为 dep

    则说明确实定义了$(hostprogs-y),则 会include scripts/Makefile.host ,这个文件。

    查看该文件并没有定义该变量。

     

    通过 $(error  $(hostprogs-y)) 打印 $(hostprogs-y) 为 dep

    则说明确实定义了$(hostprogs-y),则 会include scripts/Makefile.host ,这个文件。

    查看该文件并没有定义该变量。

    由此看来, $(obj-y) 为空。

    上述只是告诉了分析方法,其实可以通过打印的方式打印出来, 如下:

     

    PHONY += scripts_basic

    scripts_basic:

        $(Q) echo "obj-y:"$(obj-y)

        $(Q)$(MAKE) $(build)=scripts/basic

        $(Q)rm -f .tmp_quiet_recordmcount

     

    可以看到:

     

     

     

    同理,通过添加$(error  xxxxx) 可以轻松得到变量的值

    _build 为 scripts/basic/fixdep

     

    接下来的依赖目标是: outputmakefile ,我们没有定义$(KBUILD_SRC),因此outputmakefile 为空。

     

     

     

    接下来依赖的目标是: FORCE, 定义如下:

     

     

    可以看到 FORCE 为伪目标,强制执行。

     

    到这里 %config 的三个依赖目标全部得到了:

    scripts_basic: scripts/basic/fixdep

    outputmakefile: 空

    FORCE :代表强制执行

     

     

    接下来就是:

     

     

     

    $(MAKE) $(build)=scripts/kconfig $@

     

    如果我们输入 make menuconfig,

    将其展开,得到:

    make -f ./scripts/Makefile.build obj=scripts/kconfig menuconfig

     

    这里做了什么?

    首先我们要知道,在  ./scripts/Makefile.build 中,

    $(obj)= scripts/kconfig

    分析该文件开头代码,

     

    # Modified for U-Boot

    prefix := tpl

    src := $(patsubst $(prefix)/%,%,$(obj))

    ifeq ($(obj),$(src))

    prefix := spl

    src := $(patsubst $(prefix)/%,%,$(obj))

    ifeq ($(obj),$(src))

    prefix := .

    endif

    endif

     

    分析:

    src := $(patsubst $(prefix)/%,%,$(obj))

    意思是: 如果 ,$(obj)中有单词符合 tpl/* ,则将其替换为*(例如将 tpl/test 替换为 test)。并将替换结果返回(注意,该结果包括不能替换的单词)。

    因此得到src = scripts/kconfig

     

    然后继续往下走:

     

    # The filename Kbuild has precedence over Makefile

    kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))

    kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)

    include $(kbuild-file)

     

    分析:

    $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))

    意思是: 保留$(src)中以/ 开头的单词,如果为空(),则返回$(srctree)/$(src),否则返回$(src)

    $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)

    意思是: 如果$(kbuild-dir)/Kbuild 存在,则返回  $(kbuild-dir)/Kbuild, 否则返回  $(kbuild-dir)/makefile .通过查看 ./scripts/ kconfig目录下没有kbuild文件,那么kbuild-file 就是 ./scripts/ kconfig /makefile

    得到:

    kbuild-dir = ./scripts/ kconfig

    kbuild-file = ./scripts/kconfig/makefile

     

    然后将其include 进来。

     

    到这里其实不用往下看了, 因为我们需要分析的目标 menuconfig, 就在./scripts/basic/makefile中。

     

    menuconfig: $(obj)/mconf

        $< $(silent) $(Kconfig)

     

    Menuconfig 依赖 ./scripts/basic/mconf 目标

     

    那么mconf 是如何编译得到的呢?

     

    我们在  当前Makefile搜索, 发现 mconf 赋给了变量 hostprogs-y(205行):

    hostprogs-y := conf nconf mconf kxgettext qconf gconf

     

    而我们include 的 scripts/Makefile.host 中, 可以看到 hostprogs-y 赋给了 __hostprogs:

    __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))

    在scripts/Makefile.host 的第 42行,可以看到:

     

    # Object (.o) files compiled from .c files

    host-cobjs  := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))

     

    64行可以看到:

     

    host-cobjs  := $(addprefix $(obj)/,$(host-cobjs))

     

    而在 scripts/Makefile.host 的 118 行, 可以看到如下定义:

    $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE

        $(call if_changed_dep,host-cobjs)

     

    我们将 $(obj) 和 $(src) 在这个目标的下方使用 $(warning $(obj)) $(warning $(src))打印出来:

     

     

    将$(host-cobjs) 打印出来:

     

     

    因此我们这里就将 scripts/kconfig 下的 所有的*.c文件编译成了.o。

     

    $(if_change_dep) 的定义在 scripts/Kbuild.include 256行:

    # Execute command if command has changed or prerequisite(s) are updated.

    #

    if_changed = $(if $(strip $(any-prereq) $(arg-check)),                       \

        @set -e;                                                             \

        $(echo-cmd) $(cmd_$(1));                                             \

        printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)

     

    我们将 @set -e;    去掉@ 可以看到打印:

     

     

    因此我们这里就间接解释了 HOSTCC  scripts/kconfig/mconf.o 这样的整齐划一的打印从哪里来的。

     

    目前我们知道了 如何将 *conf.c 编译为.o 那么如何链接,生成真正的工具的呢?

     

    请看 host-cmulti 这个变量。

     

    # C executables linked based on several .o files

    host-cmulti := $(foreach m,$(__hostprogs),\

               $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))

     

    我们来分析一下这个语句:

    $(foreach m,$(__hostprogs),\

               $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))

     

    首先找到 make foreach 的定义:

    https://www.cnblogs.com/rohens-hbg/p/6297495.html

    从上面的解释中, 我们可以将我们的语句翻译为:

    遍历$(__hostprogs) 中的变量,放到 m中, 然后执行 $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m)))。将得到的返回值赋给 host-cmulti。

    $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))) 翻译为:

    如果  $($(m)-cxxobjs) 存在,则返回空, 否则返回 $(if $($(m)-objs),$(m))。

    $(if $($(m)-objs),$(m))翻译为:

    如果 $($(m)-objs)存在则返回$(m)

     

    目前我们已知 $(__hostprogs) = conf gconf kxgettext mconf nconf qconf

    那么根据上诉逻辑一步一步走,可以得到:

    host-cmulti =  conf gconf kxgettext mconf nconf

     

    有人会问,为什么少了 qconf ?

    因为在srcipts/kconfig/Makefile 第201行, 定义如下:

    qconf-cxxobjs   := qconf.o

    因此被消除了。

     

    目前我们得到了:

    host-cmulti =  conf gconf kxgettext mconf nconf

     

    我们可以在 srcipts/Makefile.host 中查看host-cmulti 的变化过程:

    在第62行, 被添加了前缀:

    host-cmulti := $(addprefix $(obj)/,$(host-cmulti))

    得到:

    host-cmulti = scripts/kconfig/conf scripts/kconfig/gconf scripts/kconfig/kxgettext scripts/kconfig/mconf scripts/kconfig/nconf

    在 第107行, host-cmulti 被当成目标强制编译,过程为:

    $(host-cmulti): FORCE

        $(call if_changed,host-cmulti)

     

    也就是说,只要有目标是 scripts/kconfig/conf scripts/kconfig/gconf scripts/kconfig/kxgettext scripts/kconfig/mconf scripts/kconfig/nconf

    这些,就会走 $(call if_changed,host-cmulti)流程。

     

    目前我们得到了

    host-cmulti = scripts/kconfig/conf scripts/kconfig/gconf scripts/kconfig/kxgettext scripts/kconfig/mconf scripts/kconfig/nconf

     

    在 scripts/Makefile.host 第105行有如下定义:

    # Link an executable based on list of .o files, all plain c

    # host-cmulti -> executable

    quiet_cmd_host-cmulti   = HOSTLD  $@

    cmd_host-cmulti = $(HOSTCC) $(HOSTLDFLAGS) -o $@ \

                  $(addprefix $(obj)/,$($(@F)-objs)) \

                  $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))

     

    紧接着下一行有:

    $(host-cmulti): FORCE

        $(call if_changed,host-cmulti)

    $(warning $(host-cmulti))

    $(call multi_depend, $(host-cmulti), , -objs)

     

    $(if_changed  )的定义在scripts/Makefile.include 356行:

    # Execute command if command has changed or prerequisite(s) are updated.

    #

    if_changed = $(if $(strip $(any-prereq) $(arg-check)),                       \

        @set -e;                                                             \

        $(echo-cmd) $(cmd_$(1));                                             \

        printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)

     

    我们将@ 去掉得到如下打印:

     

     

    可以看到 编译过程cc  -o scripts/kconfig/mconf. 至此, mconf 这个文件我们已经得到了。

    使用:

    scripts/kconfig/mconf  Kconfig

    就得到了我们的界面:

     

     

     

     

    完成!

     

     

     

    接下来还有我们需要做的是如何添加和删除kconfig ? 这就是下一篇博客需要做的了。

    转载于:https://www.cnblogs.com/syyxy/p/9350999.html

    展开全文
  • menuconfig是干什么的? 编译过uboot或者内核的朋友一定清楚这个命令是干什么的,如果不知道,请记住了,这个命令是用来配置的。什么是配置?就是诸如选择什么CPU,选择什么soc,选择什么特性,是否编译成模块等等...

    menuconfig是干什么的?

    编译过uboot或者内核的朋友一定清楚这个命令是干什么的,如果不知道,请记住了,这个命令是用来配置的。什么是配置?就是诸如选择什么CPU,选择什么soc,选择什么特性,是否编译成模块等等。uboot和内核的配置功能非常强大。menuconfig是一类通过ncurses实现的简易图形配置功能。

    我们可以通过cd到uboot根目录,然后键入:

    make menuconfig

    就会出来一个图形配置界面:

    然后,就可以通过按键来选择你需要的功能和特性,配置完成之后保存并退出。

    menuconfig入口在哪里?

    我们知道,make命令带上一个参数,make就会到Makefile里面找特定的目标。这里参数是menuconfig,那么make就会在根目录的Makefile里面去寻址menuconfig目标。我们打开根目录Makefile,很可惜,无论你怎么寻找,都没能找到目标是“menuconfig”的规则。

    实际上,如果对make语法比较熟悉的话,你会发现,有一种叫做“模式规则”的东西ÿ

    展开全文
  • uboot里,编译文件时,先要配置.config文件,然后Makefile在编译时通过读取.config文件的配置来选择要编译的文件。.config文件的生成可通过make menuconfig 或make xxx_defconfig 方式生成,这两种方式看上去虽然...
  • menuconfig 图形化配置

    2021-08-27 13:52:43
      uboot 或 Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面, menuconfig是一套图形化的配置工具,需要 ncurses 库支持。 ncurses 库提供了一系列的 API 函数供调用者生成基于文本的图形界面  ...
  • 在bootloader类别的menuconfig下选择uboot-mt7628软件包 在命令下构建uboot make package/uboot-mt7628/prepare V=s make package/uboot-mt7628/compile V=s uboot.bin将在openwrt_source / bin文件夹下生成
  • uboot

    2012-06-26 21:55:25
    U-Boot还没有类似Linux一样的可视化配置界面(比如使用make menuconfig来配置),要手动修改配置文件include/config/<board_name>.h来裁减、设置U-Boot。 配置文件中有两类宏: (1)一类是选项(Options),...
  • 至于选择uboot-2013.10这个官方版本,是为了避开uboot新的配置方式(make menuconfig,应该是模仿内核配置编译过程),这个图形化的配置方式,后续如果有机会的话再去研究,目前就简单认为跟内核的配置一样的吧。...
  • uboot学习笔记

    2020-09-13 11:13:51
    前言 ...uboot大概从2014年以后才支持menuconfig,在此之前uboot的配置跟linux很不一样 SPL SPL就是SecondaryProgramLoader的意思,用来把真正的uboot搬移到内存执行。 大多数系统启动的时候都是把u
  • 从网上下载u-boot-2016.09 源码,修改Makefile,在文件开头添加 export CROSS_COMPILE =arm-linux- 因为2440和2410在很多地方都相似,所以沿用2410的config 然后执行make smdk2410_config...再执行make 生成uboot...
  • 编译uboot

    2020-06-29 09:18:00
    在分析UBOOT源码之前,首先要做些准备工作。1. 下载UBOOT源码去http://ftp.denx.de/pub/u-boot/网站下载最新的UBOOT源码u-boot-2020.04.tar.bz22.下载交叉编译工具去linaro官网https://www.linaro.org/downloads/...
  • uboot 移植

    2020-08-07 02:27:42
    include/configs/ql10_demo.h #ifndef __QL10_DEMO_H #define __QL10_DEMO_H #endif 5)使用menuconfig,生成.config,并保存为ql10_demo_defconfig cd ~/work/x_project/u-boot make menuconfig 配置Architecture和...
  • uboot移植

    2019-07-09 17:53:00
    1.下载uboot源码,这里下载的是u-boot-2018.01.tar.bz2 ftp://ftp.denx.de/pub/u-boot/ 2.配置交叉编译器,这里使用4.9.4,修改Makefile 要编译uboot,首先就要有相应的编译器,目标板是nxp imx6ul,就是一个ARM核的...
  • 《12.uboot的移植2-从uboot官方标准uboot开始移植》 第一部分、章节目录 2.12.1.选择合适的官方原版uboot 2.12.2.先初步浏览官方原版uboot 2.12.3.mkconfig脚本分析 2.12.4.先解决官方版本uboot的烧录运行 2.12.5....
  • 1. 选择合适的官方原版uboot 1.1 官方原版uboot的版本 (1)版本号。刚开始是1.3.4,后来变成2009.08 (2)新版和旧版的差别。uboot的架构很早就定下来了,然后里面普遍公用的东西(common目录下、drivers目录下、fs目录...
  • IMX6 uboot SPL 模式启动

    2020-10-21 12:39:22
    IMX6 uboot SPL 模式启动 uboot 版本 2016.03;linux版本4.1.15 uboot设置: 1、设置CONFIG_SPL=y, 打开SPL功能需要: 在make menuconfig 中 Boot images 菜单下打开 Enable SPL 2、设置CONFIG_SPL_OS_BOOT宏,从...
  • ARM UBoot

    2016-07-07 16:53:36
    一、UBoot 如何调用内核  UBoot通过命令把Linux内核镜像文件从Flash中读取到内存的某一位置,然后设置PC寄存器执向该位置UBoot调用Linux内核。  调用内核的条件是:  1. R0 =0  2.R1=适当的机器码,位于...
  • uboot图形界面配置

    2021-03-14 18:15:19
    简介 前面我们通过 mx6ull_alientek_emmc_defconfig 文件来配置...在uboot或kernel源码顶层目录输入“make menuconfig” 可以进入图形配置界面(make menuconfig 之前先看以下编译器哦)。 依赖: 图形界面依赖ncurses
  • 一,编译uboot SDK文档写得比较清楚了,写一下需要注意的地方吧. 1. 之前用SDK里和别人给的已经编译好的uboot,使用fastboot工具都刷不到板子上.最后自己用SDK里uboot源码编译的则成功刷了进去,不知道具体什么问题,...
  • 自定义make menuconfig界面
  • uboot操作流程

    2020-05-03 20:09:05
    uboot操作流程 1.解压缩(Linux解压缩命令) 2.打补丁(patch命令:patch -p 。。。) 3.配置(1)使用命令make menuconfig (2)使用默认的配置文件,在上面修改。在arch–arm–defconfig下找到相似的配置文件xxx_...
  • 编译树莓派Uboot

    千次阅读 2019-01-02 14:27:31
    开始学习Uboot,正好手头有树莓派,所以下载Uboot官方源码,官方源码已经加入了树梅派Uboot的代码。 一、环境搭建 1.虚拟机采用VMware,系统使用Ubuntu16.04 这里不介绍   2.Uboot下载 Uboot下载地址:...
  • 硬件平台:tiny4412系统:linux-3.5-20151029文件系统:busybox-...本文将记录从零使用uboot在tiny4412上搭建linux系统的。由于之前只是学了2440,完成这个流程也遇到各种,现在总结如下。其中参考了多篇博客才得以
  • 这篇文章主要描述如何把2020.10版本的uboot在tiny4412核心板(1412版)上启动起来,而不关注一些细节问题。 一、添加交叉编译器信息到Makefile 打开uboot源代码根目录下的Makefile,在开头添加如下: ARCH = arm ...
  • make menuconfig学习

    2019-08-16 17:28:58
    menuconfig本身的软件只负责提供menuconfig工作的这一套逻辑,比如说通过上下左右调整光标,Enter选中等,并不负责提供内容。menuconfig运行之后会读取Kconfig、读取/写入.config文件,Kconfi...
  • 上一节分析了命令的实现 我们可以根据自己需要添加一些常用的命令。...网络相关的初始化在board_r.c中,属于uboot的后半部分。 #ifdef CONFIG_CMD_NET /* 默认没定义 */ initr_ethad...
  • uboot log系统

    2019-11-22 19:13:24
    前面有描述如何使能dev_dbg相关打印。 这里系统整理了下uboot的log系统。 主要参考uboot/doc/README.log 摘录一些重要的片段。 22 Logging levels ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,534
精华内容 1,813
关键字:

menuconfiguboot