![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文章
Funkunux
嵌入式linux开发
展开
-
[Funkunux] Linux_2.6.22.6 内核start_kernel函数分析之parse_args
在我的上一篇文章 [Funkunux] Linux_2.6.22.6的Makefile分析 中,已经找到linux内核的第一条代码的位置是head.s,在head.s中,内核将bootloader中传给内核的参数进行解析,比对机器ID等参数,设置页表,开启MMU,然后跳转到/init/Main.c中的start_kernel()中进行一系列初始化。以下是start_kernel函数的分析,重点原创 2016-07-20 12:23:11 · 2345 阅读 · 0 评论 -
[Funkunux] Linux_2.6.22.6的Makefile分析
当我们分析内核的时候,第一件事就是找出内核运行的入口点在哪里,也就是第一个文件。所以我们需要对内核的顶层目录Makefile进行分析。 一般我们编译内核的时候,需要把内核镜像文件uImage编译出来,然后烧进开发板上,所以在顶层Makefile中搜索uImage,可以找到这么一句话 zImage Image xipImage bootpImage uImage: vmlinux $(Q)原创 2016-07-20 11:29:35 · 656 阅读 · 0 评论 -
[Funkunux] Linux_2.6.22.6 内核start_kernel函数分析之console_init
在我的上一篇文章中,已经对start_kernel函数中的parse_init函数进行分析,该函数运行完后,可以得到如下三个变量: saved_root_name="/dev/mtdblock3"; console_cmdline[0].name= "ttySAC"; console_cmdline[0].options=原创 2016-07-20 14:03:37 · 2188 阅读 · 0 评论 -
[Funkunux] Linux_2.6.22.6 内核 start_kernel 函数分析之 rest_init
前面我们已经对parse_args函数进行了分析,得到三个参数: saved_root_name="/dev/mtdblock3"; console_cmdline[0].name= "ttySAC"; console_cmdline[0].options= 0; console_cmdline[0].idx= 0;原创 2016-07-20 15:48:41 · 1065 阅读 · 0 评论 -
U-BOOT-2016.07移植 (第二篇) 添加单板
U-BOOT-201607移植 第二篇 添加单板 1. 在board中创建单板目录 2. 创建单板相关头文件 3. 创建defconfig文件 4. 修改arch/arm/Kconfig文件 5. 尝试配置并编译原创 2016-09-08 01:46:31 · 4116 阅读 · 2 评论 -
U-BOOT-2016.07移植 (第三篇) 代码重定位
U-BOOT-201607移植 第三篇 代码重定位 1.分析board_init_f 2.分析relocate_code原创 2016-09-08 19:32:08 · 5076 阅读 · 2 评论 -
U-BOOT-2016.07移植 (第四篇) 修改代码,从NOR启动
U-BOOT-2016.07移植 (第四篇) 修改代码,从NOR启动 1. 修改lowlevel_init.S 2. 修改start.S 3. 修改smdk2440.c 4. 编译、烧写、启动单板原创 2016-09-09 15:44:46 · 2687 阅读 · 0 评论 -
U-BOOT-2016.07移植 (第一篇) 初步分析
U-BOOT-201607移植 之 初步分析 1. 更新交叉编译工具(arm-linux-gcc 4.4.3) 2. 下载u-boot-2016.07并解压 3. 分析顶层Makefile, 找出目标依赖关系 4. 配置并试编译u-boot 5. u-boot启动流程分析(start.S, crt0.S)原创 2016-09-07 11:46:02 · 12161 阅读 · 2 评论