十一、移植优化---CONFIG 优化进 menuconfig(2)
11.3 jz2440.h 中的剩余宏移植
11.3.1 CONFIG_SYS_TEXT_BASE
CONFIG_SYS_TEXT_BASE:设置系统代码段的基地址,设为 0x0;menuconfig 中已经有了此宏,可以去掉。
11.3.2 CONFIG_SYS_GENERIC_BOARD
这个宏的作用是让每块板子加入自己的配置文件,具体可以查看文档 doc/README.generic-board
这个不需要移植
11.3.3 CONFIG_DOS_PARTITION
DOS 分区,我们不需要,删除掉,这个已经在 menuconfig 中可配
11.3.4 CONFIG_BAUDRATE
可配置,删除
11.3.5 BOOTP options
BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。
若我们开启了网卡,可以开启bootp
- CONFIG_BOOTP_BOOTFILESIZE:menuconfig 中无法配置,保持原状
- CONFIG_BOOTP_BOOTPATH:可直接在 menuconfig 中配置
- CONFIG_BOOTP_GATEWAY:可直接在 menuconfig 中配置
- CONFIG_BOOTP_HOSTNAME:可直接在 menuconfig 中配置
11.3.6 Command line configuration
- CONFIG_CMD_BSP:此命令被遗弃,若是需要,则为每一个命令定义一个Kconfig选项即可,但是现在仍然在menuconfig存在,打开。
- CONFIG_CMD_CACHE:使能 icache 和 dcache 的宏,可配,打开
- CONFIG_CMD_DATE:从 RTC 中获取或设置时间和日期,可配,打开
- CONFIG_CMD_DHCP:通过网络使用 DHCP/TFTP协议启动镜像,可配置,打开
- CONFIG_CMD_PING:发送 ICMP ECHO_REQUEST 给网络主机,可配置,打开
- CONFIG_CMD_USB:USB支持,可配置,打开
11.3.7 CONFIG_SYS_HUSH_PARSER
以前的 uboot 版本对应文件:cmd_exit.c 和 cmd_test.c,当前版本对应文件:exit.c 和 test.c。
宏被切换成了 CONFIG_HUSH_PARSER:

这个选项使命令行解释器可以使用“hush”shell(来自Busybox),从而启用强大的命令行语法,如if ... then ... else ... fi条件或'&&'和'||' 构造(“shell脚本”)。
menuconfig 有对应宏。可打开,删除文件中定义。但 uboot 制作启动linux 内核用,可以关闭掉,自己选择
11.3.8 autoboot
- CONFIG_BOOTDELAY:在自运行 bootcmd 前的延迟,可设置读秒为 5 或其他任意整数。在uboot启动后会倒计时CONFIG_BOOTDELAY,如果没有收到用户的输入则自动去执行宏CONFIG_BOOTCOMMAND中设置的命令
- 设置为 0,没有延迟的自启动,但是可以通过按键输入停止启动
- 设置为-1:不使能自启动
- 设置为-2,没有延迟的自启动,且不可以通过按键中断启动
- CONFIG_BOOT_RETRY_TIME:这个就是 uboot 重复尝试启动的特性,如果设置的值为负数,则不使能。在板子头文件中配置的,不需要修改。
- CONFIG_RESET_TO_RETRY:仅仅当CONFIG_BOOT_RETRY_TIME开启的时候,才使能。在 CONFIG_BOOT_RETRY_TIME 计数超出后,板子将复位重新启动。一样保持默认
- CONFIG_ZERO_BOOTDELAY_CHECK:在以前版本中的作用为,如果它被定义,则可以通过点击任意键来停止自启动程序,即使 CONFIG_BOOTDELAY 设置为0。
- 这个宏当前可以用 CONFIG_AUTOBOOT_KEYED 代替,关闭 CONFIG_AUTOBOOT_KEYED 就可以使用任意键来中断自动了,如果打开 CONFIG_AUTOBOOT_KEYED,则是通过特殊的按键和字符串来终止自启动
- 可以保留也可以删除
11.3.9 调试设置
CONFIG_CMD_KGDB:KGDB 调试,设置了此宏后,需要定义 CONFIG_KGDB_BAUDRATE 即串口的调试波特率 115200
可以删掉此选项,CONFIG_CMD_KGDB 可配置,CONFIG_KGDB_BAUDRATE 则在板子配置文件中加入即可。
11.3.10 杂项设置
- CONFIG_SYS_CBSIZE:从终端输入的缓存最大大小
- CONFIG_SYS_PBSIZE:终端输出的缓存的最大大小
- CONFIG_SYS_MAXARGS:终端接收到的命令参数最大个数
- CONFIG_SYS_BARGSIZE:启动时候,传递给内核的启动参数的最大缓存
- CONFIG_SYS_MEMTEST_START:简单内存测试使用的区域的开始地址
- CONFIG_SYS_MEMTEST_END:简单内存测试使用的区域的结束地址
- CONFIG_SYS_LOAD_ADDR:这个宏是属于内核启动相关宏,默认加载地址,这个主要是内核下载的地址,如果我们在 tftp 或是 bootcmd 命令中没有指定地址,那么内核就自动加载到此地址。
这几个宏定义在板子的配置文件中。
11.3.11 压缩方式
- CONFIG_BZIP2:需要添加进Kconfig 才可见,同样可删除
- CONFIG_LZO:可配置,直接选中,删除文件即可
CONFIG_BZIP2 添加:lib/Kconfig

