范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

DBGDMBDSB和ISB指令作用

  1、DBG、DMB、DSB 和 ISB指令介绍
  调试指令、数据内存屏障指令、数据同步屏障指令和指令同步屏障指令。语法 DBG{cond} {#option} DMB{cond} {option} DSB{cond} {option} ISB{cond} {option} cond : 是一个可选的条件代码(请参阅条件执行)。 option : 对提示操作的可选限制。 说明:如果指令未实现,则与 NOP 效果相同
  (1)、DBG : 调试提示可向调试系统及其相关系统发送提示。
  (2)、DMB :数据内存屏障可作为内存屏障使用。 它可确保会先检测到程序中位于 DMB 指令前的所有显式内存访问指令,然后再检测到程序中位于 DMB 指令后的显式内存访问指令。它不影响其他指令在处理器上的执行顺序option 的允许值为:SY, 完整的系统DMB 操作。 这是缺省情况,可以省略
  举个例子: 如下的操作,确保dmb之前的内存访问已经完成了,即数据读到了x1、x2、x3、x21,然后后面的inval_dcache_aera会使用这些参数。
  (3)、DSB : 数据同步屏障是一种特殊类型的内存屏障。 只有当此指令执行完毕后,才会执行程序中位于此指令后的指令。 当满足以下条件时,此指令才会完成:
  位于此指令前的所有显式内存访问均完成。
  位于此指令前的所有缓存、跳转预测和 TLB 维护操作全部完成
  允许的值为:SY : 完整的系统 DSB 操作。 这是缺省情况,可以省略。 UN : 只可完成于统一点的DSB 操作。 ST : 存储完成后才可执行的DSB 操作。 UNST : 只有当存储完成后才可执行的DSB 操作,并且只会完成于统一点
  (4)、ISB : 指令同步屏障可刷新处理器中的管道,因此可确保在 ISB 指令完成后,才从高速缓存或内存中提取位于该指令后的其他所有指令。这可确保提取时间晚于 ISB 指令的指令能够检测到 ISB 指令执行前就已经执行的上下文更改操作的执行效果,例如更改ASID 或已完成的 TLB 维护操作,跳转预测维护操作以及对 CP15 寄存器所做的所有更改。
  此外,ISB 指令可确保程序中位于其后的所有跳转指令总会被写入跳转预测逻辑,其写入上下文可确保 ISB 指令后的指令均可检测到这些跳转指令。这是指令流能够正确执行的前提条件。
  举个例子:如果上述代码中1和2处的之类,同时从icache中取的,那么2处位置sp的值感测不到1处对sp的修改。那么有了isb之类后,保证1处操作完成之后,再进行2处取指令,这样就不会乱了。
  ARMv8指令集提供了3条内存屏障指令。 数据存储屏障(Data Memory Barrier,DMB)指令: 仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的访问指令。DMB指令保证的是DMB指令之前的所有内存访问指令和DMB指令之后的所有内存访问指令的执行顺序。也就是说,DMB指令之后的内存访问指令不会被处理器重排到DMB指令的前面。DMB指令不会保证内存访问指令在内存屏障指令之前完成,它仅仅保证内存屏障指令前后的内存访问的执行顺序。DMB指令仅仅影响内存访问指令、数据高速缓存指令以及高速缓存管理指令等,并不会影响其他指令(例如算术运算指令等)的顺序。 数据同步屏障(Data Synchronization Barrier,DSB)指令: 比DMB指令要严格一些,仅当所有在它前面的内存访问指令都执行完毕后,才会执行在它后面的指令,即任何指令都要等待DSB指令前面的内存访问指令完成。位于此指令前的所有缓存(如分支预测和TLB维护)操作需要全部完成。 指令同步屏障(Instruction Synchronization Barrier,ISB)指令: 确保所有在ISB指令之后的指令都从指令高速缓存或内存中重新预取。它刷新流水线(flush pipeline)和预取缓冲区后才会从指令高速缓存或者内存中预取ISB指令之后的指令。ISB指令通常用来保证上下文切换(如ASID更改、TLB维护操作等)的效果。
  总结:乱序是处理器特性,和优不优化没太大关系。大部分mcu就2级,3级,并不支持乱序,所以你可以看到大部分mcu的这个操作是空操作,只是os为了移植性放的占位。乱序往往需要深度流水,当然这不是充分或必要关系。主要解决的是可见性问题。如果只有一个核,乱不乱,同不同步也没什么影响,反正数据或指令也就你一个人用。可加了多个核或者多个master比如dma的时候,其他的master看不到你的本地内容,往往就需要这个同步措施。@[TOC](__DSB() 指令的作用)
  在一些ARM程序代码中,会用到__DSB() 指令,特别是在一些中断处理函数中。例如:
  程序通过中断信号进入中断处理函数时,首先应当清除相应的中断标志位,但有些CPU的时钟太快,快于中断使用的时钟,就会出现清除中断标志的动作还未完成,CPU就又一次重新进入同一个中断处理函数,导致死循环,__DSB() 指令的作用就是避免上述情况的发生。
  —DSB()的原型是:__DSB() __ISB()命令
  等待指令和数据同步,例如*ocramAddr = 0xCCU;执行完成后,实际单片机可能还未完成执行,使用__DSB() __ISB()命令可以确保该行代码执行完成static void OCRAM_Access(void) {       uint32_t *ocramAddr = (uint32_t *)APP_FLEXRAM_OCRAM_START_ADDR;        /* enable FLEXRAM OCRAM access error interrupt*/       FLEXRAM_EnableInterruptSignal(APP_FLEXRAM, kFLEXRAM_OCRAMAccessError);        for (;;)         {               *ocramAddr = 0xCCU;               /* Synchronizes the execution stream with memory accesses */               APP_DSB();               APP_ISB();                /* check ocram access error event */               if (s_flexram_ocram_access_error_match)                 {                     s_flexram_ocram_access_error_match = false;                     PRINTF("r OCRAM access to 0x%x boundary.r ", ocramAddr);                     break;                 }                ocramAddr++;         } }
  程序通过中断信号进入中断处理函数时,首先应当清除相应的中断标志位,但有些CPU的时钟太快,快于中断使用的时钟,就会出现清除中断标志的动作还未完成,CPU就又一次重新进入同一个中断处理函数,导致死循环,__DSB() 指令的作用就是避免上述情况的发生。以下代码是NXP RT1021 单片机解决上述问题的代码:/*! @name ISR exit barrier * @{ * * ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping * exception return operation might vector to incorrect interrupt. * For Cortex-M7, if core speed much faster than peripheral register write speed, * the peripheral interrupt flags may be still set after exiting ISR, this results to * the same error similar with errata 83869. */ #if (defined __CORTEX_M) && ((__CORTEX_M == 4U) || (__CORTEX_M == 7U)) #define SDK_ISR_EXIT_BARRIER __DSB() #else #define SDK_ISR_EXIT_BARRIER #endif@[TOC](__DSB() 指令的作用)
  在一些ARM程序代码中,会用到__DSB() 指令,特别是在一些中断处理函数中。例如:
  程序通过中断信号进入中断处理函数时,首先应当清除相应的中断标志位,但有些CPU的时钟太快,快于中断使用的时钟,就会出现清除中断标志的动作还未完成,CPU就又一次重新进入同一个中断处理函数,导致死循环,__DSB() 指令的作用就是避免上述情况的发生。
  —DSB()的原型是:
  作为应用程序开发,我们一般不需要详细了解到这一步。按照官方要求做就好了。

我喜欢这山水间的昏黄,犹如暮色下的每次诀别,引导我们来日方长头条创作挑战赛旅游是一群人的事。一个人叫散心,三两人叫游玩,一群人才叫旅游度假。我不羡慕一群人的旅游度假欢乐温馨也不羡慕一个人的闲游散心无处寻欢。讨厌前者的闹,可怜后者的悲。独独羡环评启动!赖家桥的春天来了比预想中的进展要快得多,平时低调到几乎没有人太注意的赖家桥TOD综合开发项目正在悄然快速推进。11月7日,赖家桥TOD综合开发项目规划环境影响评价单位中标结果公布,意味着该项目规划中国年轻选手一个比一个狠,彭奕凇再绝杀,赵剑波击溃艾伦进正赛北京时间11月23日傍晚至24日早晨,2022世界斯诺克德国大师赛资格赛进行第三天争夺,中国军团战绩为5胜3负。赵剑波颜丙涛彭奕凇赢得第二轮顺利拿到前往柏林参加32强正赛的入场券,只有少数人活着,多数都是二手人生大家好,我是王俊俊今天是第2059天硬核不断更分享第一篇这个世界只有少数人在真正的活着,其他人都在消费商业创造出来的二手人生。稀缺。人穷就会被限制,被限制之后的正确手段是解绑或者说刷新历史纪录!中国女排迎来超级球星,比赛数据惊人,轰动排坛日前,20222023中国女排超级联赛正如火如荼进行。在朱婷张常宁缺席的情况下,中国女排新生代领军人物李盈莹,成为了外界目光锁定的焦点,这位世界女排顶级主攻手在今年联赛大杀四方,几2022世界杯日本已经战胜德国队,中国男足已经20年没进入世界杯中国男足已经1520年没进入过任何世界大赛,中国俱乐部的平均投入是日本J联赛的三倍多,是韩国k联赛的10倍。中国俱乐部一线球员的工资是日本J联赛的5。8倍,是韩国k联赛的11。67中国19岁小将爆冷!赵剑波50新科英锦赛冠军艾伦,替补晋级正赛11月23日,世界斯诺克巡回赛继续展开2023年德国大师赛资格赛的角逐,在当天进行的一场决胜轮较量中,中国年仅19岁的小将赵剑波,面对上周刚刚夺得英锦赛冠军的北爱尔兰名将马克艾伦时人生感悟我是一个喜欢安静的人,不爱说话,也不喜欢交往,喜欢享受孤独的内心的空间里,那种坦然,没有忧愁与烦恼,想做的事就去做,也不求谁喜欢我,也不去骚扰别人,在我认识的人里面,从来不打听人家董路谈传控足球日本人已幡然醒悟,不知中国传控爱好者怎么想?直播吧11月24日讯世界杯E组首轮,德国12日本爆出大冷门。对此,解说董路评论道德国全场26脚射门10次射正,让日本门将做出8次扑救。你不能说德国踢得一无是处,今年6月麒麟杯日本对荷兰抵制美国禁售令,欲出售EUV光刻机给中国美国呼吁禁止向中国出售更多芯片设备,荷兰抵制。美国彭博社22日以此为题报道称,荷兰外贸与发展合作大臣施赖纳马赫尔当天表示,在向中国出售芯片设备的问题上,荷兰将捍卫本国的经济利益。报日本足协野心遭曝光!制定2050计划,中国足协10年计划已失败11月24日,刚刚结束的1场世界杯比赛中,日本21比分逆转世界杯冠军德国,取得本场比赛的胜利,成为卡塔尔世界杯的第2个大冷门儿!另外一场比赛中,沙特同样以21的比分击败阿根廷,爆出
拒绝为什么这么难不行不好意思,帮不了你拒绝是在人际关系中常见的互动形式。在日常生活和工作中,面对别人的请求或期待,在需要作出拒绝的决定表达拒绝的态度采取拒绝的行动时,很多人会经历一番内心的挣扎明知隐入尘烟感想看完后直激灵魂深处,两个孤独的灵魂在人世间被自己所谓的亲人抛弃,强逼着捆绑在一起。人之初,性本善还是性本恶。同样的童年经历,为了给村子里的疯子吃馍馍而遭遇相同的待遇,在共同生活下的还在交智商税?这4个产后保养的骗局烧钱又无用,别上当每一位妈妈都是战士。熬过十月怀胎的艰辛,产后还要面对密密麻麻的妊娠纹,忍受腰酸骨盆疼痛,甚至打个喷嚏都会漏尿如果这时候看见商家推崇的骨盆修复卵巢保养根除妊娠纹和产后发汗排毒等项目,动不动就出汗的人,是体虚还是在排毒?或许还有人不清楚出汗是人体的一种正常生理现象,人体通过不断的排汗来调节人体体温,当不排汗时,就会出现高热发烫的状态,排汗越多,身体越是冰凉。有时因为天气炎热而出汗,有时因为大量运动而出汗,而有的人常言道老泄残精,人穷寿尽,是啥意思?年过50,把好三关更健康肾精不足是中医上的说法,一方面和先天体质孱弱,无法产生足够的精气有关,另一方面也和后天营养不足有关,如果后天又是多病多灾的情况,身体就会发虚,也就是大家经常听到一个词肾虚。是不是肾医院不愿开的13种中成药,质优价廉,建议收藏,以后用得着1。牙疼牙痛黄连上清丸。主要功效是清热解毒,用于因上火引起的火牙或者是发炎引起的牙髓炎牙龈炎。2湿气重湿疹除湿止痒洗液。主要成分有蛇床子苦参黄连黄柏等,功效为清热除湿祛风止痒。用于双手长红斑上面脱皮发痒手指发肿变形是什么病咋治好的快双手长红斑上面脱皮发痒手指发肿变形,这些症状多见于关节病型银屑病。关节型银屑病是银屑病类型之一,它又叫银屑病性关节炎,患者会发生与类风湿性关节炎同样的关节损害,可累及全身大小关节,你是肾阴虚还是肾阳虚?中医教你如何区分,送你两个方法如何分清自己到底是肾阴虚还是肾阳虚呢?大家好,我是中医崔大夫,在门诊和病房经常会碰到很多人说自己肾虚。结合我给病人的开方的经验,我就在想,现在肾虚的人为什么那么多呢?大家想一想,现颈椎病?教你这样做,不花钱,自己动手,颈椎疼痛一步一步断绝大家好,我是骨科大夫阎晓霞。随着科技生活的发展,电子产品的增多,不少人因为工作或玩乐,长时间低头,不仅仅损伤视力,更是颈椎病的主要诱发因素。同时现在步入秋季,天气渐冷,也到了颈椎病我的诗意生活,幸福而唯美,潇洒而浪漫诗人北岛说那时我们有梦,关于文学,关于爱情,关于穿越世界的旅行。如今我们深夜饮酒,杯子碰到一起,都是梦破碎的声音。青春时光,美丽而浪漫,诗意而唯美,每个人的青春,都是一首抒情诗,都爱吃甜的不能错过!这8道甜口菜肴夏天吃正好,一口下去幸福感爆棚这期食谱爱吃甜的人绝对不能错过!炎炎夏日里吃点甜的,调动食欲的同时也平缓了焦躁的心情。8道甜口菜肴做法推荐给您,没胃口时做一道尝尝!酸甜吮指虾食材活青虾葱番茄酱白醋油糖料酒步骤1活