[国嵌笔记][033-034][设置svc模式]

[设置svc模式]

设置CPU为SVC模式

1.因为初始化系统需要有很高的权限,SVC模式具有该权限,所以首先要使系统工作在SVC(0b10011)模式

2.设置cprs为0xd3(0b11010011)表示设置处理器为svc模式,并且屏蔽irq和frq

/*
*名称:set_cpu_to_svc
*描述:设置CPU为SVC模式
*/
set_cpu_to_svc:
	mrs r0, cpsr
	bic r0, #0x1f
	orr r0, #0xd3   //F 1,I 1,M[4:0] 10110
	msr cpsr, r0
	mov pc, lr

[关闭看门狗]

关闭看门狗

1.watchdog是一个硬件模块,作用就是在系统死机时,帮助系统实现自动重启

2.watchdog在硬件上实现了计时器的功能,启动后,用户必须在计时结束之前重新开始计时,俗称喂狗。如果到了超时的时候没有重新开始计时,那么它就认为系统死机了,就自动重启系统

3.在datasheet的watchdog timer部分可以找到相关描述

4.通过WTCON(0x530000000)寄存器的[0]和[2]位可以关闭看门狗

/*
*名称:disable_watchdog
*描述:关闭看门狗
*/
disable_watchdog:
	ldr r0, =WTCON
	mov r1, #0x0
	str r1, [r0]   //设置WTCON为0x0
	mov pc, lr
时间: 2024-10-22 00:48:11

[国嵌笔记][033-034][设置svc模式]的相关文章

[国嵌笔记][021-022][ARM处理器工作模式]

[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通

[国嵌笔记][008-009][远程登录Linux]

[国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面)协议远程登录 4.通过VNC(图形界面)协议远程登录 1.安装tigervnc.rpm 2.启动vnc服务:vncserver & [国嵌笔记][009][Windows与Linux文件互享] 1.windows与linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/ipt

[国嵌笔记][035][关闭中断]

关闭中断 1.设置cpsr中的I位和F位为1,屏蔽中断和快速中断.在设置svc模式时已经设置了这两位 2.设置中断屏蔽寄存器,屏蔽中断 3.产生的中断会被保存在SRCPND中,通过MASK(屏蔽中断寄存器)决定是否被CPU感知.如果关闭MASK,则产生的中断不会被CPU感知,可以中datasheet中的INTERRUPT CONTROLLER找到相关描述 4.屏蔽中断寄存器INTMSK(0x4A000008),中有32位,每一位对应一个中断,设置相应位为1表示屏蔽该中断.在这里需要设置该中断为全

6、异常向量表的学习---设置SVC模式

这是手册的资料,我们看到,要设置svc模式,就是要把我们的cpsr的后五位设置为0b10011即可.Cpsr的结构: 接下来,我们就来把cpsr的后五位设置为0b10011. 设置的思路: 首先把这五位清零(bic指令),使用orr往这五位写入0b10011.当然,这些操作的实现必须借助mrs和msr两个指令来完成(cpsr和spsr不能直接访问). 操作如下: 看运行的结果,设置成功. ? 看门狗实现 看门狗的结构图: 6410的看门狗的资料: 我们通过上面的看门狗的控制寄存器的设置就可以关闭

[国嵌笔记][030][U-Boot工作流程分析]

uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件.uboot的链接都是由这个链接器脚本来控制的 3.打开u-boot.lds文件,找到.text(代码段)的第一个文件cup/s3c24xx/start.o,该文件就是uboot的入口代码.链接器脚本中的ENTRY用来表明整个程序的入口,那么标号_start就是整个

u-boot分析(四)---设置异常向量表|设置SVC模式

u-boot分析(四) 通过前三篇的分析,我们对u-boot已经有了整体的认识和掌握,但是我们仍然对于其部分硬件是如何初始化的不太清楚,所以接下来几篇博文我将会对我们在http://www.cnblogs.com/wrjvszq/archive/2015/01/10/4215627.html一文中总结出的u-boot的工作流程中的重要环节,结合文档加以分析. 今天我们会用到的文档: 1.        ARM Architecture Reference Manual:http://downlo

设置SVC模式

清0:bic 置1:orr 访问cpsr和spdr要用到mrs和msr指令 mrs是把状态寄存器的值赋给通用寄存器 msr是把通用寄存器的值赋给状态寄存器 1 .text 2 .global _start 3 _start: 4 b reset 5 ldr pc, _undefined_instruction 6 ldr pc, _software_interrupt 7 ldr pc, _prefetch_abort 8 ldr pc, _data_abort 9 ldr pc, _not_u

[国嵌笔记][007][Linux网络配置]

Vmware网络设置 1.bridged(桥接模式) 如果网络中能提供多个IP地址,则使用桥接方式.虚拟机与主机的IP地址彼此独立. 2.NAT(网络地址转换模式) 如果只能提供一个IP地址,则使用NAT模式.但外部计算机不能访问虚拟机. 3.host-noly(主机模式) 如果主机没有连接外部网络,则使用主机模式.使虚拟机与主机相互通信. Linux网络设置 1.ifconfig 查看网卡 2./etc/init.d/network restart 重启网卡 3.service Network

[国嵌笔记][032][异常向量表]

异常定义: 因为内部或外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件 异常类型: 1.reset 0x00000000 2.undefine instructions 0x00000004 3.software interrupt(swi) 0x00000008 4.prefetch bort(instruction fetch memory abort)   0x0000000C 5.data abort(data access memory abort) 0x0000