11.3.12 环境变量
- CONFIG_ENV_IS_IN_FLASH:在 flash 中保存环境变量,可配置
- CONFIG_ENV_SIZE:环境变量大小,可配置,JZ2440 默认为 0x10000 (64KB),JZ2440 在menuconfig 中不可配置
11.3.13 文件系统
- CONFIG_CMD_EXT2
- CONFIG_CMD_MTDPARTS
- CONFIG_MTD_DEVICE
- CONFIG_MTD_PARTITIONS
- CONFIG_MTD_PARTITIONS
- CONFIG_RBTREE
uboot不需要支持文件系统 全部干掉即可,也在 menuconfig 中可配置
11.4 comm: file 2 is not in sorted order
uboot 编译最后执行的命令如下:

在 check-config.sh 脚本中,对 u-boot.cfg 进行有序检查,与 ./scripts/cofnig_whitelist.txt 进行对比。
执行 comm -23 --nocheck-order ${configs} ${whitelist} > ${suspects} 此条命令的时候报错。
comm 加入 --nocheck-order 可以屏蔽此条错误。
comm -23 --nocheck-order ${configs} ${whitelist} > ${suspects}
我对 config_whitelist.txt 进行过重新排序:cat ./scripts/config_whitelist.txt | sort -u -o 1.txt
之后对比两个文件,发现有很大的不同,不知道 uboot 中是怎么对 config_whitelist.txt 进行排序的,应该不是按照 ASCII 进行排序的
十一、移植优化---CONFIG 优化进 menuconfig(2)的更多相关文章
- 十一、移植优化---CONFIG 优化进 menuconfig(1)
在移植 JZ2440 中,include/configs/jz2440.h 中有很多config 项都是已经在 uboot 的主配置中已经存在了的,这些配置造成了重复,需要优化. 先将原先的 smdk ...
- spark优化之优化数据结构
概序: 要减少内存的消耗,除了使用高效的序列化类库以外,还有一个很重要的事情,就是优化数据结构.从而避免Java语法特性中所导致的额外内存的开销,比如基于指针的Java数据结构,以及包装类型. 有一个 ...
- c/c++性能优化--- cache优化的一点杂谈
之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论.笔者有幸阅读过IBM某个项目的框架代 ...
- [原]Android开发优化-Adapter优化
ListView作为Android开发中使用频率最高的一个控件,保证ListView的流畅运行,对用户体验的提高至关重要.Adapter是ListView和数据源之间的中间人,当每条数据进入可见区时, ...
- SqlServer 数据库引擎优化顾问优化数据库
现在一直在做的项目,数据量相对也不小,开始的时候没有觉得,因为是刚开始,数据量还很小,在程序使用过程中速度还挺快,但是随着数据量的不停的增长,发现程序越来越慢,甚至出现了超时的问题,因此要对程序和数据 ...
- Mysql优化之优化工具profiling
程序员的成长之路 2016-11-23 22:42 Mysql优化之优化工具profiling 前言 mysql优化技术: mysql优化不是做一个操作就可以的优化,它包含很多的细节,需要一点一点的优 ...
- QRowTable表格控件(四)-效率优化之-优化数据源
目录 一.开心一刻 二.问题分析 三.重写数据源 1.自己存储数据 2.重写data接口 四.比较 五.相关文章 原文链接:QRowTable表格控件(四)-效率优化之-优化数据源 一.开心一刻 一程 ...
- 知识点整理-mysql怎么查看优化器优化后的sql
背景 1.新建两张表 CREATE TABLE t1 (m1 )); CREATE TABLE t2 (m2 )); 2.插入些数据 INSERT INTO t1 VALUES(, , , 'c'); ...
- Android 性能优化 ---- 启动优化
Android 性能优化 ---- 启动优化 1.为什么要进行启动优化 一款应用的第一印象很重要,第一印象往往决定了用户的去留.打开一款应用,如果速度很快,很顺畅,那么很容易让人觉得这款应用背后的技术 ...
随机推荐
- Number Cutting Game HDU - 2848(DFS)
两个对于一个数切割 k 次,然后切割以后把这些值加起来,然后继续切割 k 次,问谁先没有办法切割. 对于第一个人,先枚举每种切割的情况,然后拿去给第二个人切割,如果第二个人怎么样都没办法切割出来,那么 ...
- 讲道理,为什么分布式一定要有Redis?
考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.所以我斗胆以 Redis 为题材,对 ...
- [THUWC2017]在美妙的数学王国中畅游
[THUWC2017]在美妙的数学王国中畅游 e和sin信息不能直接合并 泰勒展开,大于21次太小,认为是0,保留前21次多项式即可 然后就把e,sin ,kx+b都变成多项式了,pushup合并 上 ...
- 洛谷P3338 力
题意: 解: 介绍两种方法. 首先可以把那个最后除的qi拆掉. ①分前后两部分处理. 前一部分可以看做是个卷积.下面的平方不拆开,直接看成gi-j即可. 后一部分按照套路,把循环变量改成从0开始,反转 ...
- [bzoj3524][Couriers]
题目链接 思路 观察这个\((r - l + 1)/2\),很容易证明,如果一个数出现次数大于\((r - l + 1) / 2\),那么这个区间内第\((r - l + 1) / 2 + 1\)大一 ...
- django 分类搜索(根据不同的单选框,改变form提交的地址)
前端html部分form <form id="searchform" action="#" method="get" class=&q ...
- plink:ped格式转换为bed格式
命令行如下: plink --file FILENAME --make-bed --out FILENAME 第一个FILENAME的后缀为.ped和.map,生成的第二个FILENAME的后缀为.b ...
- 斯坦福大学公开课机器学习: advice for applying machine learning - evaluatin a phpothesis(怎么评估学习算法得到的假设以及如何防止过拟合或欠拟合)
怎样评价我们的学习算法得到的假设以及如何防止过拟合和欠拟合的问题. 当我们确定学习算法的参数时,我们考虑的是选择参数来使训练误差最小化.有人认为,得到一个很小的训练误差一定是一件好事.但其实,仅仅是因 ...
- 使用Linux搭建FTP服务器实现文件共享
使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...
- 面向对象【林老师版】:面向过程vs面向对象(一)
一.面向过程 1.引子 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式优点:复杂的问题流程化,进而简单化缺点:可扩展性差 2.验证代码 import json i ...