
uboot
o倚楼听风雨o
人生如逆旅,我亦是行人。
展开
-
编译地址与运行地址
(1)什么是编译地址 32位的处理器,它的每一条指令是4个字节,以4个字节存储顺序,进行顺序执行,CPU是顺序执行的,只要没发生什么跳转,它会顺序进行执行行, 编译器会对每一条指令分配一个编译地址,这是编译器分配的,在编译过程中分配的地址,我们称之为编译地址。 uboot里面,在include/configs目录下有相应平台的头文件,比如我使用的是飞思卡尔的cpu(IMX6SL),对应的原创 2016-11-12 13:30:56 · 3210 阅读 · 0 评论 -
MMU内存管理单元介绍
前言 本篇文章简要阐述MMU的概念,以及以段地址的转换过程为例,简单说明MMU将虚拟地址转换成物理地址的过程。更多详细内容请查看《ARM-MMU(中文手册).pdf》。1、MMU概述 在ARM存储系统中,使用MMU实现虚拟地址到实际物理地址的映射。为何要实现这种映射? 首先就要从一个嵌入式系统的基本构成和运行方式着手。系统上电时,处理器的程序指针从0x0(或者是由0Xffff_0000处高原创 2016-11-15 13:55:27 · 2460 阅读 · 0 评论 -
ARM协处理器介绍
什么是协处理器 协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium微处理器就包括内置的数学协处理器。 协处理器可以附属于ARM处理器。一个协处理器通过扩展指令集或提供配置寄存器来扩展内核处理功能。一个或多个协处理器可以通过协处理器接口与ARM内核相连。 协处理器可以通过一组专门的、提原创 2016-11-15 11:46:30 · 12078 阅读 · 0 评论 -
uboot启动流程详解(5)-_main
前言 _main标号中主要调用的函数有三个,board_init_f,relocate_code,board_init_r,这里先贴出_main的代码并注释,然后对这三个函数的流程及原理进行详细介绍。1、代码注释ENTRY(_main)/* * Set up initial C runtime environment and call board_init_f(0). *//**这里首先为原创 2016-11-17 11:46:24 · 7242 阅读 · 5 评论 -
uboot的编译及连接过程
1、.bin文件的组成 一个.bin文件主要包含text段(代码),data段(初始化的全局变量),以及bss段(未初始化的全局变量)。局部变量是在运行过程中分配的,不包含在bin文件里面。下面举一个例子说明#include <stdio.h>#include <string.h>int a = 0; //全局未初始化变量,系统默认赋值成0,bss段,4个字节int b原创 2016-11-15 18:20:41 · 1545 阅读 · 0 评论 -
uboot启动流程详解(2)-reset
1、cpsr寄存器介绍 通过向模式位M[4:0]里写入相应的数据切换到不同的模式,在对CPSR,SPSR寄存器进行操作不能使用mov,ldr等通用指令,只能使用特权指令msr和mrs。 在ARM处理器中,只有MRS(Move to Register from State register)指令可以对状态寄存器CPSR和SPSR进行读操作。通过读CPSR可以获得当前处理器的工作状态。读原创 2016-11-12 18:58:01 · 4028 阅读 · 0 评论 -
uboot启动流程详解(4)-cpu_init_crit
1、源码及注释cpu_init_crit标号对应的源码:/************************************************************************* * * CPU_init_critical registers * * setup important registers * setup memory timing * *****原创 2016-11-16 09:03:34 · 2935 阅读 · 0 评论 -
uboot启动流程详解(1)-_start
(1)代码及注释.globl _start /*声明一个符号可被其它文件引用,相当于声明了一个全局变量,.globl与.global相同*/_start: b reset /* b是不带返回的跳转(bl是带返回的跳转),意思是无条件直接跳转到reset标号处执行程序*/ ldr pc, _undefined_instruction /*未定义指令异常向量,ldr的作用是,将符号_und原创 2016-11-12 16:12:01 · 1595 阅读 · 0 评论 -
uboot整体介绍
1、什么是uboot U-boot,全称Universal Boot Loader,是由DENX小组的开发的遵循GPL条款的开放源码项目,它的主要功能是完成硬件设备初始化、操作系统代码搬运,并提供一个控制台及一个指令集在操作系统运行前操控硬件设备。U-boot之所以这么通用,原因是他具有很多特点:开放源代码、支持多种嵌入式操作系统内核、支持多种处理器系列、较高的稳定性、高度灵活的功能设置、丰原创 2016-11-12 14:39:36 · 1029 阅读 · 0 评论 -
uboot启动流程详解(3)-cpu_init_cp15
1、代码及注释说明: 1、关于p15协处理及其指令的介绍请看《ARM协处理器介绍 》。 2、关于mmu的详细介绍请查看《 MMU内存管理单元介绍 》。 3、如果想要详细阅读以下代码,需要查阅arm的参考手册《ARM_Architecture_Reference_Manual_ARMv7-AR.pdf》。/***************************************原创 2016-11-15 20:16:19 · 2428 阅读 · 0 评论