[思考]-32位的应用程序为什么不能跑64位的应用程序
在ARM文档中,可以找到如下两句话:
- When the processor moves from a higher to a lower Exception level, the Execution state can stay the same, or it can switch from AArch64 to AArch32.
- When moving from a lower to a higher Exception level, the Execution state can stay the same or switch from AArch32 to AArch64
翻译之后就是: - 如果从高的异常级别切换到低的异常级别,执行状态可以保持不变,也可以从aarch64切换到aarch32;
例如从linux kernel切换到app,如果linux kernel是aarch64,那么app可以是aarch64或aarch32,如果linux kernel是aarch32,那么app只能是aarch32; - 如果从低的异常级别切换到高的异常级别,执行状态可以保持不变,也可以从aarch32切换到aarch64;
例如从app切换到linux kernel,如果app是aarch64,那么linux kernel可以是aarch64或aarch32,如果app是aarch32,那么linux kernel可以是aarch64或aarch32;
其实也可以这样总结:高的异常级别的执行状态,一定要大于等于低的异常级别的执行状态; 即EL1的执行状态要大于等于EL0的执行状态…
那么ARM为什么会有这种设计或约束呢?
我们以linux kernel和app(EL1 <—> EL0)为例来看:
如果linux kernel是aarch64的,那么在linux kernel启动和运行时修改的ARM系统寄存器(如SCTLR\TTBLRx等),都是以aarch64修改的,这些寄存器的修改当然也会map到aarch32上。
在系统切换app之后,linux kernel中修改的这些寄存器的属性对aarch32/aarch64依然都生效。 故如果EL1是aarch64,那么EL0可以是aarch64或aarch32;
如果linux kernel是aarch32的,那么在linux kernel启动和运行时修改的ARM系统寄存器(如SCTLR\TTBLRx等),都是以aarch32修改的,这些寄存器的修改不会map到aarch64上。
在系统切换app之后,linux kernel中修改的这些寄存器的属性仅对aarch32生效。 故如果EL1是aarch32,那么EL0只能是aarch32;
[思考]-32位的应用程序为什么不能跑64位的应用程序相关推荐
- 支持64位的打印服务器,使用环境打印服务器是32位,添加共享的计算机是64位
使用环境打印服务器是32位,添加共享的计算机是64位. 添加网络打印机 Win +R 输入\\10.199.4.x 进去直接打开或者连接,然后设置为默认打印机.或者从网络共享上查找也可以. (1) 不 ...
- java double long 取值_由一道题引起的思考? java中 long 和double都是64位。为什么double表示的范围大那么多呢?...
由一道题引起的思考? java中 long 和double都是64位.为什么double表示的范围大那么多呢? 百度标准答案是这样子的: double是n*2^m(n乘以2的m次方)这种形式存储的,只 ...
- 64位树莓派运行linux,树莓派3B+安装64位debian GUN/Linux系统
经过前段时间的努力,已经成功的将debian的ARM64版本跑在了树莓派3B+上.独乐乐不如众乐乐,所以将自己努力的成果分享,并详细介绍安装教程,希望能为树莓派爱好者做出些许贡献. 我已经制作好了镜像 ...
- 计算机无法安装64位操作系统,怎么看电脑能不能装64位系统|什么样的电脑可以装64位系统...
电脑什么硬件配置可以装64位系统?操作系统对硬件都有一定的要求,尤其是win7 64位系统,对电脑配置要求比较高.如果要安装64位系统,需要查看电脑硬件是否符合装64位系统要求,那么要怎么查看电脑能不 ...
- 现在计算机有64位吗,任何电脑都可以装64位系统吗|是不是所有的电脑都可以装64位系统...
电脑都可以装64位系统吗?相信大家都看到,现在新买的电脑都是自带64位系统,这时候就有部分用户产生了疑惑,是不是所有电脑都能装64位系统?其实不然!操作系统分32位和64位,就说明了有些电脑不能装64 ...
- 键盘与显示实验程序c语言,16位微机原理,32位微机原理接口教学实验系统,64位微机原理接口实训...
TW-X38 16.32位微机原理与接口教学实验系统 一.硬件概述 TW-X38现代32位微机原理与接口技术教学实验系统的升级换代产品,采用Intel i386EX嵌入式微处理器作为系统核心,全面支持 ...
- 把32位的SharePoint服务器场迁移到64位, 应该怎么做?
总体步骤如下: 1. 迁移已经存在了的数据库服务器到新的数据库服务器. 先迁移这一层的目的是避免可能发生的一些由64位系统对32位系统执行查询或写入操作所引起的性能问题. 2. 迁移WFE服务器到64 ...
- linux 32库路径,linux – 共享库如何在64位/ 32位混合系统中工作?
将32位和64位目录添加到LD_LIBRARY_PATH. 如果这样做,那么32位或64位的ld.so将使用正确的库. 例如一个32位测试应用程序"test32"和64位测试应用程 ...
- 计算机二级安装64位的还是,判断电脑适合装64位还是32位系统需要cpu支持,很多人都搞错了!...
昨天把系统又重装了一下,猛然发现,我的电脑可以装64位操作系统,而我一直用的是32位操作系统,因为几年前,64位操作系统缺乏驱动,市面上的软件在32位(X86)操作系统兼容性好,而这几年,硬件配置的提 ...
最新文章
- pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
- iOS - OC 与 C 互相操作
- 判断字符串出现次数最多的字符 及 次数
- mysql数据库中的int类型_MySQL中int(M)和tinyint(M)数值类型中M值的意义
- C#.Net工作笔记009---c#中Yield Return语法的作用和好处
- SliderBar4.0常用滑块滚动效果封装
- java基础总结01-简介
- A[1083]List Grade 水题
- hightopo学习之旅一 -- 节点动画
- Intent跳转地图应用(百度地图、高德地图)
- SD卡windows无法格式化
- java调用本地打印机,绘制打印模板,小票模板
- Android SystemUI下拉状态栏添加快捷开关
- CodeWarrior for S12(X) V5.1 Special详细安装过程
- 华为java一个月写多少行代码_[财经]阿里员工吐槽华为:面试官1万行代码都没写过? - 南方财富网...
- 音乐格式怎么转换,音频格式转换的方法
- 【Vue3 | 实现精美待办】01.项目启航
- 【例题 7-11 UVA - 12325】Zombie's Treasure Chest
- uniapp Modal自定义弹窗
- 开源AI项目-老照片修复之 Bringing Old Photos Back to Life