博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设置SVC模式
阅读量:4285 次
发布时间:2019-05-27

本文共 278 字,大约阅读时间需要 1 分钟。

Linux系统和bootloader应该运行在svc模式(supervisor),这可以通过修改程序状态寄存器来设置。

ARM运行模式:

这里写图片描述

程序状态寄存器:其中M[4:0]用于设置运行模式。

这里写图片描述

汇编代码:

reset:    bl set_svcset_svc:    mrs r0, cpsr    bic r0, r0, #0x1f    orr r0, r0, #0xd3    msr cpsr, r0    mov pc, lr

即先对后五位清0,然后置1;orr r0, r0, #0xd3的作用不仅仅是修改运行模式,还屏蔽了IRQ中断和FIQ中断

你可能感兴趣的文章
linux前后台切换
查看>>
nmap
查看>>
uboot执行顺序main_loop
查看>>
uboot编译内容详解
查看>>
uboot Makefile 分析
查看>>
uboot网络验证
查看>>
烧写uboot
查看>>
QT安装
查看>>
QtCreator介绍
查看>>
QT工程实例
查看>>
pkg-config
查看>>
Linux内核分析-1/反汇编(堆栈)
查看>>
Linux内核分析-2/时间片轮转多道程序
查看>>
Linux内核分析-4/5/系统调用
查看>>
c/c++常见关键字
查看>>
C++内存地址分配和内存区划分简介
查看>>
C++数值交换
查看>>
指针数组、数组指针、函数指针、指针函数
查看>>
float,double在内存中的存储方式
查看>>
int main(int argc,char* argv[])详解
查看>>