为什么U-boot程序中要设置成svc模式?

ARM的7中工作模式

  • 用户模式(USR):正常程序执行模式,不能直接切换到其他模式。==是用户程序的运行模式。==因此想要访问硬件资源或者切换到其他模式只能通过中断。
  • 系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权。运行特权级的操作系统任务。
  • 管理模式(SVC):概括:1.系统复位、开机时自动进入该模式。2.当操作系统申请硬件资源时,由软件中断进入该模式。当有用户态进入内核态的时候系统也是处于这种模式。
  • 快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式
  • 中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式
  • 中止模式(ABT):用于支持虚拟内存管理或存储器保护,在ARM7TDMI没有大用处
  • 未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式。
特权模式

除用户模式外,其它模式均为特权模式(Privileged Modes)。ARM 内部寄存器 和一些 片内外设 在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。

异常模式

特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入。比如硬件产生中断信号进入中断异常模式,读取没有权限数据进入中止异常模式,执行未定义指令时进入未定义指令中止异常模式。其中管理模式也称为超级用户模式,是为操作系统提供软中断的特有模式,正是由于有了软中断,用户程序才可以通过系统调用切换到管理模式。

用户模式和系统模式

这二者共用一组寄存器。因此他们之间的切换不需要保存寄存器的值也就不需要SPSR寄存器。区分是,系统模式属于特权模式,可以访问所有系统资源。

结论

u-boot中,要执行开启时钟,初始化内存,关闭看门狗能硬件操作,显然需要处于可利用硬件的状态,因此设置为svc模式是正确的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值