技术文章
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 · 2311 阅读 · 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 · 648 阅读 · 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 · 2175 阅读 · 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 · 1055 阅读 · 0 评论 -
U-BOOT-2016.07移植 (第二篇) 添加单板
U-BOOT-201607移植 第二篇 添加单板1. 在board中创建单板目录2. 创建单板相关头文件3. 创建defconfig文件4. 修改arch/arm/Kconfig文件5. 尝试配置并编译原创 2016-09-08 01:46:31 · 4102 阅读 · 2 评论 -
U-BOOT-2016.07移植 (第三篇) 代码重定位
U-BOOT-201607移植 第三篇 代码重定位1.分析board_init_f2.分析relocate_code原创 2016-09-08 19:32:08 · 5060 阅读 · 2 评论 -
U-BOOT-2016.07移植 (第四篇) 修改代码,从NOR启动
U-BOOT-2016.07移植 (第四篇) 修改代码,从NOR启动1. 修改lowlevel_init.S2. 修改start.S3. 修改smdk2440.c4. 编译、烧写、启动单板原创 2016-09-09 15:44:46 · 2679 阅读 · 0 评论 -
U-BOOT-2016.07移植 (第一篇) 初步分析
U-BOOT-201607移植 之 初步分析1. 更新交叉编译工具(arm-linux-gcc 4.4.3) 2. 下载u-boot-2016.07并解压3. 分析顶层Makefile, 找出目标依赖关系4. 配置并试编译u-boot5. u-boot启动流程分析(start.S, crt0.S)原创 2016-09-07 11:46:02 · 12140 阅读 · 2 评论