OK6410A 开发板 (三) 7 u-boot-2021.01 boot 解析 u-boot 与linux配置部分

最新更新时间:2022-09-23来源: csdn关键字:OK6410A  开发板  u-boot 手机看文章 扫描二维码
随时随地手机看文章

U-boot配置

make O=output ok6410a_mini_defconfig

// 在配置的时候 不需要指定 ARCH(因为defconfig有写) 与 CROSS_COMPILE(因为现在并不需要,build的时候才需要)

// 如果写了CROSS_COMPILE,会去检查CROSS_COMPILE , 然后build的时候还是需要写

// 第一次用arm-gcc 的时刻, 编译时 的 CC      lib/asm-offsets.s


make[1]: Entering directory '/home/suws/ok6410/system-new/u-boot/output'

  HOSTCC  scripts/basic/fixdep

  cc -Wp,-MD,scripts/basic/.fixdep.d -Iscripts/basic -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11 -o scripts/basic/fixdep ../scripts/basic/fixdep.c

  GEN     ./Makefile

rm -f .tmp_quiet_recordmcount

ln -fsn .. source

/bin/bash ../scripts/mkmakefile

    .. . 2021 01

  GEN     ./Makefile

  HOSTCC  scripts/kconfig/conf.o

  cc -Wp,-MD,scripts/kconfig/.conf.o.d -Iscripts/kconfig -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11 -c -o scripts/kconfig/conf.o ../scripts/kconfig/conf.c

  YACC    scripts/kconfig/zconf.tab.c

  bison -oscripts/kconfig/zconf.tab.c -t -l ../scripts/kconfig/zconf.y

  LEX     scripts/kconfig/zconf.lex.c

  flex -oscripts/kconfig/zconf.lex.c -L ../scripts/kconfig/zconf.l

  HOSTCC  scripts/kconfig/zconf.tab.o

  cc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Iscripts/kconfig -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11  -I../scripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c

  HOSTLD  scripts/kconfig/conf

  cc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o


scripts/kconfig/conf  --defconfig=arch/../configs/ok6410a_mini_defconfig Kconfig

#

# configuration written to .config

#

make[1]: Leaving directory '/home/suws/ok6410/system-new/u-boot/output'


linux配置

  HOSTCC  scripts/basic/fixdep

  gcc -Wp,-MMD,scripts/basic/.fixdep.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89         -o scripts/basic/fixdep scripts/basic/fixdep.c 

  HOSTCC  scripts/kconfig/conf.o

  gcc -Wp,-MMD,scripts/kconfig/.conf.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c

  HOSTCC  scripts/kconfig/confdata.o

  gcc -Wp,-MMD,scripts/kconfig/.confdata.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/confdata.o scripts/kconfig/confdata.c

  HOSTCC  scripts/kconfig/expr.o

  gcc -Wp,-MMD,scripts/kconfig/.expr.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/expr.o scripts/kconfig/expr.c

  LEX     scripts/kconfig/lexer.lex.c

  flex -oscripts/kconfig/lexer.lex.c -L scripts/kconfig/lexer.l

  YACC    scripts/kconfig/parser.tab.[ch]

  bison -o scripts/kconfig/parser.tab.c --defines=scripts/kconfig/parser.tab.h -t -l scripts/kconfig/parser.y

  HOSTCC  scripts/kconfig/lexer.lex.o

  gcc -Wp,-MMD,scripts/kconfig/.lexer.lex.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89      -I ./scripts/kconfig -c -o scripts/kconfig/lexer.lex.o scripts/kconfig/lexer.lex.c

  HOSTCC  scripts/kconfig/parser.tab.o

  gcc -Wp,-MMD,scripts/kconfig/.parser.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89      -I ./scripts/kconfig -c -o scripts/kconfig/parser.tab.o scripts/kconfig/parser.tab.c

  HOSTCC  scripts/kconfig/preprocess.o

  gcc -Wp,-MMD,scripts/kconfig/.preprocess.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/preprocess.o scripts/kconfig/preprocess.c

  HOSTCC  scripts/kconfig/symbol.o

  gcc -Wp,-MMD,scripts/kconfig/.symbol.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/symbol.o scripts/kconfig/symbol.c

  HOSTCC  scripts/kconfig/util.o

  gcc -Wp,-MMD,scripts/kconfig/.util.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/util.o scripts/kconfig/util.c

  HOSTLD  scripts/kconfig/conf

  gcc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o

scripts/kconfig/conf  --defconfig=arch/arm/configs/ok6410A_sdboot_mini_defconfig Kconfig

#

# configuration written to .config

#


u-boot 和 linux 配置 的区别

配置需要填充的环境变量

u-boot 配置不需要填充 ARCH 与 CROSS_COMPILE 

u-boot 编译需要配置  CROSS_COMPILE

linux 配置需要填充 ARCH(这样才能找到defconfig) 与 CROSS_COMPILE (填充后会改变生成的.config,.config中会填充CROSS_COMPILE 的信息CONFIG_CC_VERSION_TEXT)

linux 编译也需要配置 ARCH 与 CROSS_COMPILE 


配置运行过程

相同点:

