Uboot的bad_save_user_regs】的更多相关文章

下面是一个宏定义,从名字“bad_save_user_regs”就可以猜测它是用来保存程序“出错”时用户态的寄存器的值. 从下面的“use bad_save_user_regs for abort/prefetch/undef/swi ...” 可以知道,这些“错误”是就是发生abort.prefetch.undef.swi异常时. 为什么我把“出错”.“错误”加上引号?因为这些“错误”,有时候是故意加入的, 就是为了触发异常处理程序,从而完成某些事情,比如:系统调用就是通过swi异常实现的.…
声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果您觉得有必要注释,希望指出.再次强调该贴的大部分功劳应该归功于那些原创者,由于粗心,我没有留意参考的出处.我的目的是想让大家共同进步.希望大家念在我微不足道的心意,能够积极回馈,以便使帖子更加完善.以后还会把整理的东西陆续公布出来,谢谢光临!! 大多数bootloader都分为stage1和stag…
1. u-boot介绍 本次移植采用的是U-Boot-1.2.0版本. 3. U-Boot源码分析 3.1 源码入口的解释 可能大多数的同学上网查资料后都了解到,stage1阶段的启动代码,主要就在start.s文件里.此start.s也是系统上电后执行的第一个代码.它全部由汇编编写.在讲述start.s之前,我们先来了解一下,系统怎么知道它要先去start.s里执行代码. 我们知道,每个可执行的映像Image,肯定会给编译器一个入口,而且是“有且只有一个全局的入口”.我们可以把这个入口放在fl…
/* * armboot - Startup Code for OMAP3530/ARM Cortex CPU-core * * Copyright (c) 2004 Texas Instruments <r-woodruff2@ti.com> * * Copyright (c) 2001 Marius Gröger <mag@sysgo.de> * Copyright (c) 2002 Alex Züpke <azu@sysgo.de> * Copyright (c)…
Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash controller v350... FoundSpi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00Spi(cs1): Block:64KB Chip:16MB Name:"W25Q128B"*** Warning - bad CRC, using defau…
一.概述   1.本文综述及特色  阅读uboot,start.S是第一个源程序文件,主要完成初始化看门狗.定时器.重定位(拷贝代码段到内存中).初始化堆栈.跳转到第二阶段等工作. 网上关于这些内容的解释已经非常详细了,但是很少有人设计start.S中有关异常处理的分析,即使有分析也是源码自带的英文注释,很难读懂.笔者在学习过程中尝试着分析这部分代码,虽有收获,但是仍有不解之处,希望有高手不吝赐教. 2.说明 笔者使用的uboot版本是1.1.6,为了说明方便,本分析只针对smdk2410开发板…
目录 uboot中的中断macro宏 引入 内存分配 流程概览 普通中断 保存现场 中断函数打印具体寄存器 恢复现场 软中断 空间获取 保存现场 附录速记 疑惑待解 title: uboot中的中断macro宏 date: 2019/2/26 09:37:12 toc: true --- uboot中的中断macro宏 引入 以前因为uboot的目的只是引导linux,没有去看关于中断相关的代码,这两天重新回顾看了下Uboot中start.S源码的指令级的详尽解析中关于uboot1.6的分析,看…
嵌入式Linux开发之uboot启动Linux整体流程分析 Uboot全称Universal Boot Loader,一个遵循GPL协议的的开源项目,其作用是引导操作系统,支持引导linux.VxWorks.Solaris等操作系统:其源码组织形式和linux源码很相似,编译也可参照linux源码编译,且包含许多linux源码中的驱动源码,所以uboot实际上可以算作一个微型的操作系统,可以做一些简单工作. 本文的分析对象是u-boot-2012.10版本,以下内容将根据此版本源码和特定的boa…
6.1 _start 入口函数 6.1.1 vectors.S (arch\arm\lib) 从上一节可以知道,uboot 的入口函数为 _start .此 函数定义在 vectors.S (arch\arm\lib) 中. 在此文件中,定义了异常向量表,及其操作函数._start 开始后,直接跳入  reset 复位中执行启动. /* 头文件包含,包含架构和配置相关的头文件,自动生成的 */ #include <config.h> /* * A macro to allow insertio…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qianlong4526888/article/details/27698707 注意:由于文档是去年写的,内有多个图片.上传图片非常麻烦(须要截图另存插入等等).我把文章的PDF版本号上传到了CSDN下载资源中.为了给自己赚点积分.所以标价2分,没有积分的同学能够直接留言跟我要,记得留下邮箱. 下面是文章内容,由于我懒得编辑图片了,所以文章看来会非常不爽,强烈推荐点击以上红色链接下载pdf版. 文…
uboot 详细注释讲解 声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果您觉得有必要注释,希望指出.再次强调该贴的大部分功劳应该归功于那些原创者,由于粗心,我没有留意参考的出处.我的目的是想让大家共同进步.希望大家念在我微不足道的心意,能够积极回馈,以便使帖子更加完善.以后还会把整理的东西陆续公布出来,谢谢光临!! 大多数bootloader都…
uboot执行"make smdk2410_config"之后就可以进行编译了,可以执行make命令进行编译, 因为整个输出太长,我仅仅列出部分最关键的输出(部分我不关心的内容直接用......代替): arm-linux-/arch/arm/cpu/u-boot.lds >u-boot.lds arm-linux-ld  -pie -T u-boot.lds -Bstatic -Ttext 0x0 $UNDEF_LST arch/arm/cpu/arm920t/start.o…
本文转载自:http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html 目录 正文之前 1. 本文内容 2. 本文目标 3. 代码来源 4. 阅读此文所要具有的前提知识 5. 声明 1. start.S详解 1.1. 设置CPU模式 1.1.1. globl 1.1.2. _start 1.1.3. ldr 1.1.4. .word 1.1.5. .ba…
原创: To_run_away 从零开始学linux 本节的开始之前,先看一下uboot的链接脚本. 一.链接脚本 /* * Copyright (c) 2004-2008 Texas Instruments * * (C) Copyright 2002 * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de> * * SPDX-License-Identifier:  GPL-2.0+ */ #include <confi…
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正…
uboot环境配置 通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核.这个配置主要是通过uboot内建的"set 变量名 变量值+save"设置环境变量的方式进行配置,下面是我采用的uboot的环境变量,下面是我用的环境变量设置: #pri #即printenv baudrate=115200 bootargs=root=/dev/nfs nfsroot=192.168.0.50:/n…
本次移植跟以往的不同之处是采用了spl来引导u-boot,参考了博客http://blog.csdn.net/fulinus/article/details/42738641 下载链接:http://pan.baidu.com/s/1bnlRKgn 使用方法: 1. 编译 make tq2440_defconfig make 2. 然后会在u-boot根目录下生成u-boot.bin,在spl目录下会生成u-boot-spl.bin,目前的分区是: u-boot-spl.bin (1M) u-b…
题外话: 最近一直在学习u-boot的源代码,从代码量到代码风格,都让我认识到什么才是真正的程序.以往我所学到的C语言知识和u-boot的源代码相比,实在不值一提.说到底,机器都是0和1控制的.感觉这很像我们中国<易经>里的一句话:"太极生两仪,两仪生四象."两仪指的就是阴阳.天地,对立而又相互依存的一切,它们生成了天地万物.简单的0和1就构成了我们现在所用的操作系统,各种软件.硬件也是由高低电平控制,0和1就是万物. 刚刚在读一本科幻小说,里面提到一种叫做"脑域…
Hi,大家好!我是CrazyCatJack,你们可以叫我CCJ或者疯猫.今天我给大家带来的是u-boot的源代码汇编段分析,以后还会给大家讲解后续的C代码,请持续关注哦^_^ 先简单说一下u-boot,在嵌入式开发中,u-boot起着至关重要的作用:读出嵌入式系统内核并启动内核.因此非常有必要对u-boot进行理解,了解其是如何启动内核的,这样我们才能随心所欲地初始化系统,无论基于什么架构,什么开发板,都能够轻松的去启动内核.这一点难道不是最有吸引力的吗? 如果大家有看到我的前一篇博客,就会对u…
第一次写技术博客,还有些兴奋呢.我是CrazyCatJack,大家可以叫我CCJ或者疯猫.我即将成为一名嵌入式Linux的驱动工程师,现在还是一枚大四狗,呼呼~大学期间做了一些项目和比赛,都是基于32位的MCU(例如STM32.Freescale K60),这些呢都是根据网上的视频,PDF自学的.现在想更进一步,学习一下嵌入式Linux.UCOS-II等嵌入式系统.因为给板子加系统是一个必然趋势,控制会越来越复杂,内容也越来越多的.有一个系统统筹管理是非常棒的选择.好了,废话少说,今天开始我的第…
简单介绍一下uboot的基本配置流程.和绝大多数源码编译安装一样,uboot在执行make之前需要执行make XXXconfig来配置相关信息,而且uboot本身是针对多种平台的bootloader,所以编译的过程也会有一点小麻烦,需要对它的源码结构有一点了解.移植uboot,大体上的流程是:配置uboot->编译->配置相关平台的启动程序->烧录 选平台&工具链 平台就是CPU的架构,即exynos4412的平台就是arm,所以ARCH=arm,交叉编译工具链我这里用的是ar…
make jCPU_NUM 以CPU_NUM数量同时进行编译CPU_NUM = 当前PC的处理器数量*处理器的核心数 从上电开始1.系统上电,执行固化在IROM中的代码,目的初始化基本的系统功能,已经加载BL1代码2.BL1代码继续进行初始化,初始化DRAM控制器(400000000-80000000可用)3.uboot.bin开始在0x43E00000 地址位置开始执行 common(uboot命令)556 U_BOOT_CMD( ) 这个宏函数 设置了当前命令执行以及需要执行函数 do_mo…
源码阅读方法1.源码目录结构2.配置(支持当前使用的硬件)3.编译(Makefile)4.启动流程 工具使用1.在同一文件查找 shitf+8 N n进行上下查找 2.在工程目录中 ctags uboot版本选择:2013 uboot 2010版本前 只能识别zImage 文件 uboot 2013 能够识别uImage文件 选用原则:1.适用于当前开发板2.资料问题 uboot目录结构平台相关arch(架构) board(板级结构) 平台无关common(uboot命令) disk(磁盘) d…
(环境如下:U-BOOT  S3C2440  LINUX) 记录自己的学习过程,如果分析有问题,请帮忙指正. 最近在研究U-BOOT的代码,其中的环境变量个人觉得用处非常大,所以重点学习和分析一下. U-BOOT的第一个执行的文件为start.S,可以从链接文件分析出来(u-boot.lds) 进入U-BOOT执行过程如下: 1.设置CPU进入SVC32模式(set the cpu to SVC32 mode) 2.关看门狗(turn off the watchdog ) 3.关中断(mask…
动机 设备启动时间往往是项目立项时的一项重要技术指标.快速的启动时间意味着设备宕机时间的缩短,系统的快速恢复,也能改善用户使用时的体验感受,是一项重要的市场竞争力. 准备 优化启动时间之前,我们首先要了解下我们设备的主要启动流程,如下图所述,设备启动流程主要包含:硬件.bootloader.操作系统和应用程序4个部分. 硬件部分包括: 电源.时钟.复位时序.存储介质以及其他系统启动时需要依赖的外设等: Bootloader(此处为UBoot)包括: CPU.cache.网卡.存储的复位解复位时序…
需求分析 在2014年以前,uboot没有一种类似于linux kernel的设备驱动模型,随着uboot支持的设备越来越多,其一直受到如下问题困扰: 设备初始化流程都独立实现,而且为了集成到系统,需要修改核心公共代码(如init_sequence) 很多子系统只允许一个驱动,比如无法同时支持USB2.0和USB3.0 子系统间的交互实现各异,开发难度大 没有个统一的设备视图(如linux的/sys) uboot driver model(U-Boot驱动模型,以下简写dm)的提出就是为了解决这…
******************************************day:2014/10/14**************************uboot*****************************************************1.为什么要有uboot?2.uboot是用来干嘛的?3.uboot是怎么工作的?4.uboot结束后的结果是怎么样的? 为了回答以上的问题,或许问题还不止这些,根据我个人的理解来谈谈,请观看者注意版权问题哈. 起初龙芯…
本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过.如果你对Linux和Android开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台缺少了某些库文件或者工具等原因造成的:建议初学者使用和迅为一致的平台. Uboot.Kernel以及Android等的编译环境看似复杂,其实只需要抓住以下四个要点. (1)Uboot.Ke…
Windows操作系统BIOS(设置) Windows系统 文件系统 驱动程序 应用程序 linux操作系统bootloader(引导系统) kernel(内核) 文件系统 驱动程序 应用程序 交叉编译:程序编译与执行不在同一台机器 交叉编译工具链:交叉编译需要使用的工具 gcc编译流程1.预处理 cpp test.c -o test.i2.编译 ./cc1 test.i (test.s /usr/lib/gcc/i686-linux-gnu/4.8)3.汇编 as test.s 4.链接 ld…
在我拿到开发板以后,uboot都是编译好的,但是我不知道它是如何生成uboot.bin文件的.经过一番摸索.我也会编译uboot了. #cd /home #mkdir study //创建工作目录 **首先把uboot的压缩包通过samba复制到linux中home下的study目录中. #tar xvf uboot.tar.bz2   /解压 #ls   //这时会发现ubootuboot目录 #cd uboot #ls   //查看解压后的文件 #vi Makefile 在vi中输入/210…