首页 > ARM嵌入式操作系统启动

ARM嵌入式操作系统启动

任何一个操作系统的启动都至少关注两个方面:1,程序运行栈的初始化。2,处理器外设的初始化。

在ARMv6以及以前的体系结构中,定义了七种模式分别为:管理模式(SVC),快速中断模式(FIQ),未定义模式(UND),终止模式(ABT),用户模式(USR)以及系统模式(SYS)。在这五种模式中,除了USR和SYS其他的都是异常模式。而,每一种异常模式都有属于自己的堆栈指针寄存器R13、返回地址寄存器R14以及模式备份寄存器SPSR。

那么怎么样进入异常模式呢?有两种方式可以进入异常模式,第一种就是当某种异常发生的时候,这是一种被动的模式切换方式。第二种就是,程序员主动的进行模式切换,这种方法是通过更改CPSR寄存器中的模式为来实现的。

再谈谈ARM体系结构中的堆栈结构和指针指向。在ARM体系结构中堆栈采用一种叫做满递减的方式来分布堆栈,满递减方式就是堆栈由高地址向低地址方向生长的,并且堆栈指针总是指向栈顶地址。

转载于:https://www.cnblogs.com/joseph-joe/archive/2012/03/14/2396572.html

更多相关:

  • 再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… awk模式,在之前的文章中简单使用了BEGIN和END。这里的模式,其实我们可以理解成是条件,awk是一行行处理数据的,如果满足某个条件awk就处理某一行数据,如果不满足就不处理,这就可以理解成模式。 意思就...

  • 一. vim的三种模式 在Linux操作系统下,我们一般会使用vim进行文本编辑,它相当于Windows下的记事本,但是它比记事本的功能强大的多。vim一般有三种模式分别是普通模式,编辑模式和命令模式。普通模式和编辑模式可以来回的切换,普通模式可以和命令模式来回的切换,但是编辑模式和命令模式不能来回的切换。 二. vim三种模...

  • 注意事项 1、U盘要是USB3.0的U盘,否则基本会失败 安装到最后的时候报一个 cd/dvd 设备 low speed的故障 2、bios 设置 硬盘模式 选择 AHCImode 模式, 否则刷机不成功 3、 U盘镜像的烧录方式, 实测windows 下的rufus工具有效...

  • linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下。 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System Settings/Displays/Resolution栏查看下拉列表。 控制台:在控制台输入命令:xrandr,即会输出当前已存...

  •   Bulk加载模式是Informatica提供的一种高性能数据加载模式,它利用数据库底层机制,依靠调用数据库本身提供的Utility来进行数据的加载  该方式将绕过数据库的log记录,以此提高数据库加载性能,因此Bulk模式不能进行数据的Rollback操作,也不可能使用数据库做Recover操作   因此当使用Bulk加载模式时...

  • 名称说明Add将两个值相加并将结果推送到计算堆栈上。Add_Ovf将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。Add_Ovf_Un将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。And计算两个值的按位“与”并将结果推送到计算堆栈上。Arglist返回指向当前方法的参数列表的非托管指针。Beq如果两个值相...

  • 一)概述  .堆栈是一个用户空间的内存区域,进程使用堆栈作为临时存储.  .堆栈中存放的是函数中的局部变量,在函数的生命周期中可以将变量压入堆栈,编译器需要确保堆栈指针在函数退出前恢复到初始位置,也就是说,内存是自动分配和释放的.  .C/C++把存储在堆栈中的局部变量当作automatic存储,并使用auto关键字,这是局部变量的...

  • 对ARM异常(Exceptions)的理解 1 .对 ARM 异常( Exceptions )的理解 所有的系统引导程序前面中会有一段类似的代码,如下: .globl _start                    ;系统复位位置 _start: b       reset            ;各...

  • org.apache.shiro.authc.pam.UnsupportedTokenException org.apache.shiro.authc.UnknownAccountExce...

  • 什么是异常处理 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 语法错误: 这种错误根本就过不了python解释器的语法检测,必须在程序执行前就改正逻辑错误:#TypeError:int类型不可迭代 for i in...

  • Ø  前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决。   1.   java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.la...

  • Python之路【第五篇】:面向对象及相关 Python之路【第五篇】:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇面向对象进阶篇其他相关 一、isinstance(obj, cls)  检查是否obj是否是类 cls 的对象 1 2 3 4 5 6 class Foo(o...