
供参考吧,另外研究这个干什么?不要太深究了吧,ARM管脚兼容的Cortex M3/ M4都已经不再使用这7种模式了。是否说明这种设定不是那么合适呢?
ARM处理器工作模式一共有 7 种 :
USR 模式
正常用户模式,程序正常执行模式
FIQ模式(Fast Interrupt Request)
处理快速中断,支持高速数据传送或通道处理
IRQ模式
处理普通中断
SVC模式(Supervisor)
*** 作系统保护模式,处理软件中断swi reset
ABT 中止(Abort mode){数据、指令}
处理存储器故障、实现虚拟存储器和存储器保护
UND 未定义(Undefined)
处理未定义的指令陷阱,支持硬件协处理器的软件仿真
SYS 系统模式(基本上=USR)(System)
运行特权 *** 作系统任务
用户模式和特权模式
除了用户模式之外的其他6种处理器模式称为特权模式
特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
特权模式中,除系统模式外,其他5种模式又称为异常模式。
大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受 *** 作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。
用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理中进行处理器模式的切换。
简单来说就是交叉编译你的应用程序,然后下载到你的板子里面运行它。
更具体一点来说可以分为以下几步:
1、首先确定你的arm Linux有没有这些IO的驱动,如果还没有的话,那么你要写这些IO的驱动;如果已经有了,那么它们的控制就叫给你自己的应用程序了。
2、编写应用程序(open,ioctl等等),并交叉编译它们(何谓“交叉编译”?搜索一下)。
3、把交叉编译出来的可执行程序下载到你的板子(如果你采用了NFS的开发方式的话,这步可以省略了),执行之!
希望可以帮助到你,祝你好运!
你好!
仿真通过不代表你的程序下载到板子上就能正常运行,你仿真的时候设置的ARM-link中的RO和RW设置与下载到板子上的设置是不一样的。你仿真知识在ram中运行,下载到板子上的是先从flash运行。
打字不易,采纳哦!
以上就是关于arm里7种工作方式,分别在是在什么状态下用的全部的内容,包括:arm里7种工作方式,分别在是在什么状态下用的、如何才能让自己的应用程序在arm Linux 平台下运行(实现控制IO之类的)、【急问】下载到arm上的程序如何运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)