little kernel
茫茫大士
热爱编程
展开
-
LK源码解析 1 crt0.s
FORM:https://blog.csdn.net/xichangbao/article/details/51484138lk/arch/crt0.s中的_start函数为入口函数,crt0.s主要初始化CPU,然后长跳转(bl)到lk/kernel/main.c中kmain函数。lk的代码起始位置在crt0.S中。#define DSB .byte 0x4f, 0xf0, 0x7f,...转载 2019-07-13 22:13:21 · 606 阅读 · 0 评论 -
Android启动流程分析之二:内核的引导
FROM:https://blog.csdn.net/ffmxnjm/article/details/70598711http://blog.csdn.net/ly890700/article/details/54586465继续以c6(mido)的代码为例由于目前大部分手机不再使用nand flash,取而代之的是emmc,因此启动内核的实现以boot_linux_fro...转载 2019-07-20 21:46:12 · 1099 阅读 · 0 评论 -
Android启动流程分析之一:Bootloader(基于高通芯片) 【mtk lk阶段有类似】
http://blog.csdn.net/ly890700/article/details/54586448注:很多内容和MTK LK阶段相同,可以借鉴学习。aboot.c内容差异很大。本文以C6的bootlader代码为例,一 kmain 1 crt0.S 2 kmain 二 bootstrap2 1arch_init 2 target_...转载 2019-07-20 21:44:45 · 2011 阅读 · 0 评论 -
LK源码解析 9 总结
FORM:https://blog.csdn.net/xichangbao/article/details/51484635little kernel做为Android系统的bootloader,最早用google工程师实现,其后由高通,MTK等芯片厂商做了各自平台的适配。lk的主要功能:初始化硬件模块,如时钟,中断,UART,USB,LCD,PMIC,eMMC/UFS等。更新cmdl...转载 2019-07-14 09:26:25 · 678 阅读 · 0 评论 -
LK源码解析 8 exceptions.S
FROM:https://blog.csdn.net/xichangbao/article/details/514846291. arm异常模式。#define FUNCTION(x) .global x; x:FUNCTION(arm_undefined) // 未定义指令异常stmfdsp!, { r0-r12, r14 } // 批量数据存储指令,用于将r0-...转载 2019-07-14 09:25:31 · 687 阅读 · 0 评论 -
LK源码解析 7 aboot.c
FROM:https://blog.csdn.net/xichangbao/article/details/514846271 boot_linux()。typedef void entry_func_ptr(unsigned, unsigned, unsigned*);void boot_linux(void *kernel, unsigned *tags,const ...转载 2019-07-14 09:24:08 · 244 阅读 · 0 评论 -
LK源码解析 6 aboot.c
FORM:https://blog.csdn.net/xichangbao/article/details/51484623听闻高通将弃用lk转用uefi,在想还有继续分析lk源码的必要吗?后来一想分析lk源码的目的与lk亦或是uefi无关,于是决定继续进行。boot_linux_from_mmc()。struct boot_img_hdr{unsigned char mag...转载 2019-07-14 09:22:41 · 309 阅读 · 0 评论 -
LK源码解析 5 aboot.c
FROM:https://blog.csdn.net/xichangbao/article/details/51484610现在开始分析关键函数aboot_init(),岔开一句lk在分区表的名称即为aboot。aboot_init()。void aboot_init(const struct app_descriptor *app){unsigned reboot_mode...转载 2019-07-14 09:21:30 · 661 阅读 · 0 评论 -
LK源码解析 4 main.c
FORM:https://blog.csdn.net/xichangbao/article/details/514846031 bootstrap2()。static int bootstrap2(void *arg){dprintf(SPEW, "top of bootstrap2()\n");arch_init(); // 目前为空函数// XXX ...转载 2019-07-14 09:20:32 · 512 阅读 · 0 评论 -
LK源码解析 3 thread.c
FROM:https://blog.csdn.net/xichangbao/article/details/51484585从thread_resume(thread_create("bootstrap2", &bootstrap2, NULL, DEFAULT_PRIORITY, DEFAULT_STACK_SIZE));展开对lk中thread的分析。struct threa...转载 2019-07-14 09:19:13 · 405 阅读 · 0 评论 -
LK源码解析 2 main.c
FORM:https://blog.csdn.net/xichangbao/article/details/51484564kmain()。/* called from crt0.S */void kmain(void) __NO_RETURN __EXTERNALLY_VISIBLE;void kmain(void){// get us into some sort o...转载 2019-07-13 22:26:01 · 497 阅读 · 0 评论 -
Android启动流程分析之三:内核启动过程2--start_kernel
http://blog.csdn.net/ly890700/article/details/54586484start_kernel是内核启动后执行的第一个C语言函数,位于kernel/init/main.c中一start_kernel上半段kernel/init/main.cCollapse source asmlinkage __visiblevoid__i...转载 2019-07-20 21:47:10 · 775 阅读 · 0 评论