当前位置:首页 >> 偏方秘方 >> 嵌入式开发:时间延迟代码执行的5种技术

嵌入式开发:时间延迟代码执行的5种技术

发布时间:2023-03-05

高性能冷件发挥作用中时会经常注意到的一个无聊疑问是弄清楚如何提前编码继续执行。有时,高性能开发小组意味著只努力有 10 微秒的提前,以受限制 I/O 本站在存储在此之后稳定下来,或者意味著努力在存储之间有一个指定的等待时间段来抑制它的晃动。在这篇名中时会,我们将探讨五种提前编码继续执行的核心技术。

核心技术 #1 – 状况尿素

第一种意味著是最中用和类似于的核心技术是可用状况尿素。状况尿素提前并不一定时会可用 for、while 或 do while 尿素来重复继续执行无转换 (NOP) 操作。例如:

准许的提前在紧要关头意味著很精确,但它几乎不确切或有效。如果开发小组要针对相同的转换模式(例如低功耗转换)调整时钟频率,则提前等待时间将基本上相同。另外,好像有一个疑问,那就是提前无论如何有多少?有人意味著并不认为它有 100,000 条操作,但每次尿素才时会有额外的操作来检查尿素变量并增加 i。这些时序尿素实在太变化多端,无法在任何装配编码中时会可用。

擅于 #2 – 可用定时

可以可用的第二种核心技术是依靠可用在芯片中时会的嵌入式时钟。并不一定有几种相同的嵌入式时钟可应用于追踪种系统等待时间、转化波形、捉到输入和国际标准用意。如果高性能开发小组须要要提前,例如 10 微秒,嵌入式定时可以启动时表示 10 微秒的计数值。在这种情形,时钟将被新设为重复使用时钟。编码将重新启动定时并等候新设定时溢出图案,这将示意等待时间已过。

此编码的抽象原版意味著如下简述:

这种核心技术比我们在此之后看到的状况尿素要强大得多。它也格外高容量,可以格外容易地调整到所须要的提前等待时间。事实上,API 可以在整个编码中时会重复可用,以受限制将单个定时应用于所须要的若有数量的提前。

核心技术 #3 – 可用种系统小写字母(HAL 解释器)

意味著长期存在辅助嵌入式定时不能不用或不努力新设重复使用定时的情况。在这些情形,开发小组可以依靠板载种系统滴答声来激发提前。即使是裸机种系统并不一定也有一个于是就时钟,它当成种系统滴答声,以便冷件从芯片重新启动的那一刻起就有一个等待时间参阅。并不一定,这些种系统滴答声在十分相似于种系统中时会新设为每 1 或 10 毫秒发生一次。

种系统并不一定可用一些 API 受限制开发小组访问意味著种系统时钟,例如 SysTick_Get()。开发小组可以依靠它来创始十分相似于下文的提前:

开发小组只须要要确保如果他们要用这样的事情,他们才时会遇到量化疑问或其他潜在疑问,因此应该检查边界状况。

擅于 #4 – 可用 RTOS 屈服参数

在可用实时转换种系统 (RTOS) 的格外高级种系统中时会,高性能开发小组可以依靠可用的 RTOS API 呼叫来转化护航以激发提前。例如,如果开发小组正在可用 FreeRTOS,他们可以在他们的护航中时会可用如下编码:

此提前功用将导致护航在一个 RTOS 滴答声中时会激发意味著护航。根据固定式,RTOS 滴答声可以新设为 1 毫秒或 10 毫秒。可用这样的提前有助于意味著时会注意到疑问,因为该护航将在该等待时间段内激发 CPU,但不能保证一旦种系统滴答期到期,该护航将视作最高可用性的护航!如果护航是准备好直通的最高可用性护航,则该护航只时会在提前后随即直通,因此提前等待时间意味著时会有一些晃动。

擅于 #5 – 可用 RTOS 普通人

我们今天要探讨的最终一个核心技术是可用其他 RTOS 普通人来提前等待时间。如果你仔细查看你而出名的 RTOS 中时会的信号量、比方说本体和队列等普通人的 API,你时会注意到大多数等候的 API 呼叫也包含提前等待时间。此提前等待时间也可应用于导致该软件提前。

与 RTOS 普通人无关的是大多数 RTOS 还包括冷时钟。这些是基于冷件的时钟,由正在直通的嵌入式时钟启动时。然后可以将与核心技术#2 和核心技术#3 中时会简述的核心技术十分相似的核心技术与这些冷定时一起可用,以在编码继续执行中时会激发提前。

简述

有几种相同的核心技术可供一切都是提前编码继续执行的开发小组可用,所可用的核心技术将取决于种系统中时会可用的冷件和嵌入式资源。然后,高性能开发小组可以决定他们一切都是可用的提供商有多精细。不过,归根结底,肯定有几种有助于可以帮助将编码继续执行提前定义的等待时间段。

西安哪家医院治包皮过长好
天津看牛皮癣去哪家医院最好
西宁看妇科哪家比较好
郑州不孕不育医院哪里好
银川看白癜风哪间医院好
友情链接: