Hi,大家好!我是CrazyCatJack,你们可以叫我CCJ或者疯猫。今天我给大家带来的是u-boot的源代码汇编段分析,以后还会给大家讲解后续的C代码,请持续关注哦^_^ 先简单说一下u-boot,在嵌入式开发中,u-boot起着至关重要的作用:读出嵌入式系统内核并启动内核。因此非常有必要对u- ...
分类:
其他好文 时间:
2016-11-19 13:09:22
阅读次数:
144
在u-boot中,通过bootm命令启动内核。bootm命令的作用是将内核加载到指定的内存地址,然后通过R0、R1、R2寄存器传递启动参数之后启动内核。在启动内核之前需要对环境做一些初始化工作,主要有如下几个方面: (1)、cpu 寄存器设置 * R0 = 0 * R1 = 板级 id * R2 = ...
分类:
其他好文 时间:
2016-10-28 09:58:51
阅读次数:
365
编译的内核可能会很大,故这里可以压缩一下。而在内核文件中需要解压,所以就会有一段自解压代码。 在uboot启动内核的时候,调用了函数: thekernel(0,MACH_ID,params_addr ) 1. 首先处理uboot传入的参数。 获取处理器id,查看内核是否支持这个处理器。 获取uboo ...
分类:
系统相关 时间:
2016-10-20 15:06:21
阅读次数:
215
内核启动是需要必要的启动参数。不能开机自动完全从0开始启动,需要uboot帮助内核实现重定位并提供参数。 首先,uboo会从Kernel分区中读取bootcmd环境变量,根据环境变量可自动启动。 分区: 每个硬盘上都有一个分区表。由于Flash中没有分区表,所以Flash的分区只能在源代码中定义,故 ...
分类:
系统相关 时间:
2016-10-20 00:19:58
阅读次数:
187
面试中经常遇到说,请简要回答一下Linux系统的开机启动过程? 加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同 ...
分类:
系统相关 时间:
2016-09-14 19:08:49
阅读次数:
217
1、加载BIOS,获取启动顺序,找到第一个启动设备2、读取第一个启动设备MBR区域的信息,里面有GRUB引到程序3、加载内核、驱动硬件,并且分配硬件资源4、启动init进程5、启动内核外的模块以及库,/etc/modeprobe.conf6、init执行相应运行级别的scripts,并且加载rc.local7、执行/b..
分类:
系统相关 时间:
2016-09-12 22:41:44
阅读次数:
238
一.系统功能框架: U-boot : 启动内核 linux kernel: 启动应用 应用: open,read,write 都是通过C库实现,汇编就相当于swi val,引发中断,通过系统调用接口在异常中断调用不同处理函数(VFS)。 二.字符设备驱动框架: 1.编写驱动:open , read, ...
分类:
系统相关 时间:
2016-09-12 19:04:04
阅读次数:
235
CentOS6.8GRUB加密和破解密码实战指南案例1:服务器在公共场合,为了防止随便有人进入单用户破解root密码,先对GRUB引导进行加密,为了更加安全对启动内核时也加密1、编辑grub配置文件[root@localhost~]#opensslpasswd-1//MD5加密转换
Password:
Verifying-Password:
$1$X8cVMw..
分类:
其他好文 时间:
2016-09-12 12:41:48
阅读次数:
166
U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 启 ...
分类:
系统相关 时间:
2016-09-05 20:51:26
阅读次数:
239
总所周知,修改centos6的内核启动顺序,只需要修改/etc/grub.conf 里的default项配置即可。那么centos7系统该如何修改呢? 下面就centos7系统修改内核,做如下记录: 一般在编译安装新内核完成后,系统默认启动的还是旧内核,你需要告诉系统我要启动新内核,系统才会启动新内 ...
分类:
其他好文 时间:
2016-08-30 13:26:16
阅读次数:
2978