都是生成 scripts/kconfig/conf

并用命令 scripts/kconfig/conf  --defconfig=/path_to_defconfig/ok6410a_mini_defconfig Kconfig 生成 .config

不同点

u-boot 的 scripts/kconfig/conf 比较简单 

cc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o

linux的 scripts/kconfig/conf 比较复杂

  gcc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o


关键字:OK6410A  开发板  u-boot 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic622361.html

上一篇:OK6410A 开发板 (三) 8 u-boot-2021.01 boot 解析 SPL镜像运行部分
下一篇:OK6410A 开发板 (六) 3 OK6410A linux-5.11编译分析

推荐阅读

开发环境搭建 (一) OK6410A 开发环境 4 更改环境 OK
从sd卡中 的 u-boot(1.1.6) 启动u-boot load sd卡中 第1个分区(被格式化为fat16)的kernel(4.0),然后kernel 启动. // 如果要一个分区格式化为fat16,则这个分区的大小不能超过 2GBkernel 挂载 sd卡中的第2个分区(被格式化为ext3)为根文件系统,并执行 /linuxrc/linuxrc 作为 进程1 启动u-boot 与 启动模式 uboot(1.1.6) 的配置 forlinx_sd_ram256_configuboot镜像通过 SD_Writer.exe 写入到sd卡中(写入步骤参考附录) sd卡分区1(从0开始,32M),fat16,存储kernel , s
发表于 2022-09-27
OK6410A 开发板 (二) 环境熟悉
这是开始移植最新(2021-3-1 18:49:35) u-boot kernel 和 busybox 到 ok6410a 上的 开端资料包OK6410-A-1G用户光盘(A)-20160812链接:https://pan.baidu.com/s/1FqrI_UdiA6F2jAB__byoKQ提取码:sk0p复制这段内容后打开百度网盘手机App,操作更方便哦其中有 核心板电路图 : 开发板底板封装、PCB、原理图文件 底板电路图 : 开发板底板封装、PCB、原理图文件 s3c6410数据手册 : S3C6410 datasheet.pdf s3c6410 boot 参考手册 : CHxx_IROM_ApplicationNo
发表于 2022-09-27
<font color='red'>OK6410A</font> <font color='red'>开发板</font> (二) 环境熟悉
OK6410A 开发板 (三) u-boot-1.1.6 boot 解析
u-boot 怎么放入SD卡s3c6410 启动 流程中irom 中的 bl0 加载 sd 卡 的 bin 文件到 iRAMu-boot.bin 有 202KB,怎么放入仅有8KB的iRAM查看 CHxx_IROM_ApplicationNote_Rev1.00_080801.pdf 参考书参考书 要求 如果 u-boot.bin大于8KB,则必须 分为两部分 且第一部分 小于等于 8KB , 且被放到非易失性存储器(有6种)的 指定位置(指定位置由参考书(其实是iROM中的程序)决定) 且第二部分 要被 第一部分加载 , 第二部分被放置的位置由第一部分的加载函数决定u-boot-1.1.6 的 u-boot.bin 怎么分成两部分
发表于 2022-09-27
OK6410A 开发板 (四) OK6410A 裸机代码
写裸机代码是为了在 移植/调试 u-boot 的时候,更加从容全部代码可以参考 https://github.com/lisider/ok6410-rawcode研究裸机代码是为了 1.知道你写的每一行代码在bin文件,SD卡,内存的位置 2.熟悉 gnu armv6 汇编 3.更顺手的调试u-boot另外 其他历程可参考 https://github.com/fengrc/OK6410.git , 每个历程需要修改为如下,才可工作$ git diff *diff --git a/lcd/Makefile b/lcd/Makefileindex 93f04cd..66d66e5 100644--- a/lcd/Makefile+++
发表于 2022-09-27
OK6410A 开发板 (五) u-boot-2021.01 移植 到 ok6410a
用的代码是 https://github.com/u-boot/u-boot基于该代码的 TAG v2021.01 开发用的ok6410a相关代码来自于 https://blog.csdn.net/Golden_Chen/article/details/89077655代码已经上库 https://github.com/lisider/u-boot/tree/ok6410a目前做了三次提交提交 cb36d21d6276ac17507e19974ba974c2b0df87b0 完成了A. 目录角度 1. s3c6410 soc 的移植 arch/arm/mach-s3c64xx drivers/gpio drivers/mmc dri
发表于 2022-09-27
OK6410A 开发板 (四) 1 OK6410A 裸机LCD RGB接口
代码已经上库,https://github.com/lisider/OK6410/tree/master/lcd硬件lcd 控制器侧14 Display Controller // 位于S3C6410 datasheet Page455寄存器范围 : 0x77100000 - 0x77100344寄存器个数 : 105个硬件接口 : 支持 RGB 和其他三种接口(I80接口/NTSC/PAL标准电视编码器接口/IT-R BT. 601 接口)lcd 侧型号: WXCAT43-TG3#0014.3 寸 屏规格书与原理图屏幕显示区域 : 95.04 * 53.856 mm对角线(可显示区域) : 4.3 英寸 (109.22mm)接口时
发表于 2022-09-27
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved