当前位置: 首页 > news >正文

浦东新区网站优化公司制作网站的软件

浦东新区网站优化公司,制作网站的软件,小程序登陆官网,动叫建个网站刷排名文章目录 ARMv8 同步异常同步异常指令SMC TYPE 上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 ARMv8 同步异常 在ARMv8架构中,同步异常主要包括以下几种: Un…

文章目录

    • ARMv8 同步异常
      • 同步异常指令
      • SMC TYPE

上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习
下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令

ARMv8 同步异常

在ARMv8架构中,同步异常主要包括以下几种:

  • Undefined Instruction:未定义指令异常,当处理器尝试执行一条未定义的指令时会触发。

  • Supervisor Call (SVC):这是一种特殊的软件中断,通常用于实现系统调用。应用程序可以通过SVC指令请求操作系统提供服务。

  • Prefetch Abort:Prefetch Abort是由于指令预取出错造成的。例如,当处理器试图从一个不可访问的内存位置获取指令时,就会触发这个异常。

  • Data Abort:当处理器在数据访问过程中发生错误时,会触发Data Abort异常。例如,当试图读取或写入不可访问的内存位置时,或者执行的指令违反了内存保护策略时,就会触发这个异常。

  • SError:系统错误,是ARMv8架构中新引入的一种异常类型,用于报告系统范围内的错误,如 ECC 错误。

  • Breakpoint:当处理器遇到一个断点指令时(BRK),会触发这个异常。这通常用于调试目的。

  • Watchpoint:当处理器访问一个被设为监视点的内存地址时,会触发这个异常。这也主要用于调试目的。

以上这些异常都是同步异常,也就是说,它们是由当前执行的指令直接触发的。处理器会立即停止当前指令的执行,并跳转到对应的异常处理程序。

同步异常指令

Supervisor Call (SVC):如上文介绍。

Hypervisor Call (HVC):这是一种特殊的软件中断,用于从guest OS切换到hypervisor。

Secure Monitor Call (SMC):这是一个特殊的安全调用,用于进行安全状态间的切换,例如:在ARM TrustZone技术中,从非安全世界切换到安全世界,比如从EL1 切换到哦 EL3。

在 mtk 平台上函数 mt_secure_call 是进入EL3 的入口函数,它调用 smc 指令并通过x0~x3传入四个参数。其中x0中是多个位域的一个编码,根据它可以在ATF中注册的runtime serveice 找到对应的处理函数(具体细节请看ATF 专栏)。

static noinline int mt_secure_call(u64 function_id, u64 arg0, u64 arg1, u64 arg2)
{   register u64 reg0 __asm__("x0") = function_id;register u64 reg1 __asm__("x1") = arg0;register u64 reg2 __asm__("x2") = arg1;register u64 reg3 __asm__("x3") = arg2;int ret = 0;asm volatile ("smc    #0\n" : "+r" (reg0) :"r"(reg1), "r"(reg2), "r"(reg3));ret = (int)reg0;return ret;
}

GCC 的 noinline 属性可以阻止编译器对某个函数进行内联优化。内联函数是一种优化技术,可以减少函数调用的开销。编译器会将函数的定义直接插入到函数调用的地方,从而避免函数调用的开销。但是,这种优化也会增加程序的大小。

在某些情况下,我们可能不希望编译器对某个函数进行内联优化。例如,该函数可能很大,内联后会导致程序体积过大;或者该函数可能需要被其他模块动态调用,内联后就无法实现。这时,就可以使用noinline属性来阻止编译器对该函数进行内联优化。在GCC中,可以使用__attribute__((noinline))来为函数指定noinline属性,

SMC TYPE

ARM TrustZone技术定义了两种类型的SMC:SMC Type Fast和SMC Type Yield。

  • SMC Type Fast:Fast SMC调用在返回到调用者之前不会让出CPU。这种类型的SMC调用通常用于执行简短且确定的操作,例如读取或写入寄存器。由于Fast SMC调用不会让出CPU,因此它可以快速地完成,并且在返回结果时没有延迟。

  • SMC Type Yield:Yield SMC调用可能会在执行过程中让出CPU,允许其他任务运行。这种类型的SMC调用通常用于执行可能需要一些时间的操作,例如访问存储设备。当Yield SMC调用完成时,它会再次触发一个SMC来返回到调用者。

总的来说,这两种类型的SMC调用主要的区别在于是否会在执行过程中让出CPU。

上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习
下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令

http://www.hkea.cn/news/883580/

相关文章:

  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化
  • 问信息奥赛题怎么做 去哪个网站互联网网络推广
  • b2c电子商务网站系统下载专业网站seo推广
  • 引流推广的方法seo诊断工具
  • 平阴县建设工程网站直通车推广怎么做
  • 网站开发外包不给ftp高佣金app软件推广平台
  • 太原适合网站设计地址百度用户服务中心客服电话
  • 济南源码网站建设长沙网站seo推广公司
  • 北京网站制作17页和业务多一样的平台
  • 无锡市住房城乡建设委网站简单网页设计模板html
  • 武汉市大型的网站制作公司网站ip查询
  • 做仪表行业推广有哪些网站电商网站设计
  • 动静分离网站架构百度售后客服电话24小时
  • 做汽车配件生意的网站佛山seo关键词排名
  • 创意建站推荐百度做广告多少钱一天
  • 巴中网站建设公司百度seo怎么做网站内容优化
  • 查网站备案名称上海网络营销seo
  • 人是用什么做的视频网站网络营销方案设计毕业设计
  • 建设网站考虑因素关键词优化是怎么弄的
  • 陕西营销型网站建设推广普通话的内容简短
  • 做配电箱的专门网站百度指数属于行业趋势及人群
  • 学做网站的网站重庆seo整站优化报价
  • 保定网站设计概述seo推广软件排名
  • 查pv uv的网站网络营销推广服务
  • 怎样让客户做网站优化 保证排名
  • 企业营销型网站做的好网络营销的有哪些特点
  • 网站开发 合同兰州快速seo整站优化招商
  • 网站开发技术现状深圳网络营销推广培训