发布时间:2015-03-19 22:20:16
随后调用s3c24xx_init_uarts()->s3c2410_init_uarts()->s3c24xx_init_uartdevs()点击(此处)折叠或打开MACHINE_START(MINI2440, "MINI2440") /* Maintainer: Michel Pollet */ .boot_.........【阅读全文】
发布时间:2015-03-19 14:35:50
内核时钟初始化函数是s3c24xx_init_clocks(12000000)。改函数的从start_kernel-->setup_arch(&command_line)-->paging_init(mdesc)-->devicemaps_init(mdesc)-->if (mdesc->map_io)mdesc->map_io();-->mini2440_map_io-->s3c24xx_init_clocks(12000000).所以此函数是各个部分初始化的起点。s3c24xx_init_clocks(12000000).........【阅读全文】
发布时间:2015-03-19 14:31:41
在内核访问设备之前,首先需要将设备所处的物理地址映射到虚拟地址空间。我们一般使用两种方式。一种是动态映射的方式,利用ioremap函数进行映射, iounmap进行释放来完成的;一种是静态映射的方式。内存静态映射分3个层次:开发板的层次(如:声卡,网卡和开发板相关的部分) 最小系统的层次(系统必.........【阅读全文】
发布时间:2015-03-19 14:08:02
这里我们先搞清楚一个问题,在kernel配置选项Boot options中有一个Default kernel command string参数项,而在u-boot参数中也有一个bootargs参数项,他们都是供内核启动用的,那他们又有什么区别呢,内核启动时到底是用哪一个呢?两种参数项分别如下图所示(kernel中的参数指定是从开发板Flash分区上.........【阅读全文】
发布时间:2015-03-19 14:02:26
linux内核启动过程可以分为两个部分:架构/开发板相关代码的引导过程,后继的通用启动过程。本文将分析的是ARM架构处理器的linux内核vmlinux的启动过程,之所以强调vmlinux,是因为其它格式的内核在进行与vmlinux相同的流程之前会有一些独特的操作,比如对于压缩格式的zImage,它首先进行自解压得到vmlinux (它将调.........【阅读全文】