little kernel编译及启动 [LK]

本文详细介绍了little kernel(LK)的编译过程,包括makefile的规则和目标生成。在启动阶段,LK进行线程初始化、平台早期初始化、串口设置、GPIO配置,并加载设备树。接着,它执行mmc初始化、framebuffer和LCM设置、启动模式选择、电池初始化,最后启动应用程序如shell、aboot和mt_boot。
摘要由CSDN通过智能技术生成

vendor/brand/proprietary/bootable/bootloader/lk/makefile
OUTBIN := $(BUILDDIR)/lk.bin
OUTELF := $(BUILDDIR)/lk


vendor/brand/proprietary/bootable/bootloader/lk/make/build.mk
$(OUTBIN): $(OUTELF)
        @echo generating image: $@
        $(NOECHO)$(SIZE) $<
        $(NOCOPY)$(OBJCOPY) -O binary $< $@
        $(NOECHO)cp -f $@ $(BUILDDIR)/lk-no-mtk-header.bin
        $(MKIMAGE) $@ img_hdr_lk.cfg > $(BUILDDIR)/lk_header.bin
        $(NOECHO)mv $(BUILDDIR)/lk_header.bin $@

        @echo linking $@
        $(NOECHO)$(LD) $(LDFLAGS) -T $(LINKER_SCRIPT) $(OUTPUT_TZ_BIN) $(ALLOBJS) $(LIBGCC) $(LIBSEC) $(LIBSEC_PLAT) $(wildcard $(PICACHU_LIB)) -o $@
        
        
vendor/brand/proprietary/bootable/bootloader/lk/makefile
ALLOBJS := \
        $(BOOTOBJS) \
        $(OBJS)
        
vendor/brand/proprietary/bootable/bootloader/lk/arch/arm/rules.mk
BOOTOBJS += \
        $(LOCAL_DIR)/crt0.o

vendor\brand\proprietary\bootable\bootloader\lk\arch\arm\crt0.S
bl        kmain

vendor\brand\proprietary\bootable\bootloader\lk\kernel\main.c
kmain
    thread_init_early //添加当前线程进 线程上下文(线程管理)
    platform_early_init
        uart_init_early(4个串口  #define CONFIG_BAUDRATE         9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值