从Makefile开始
1)bootable/bootloader/lk根目录下有makefile和AndroidBoot.mk
2)bootable/bootloader/lk的各个子目录下有rules.mk文件,还有arch/arm/compile.mk和target一些tools子目录中的makefile等
3)先从rules.mk的输入输出开始研究
输入:可以用GET_LOCAL_DIR命令获取当前目录
ARM_CPU变量
ENABLE_LPAE_SUPPORT变量
BUILDDIR变量
ENABLE_MDTP_SUPPORT变量
输出:链接的库文件定义在MODULES变量中
目标.o文件定义在OBJS变量中
编译引用的搜索路径集定义在INCLUDES变量中
ENABLE_THUMB、HANDLED_CORE、CFLAGS、THUMBCFLAGS、THUMBINTERWORK、TOOLCHAIN_PREFIX变量
定义{值,对}集的DEFINES
BOOTOBJS定义另一个.o文件集
target目录的rules.mk中需要定义MEMBASE和MEMSIZE,并由此引出MEMVARS_SET
以部分变量定义了LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) $(THUMBCFLAGS) -print-libgcc-file-name)
GENERATED定义了在clean make时会删除的文件(反过来应该也就是指编译过程中动态生成的文件)
1)bootable/bootloader/lk根目录下有makefile和AndroidBoot.mk
2)bootable/bootloader/lk的各个子目录下有rules.mk文件,还有arch/arm/compile.mk和target一些tools子目录中的makefile等
3)先从rules.mk的输入输出开始研究
输入:可以用GET_LOCAL_DIR命令获取当前目录
ARM_CPU变量
ENABLE_LPAE_SUPPORT变量
BUILDDIR变量
ENABLE_MDTP_SUPPORT变量
输出:链接的库文件定义在MODULES变量中
目标.o文件定义在OBJS变量中
编译引用的搜索路径集定义在INCLUDES变量中
ENABLE_THUMB、HANDLED_CORE、CFLAGS、THUMBCFLAGS、THUMBINTERWORK、TOOLCHAIN_PREFIX变量
定义{值,对}集的DEFINES
BOOTOBJS定义另一个.o文件集
target目录的rules.mk中需要定义MEMBASE和MEMSIZE,并由此引出MEMVARS_SET
以部分变量定义了LIBGCC := $(shell $(TOOLCHAIN_PREFIX)gcc $(CFLAGS) $(THUMBCFLAGS) -print-libgcc-file-name)
GENERATED定义了在clean make时会删除的文件(反过来应该也就是指编译过程中动态生成的文件)

本文深入解析LK引导加载器的工作原理,包括链接脚本、应用程序初始化、屏幕背光控制策略,以及CABC内容适应背光技术。同时,介绍了LK中LCD和背光的设置,以及内核启动的初步过程。
最低0.47元/天 解锁文章
6220

被折叠的 条评论
为什么被折叠?



