系统运行步骤
来源:互联网 发布:java random 1到100 编辑:程序博客网 时间:2024/05/21 10:47
uboot:README文件
目录结构:
平台相关:arch board
平台无关:common doc driver fs tools
配置和编译:
配置:make xxx_config xxx是开发板的名字
比如: make origen_config
顶层目录Makefile
MKCONFIG := $(SRCTREE)/mkconfig
%_config:: unconfig
@$(MKCONFIG) -A $(@:_config=) ===> mkconfig -A origen
$1 $2
分析 mkconfig文件:
line=`egrep -i "^[[:space:]]*${2}[[:space:]]" boards.cfg`
line = origen arm armv7 origen samsung exynos
set ${line} ====> origen arm armv7 origen samsung exynos
$1 $2 $3 $4 $5 $6
arch=arm
cpu=armv7
board=origen
vendor=samsung
soc=exynos
113 cd ./include
114 rm -f asm
115 ln -s ../arch/${arch}/include/asm asm
rm -f asm/arch
ln -s ${LNPREFIX}arch-${soc} asm/arch
if [ "${arch}" = "arm" ] ; then
rm -f asm/proc
ln -s ${LNPREFIX}proc-armv asm/proc
fi
ARCH= arm
CPU=armv7
SOC=exynos
BOARD=origen
VENDOR=samsung > config.mk 在inclue中创建一个config.mk的文件
BOARDDIR=${vendor}/${board} ====> BOARDDIR=samsung/origen
> config.h 创建一个config.h的文件
echo "#define CONFIG_SYS_ARCH \"${arch}\"" >> config.h
echo "#define CONFIG_SYS_CPU \"${cpu}\"" >> config.h
echo "#define CONFIG_SYS_BOARD \"${board}\"" >> config.h
[ "${vendor}" ] && echo "#define CONFIG_SYS_VENDOR \"${vendor}\"" >> config.h
[ "${soc}" ] && echo "#define CONFIG_SYS_SOC \"${soc}\"" >> config.h
cat << EOF >> config.h
#define CONFIG_BOARDDIR board/$BOARDDIR
#include <config_cmd_defaults.h>
#include <config_defaults.h>
#include <configs/${CONFIG_NAME}.h>
#include <asm/config.h>
#include <config_fallbacks.h>
#include <config_uncmd_spl.h>
总结: mkfconfig功能, 在include 目录中创建两个文件config.h config.mk
编译:
180 include $(obj)include/config.mk
181 export ARCH CPU BOARD VENDOR SOC 到处为全局变量
ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
all: $(ALL-y) $(SUBDIR_EXAMPLES)
SUBDIR_TOOLS = tools
OBJS = $(CPUDIR)/start.o ===> arch/arm/cpu/armv7/start.o
LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).o ===> board/samsung/origen/liborigen.o
LIBBOARD := $(addprefix $(obj),$(LIBBOARD)) 添加前缀
LIBS := $(addprefix $(obj),$(sort $(LIBS-y))) 依赖的各类源文件
$(obj)u-boot.lds 依赖的链接脚本
$(obj)u-boot: depend \
$(SUBDIR_TOOLS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
$(GEN_UBOOT)
$(obj)u-boot.bin: $(obj)u-boot
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
启动过程
0x80000000
DRAM
0x0
BL1: 中断和SVC stack
BL2: 时钟和内存初始化
0 0
- 系统运行步骤
- 人脸识别系统运行步骤
- MFC的运行步骤
- MFC的运行步骤
- MFC运行步骤
- MFC的运行步骤
- Android MonkeyRunner运行步骤
- 程序的运行步骤
- 运行qtopia的步骤
- Eclipse运行wordcount步骤
- Bochs运行bootsect步骤
- Tomcat运行大致步骤
- jsvm9.19.7运行步骤
- Hadoop运行步骤
- Servlet的运行步骤
- Faster RCNN 运行步骤
- JSP管理系统的完整的源码,调试运行的大体步骤
- 运行时增加流程步骤
- java基于TCP的socket数据包拆分方法
- Python读取写入TXT正确姿势
- NYOJ_123_士兵杀敌(四)插线问点
- Python 写文件
- 暴雨产生的后果
- 系统运行步骤
- vs2015配置opencv2.4.9问题解决
- windows bug
- [知其然不知其所以然-33] How to set up mutt
- 国内一线互联网公司内部面试题库
- 【Android】Android Studio配置ndk开发环境
- linux 基本操作
- Spring MVC: Internationalization & localization
- spark 集群搭建 详细步骤