<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Positional Paper: A Clock-Distribution Abstraction for Resource-Constrained Real-Time Systems in Zephyr</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Eva Dengler</string-name>
          <email>dengler+zise25@cs.fau.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tobias Häberlein</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Phillip Rafeck</string-name>
          <email>rafeck+zise25@cs.fau.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Wägemann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Friedrich-Alexander-Universität Erlangen-Nürnberg</institution>
          ,
          <addr-line>Martensstr. 1, 91058 Erlangen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2026</year>
      </pub-date>
      <abstract>
        <p>Energy-constrained real-time systems are subject to multiple constraints during their execution: On the one side, applications come with tasks that require real-time guarantees. On the other hand, the available energy is constrained through a limited power supply. These constraints require a careful handling of resources and resource savings are especially beneficial. The key components for energy savings, for example, are the clock subsystems on modern embedded platforms. These subsystems are intertwined with all components on Systemon-Chip devices and regulate both energy consumption and temporal behavior. As Zephyr is already aware of the clock components via its device tree, we want to bring attention to the availability and usability of a clock-subsystem abstraction and discuss possible goals in the near future.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Embedded Systems</kwd>
        <kwd>Time/Energy Tradeof</kwd>
        <kwd>Device-Aware Optimization</kwd>
        <kwd>Clock Distribution Network</kwd>
        <kwd>EnergyAware Real-Time Scheduling</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <sec id="sec-1-1">
        <title>1.1. Embedded Real-Time Systems and their Challenges</title>
        <p>The rise of IoT and intermittent systems has led to a significant increase in the use of embedded devices.
Their applications, ranging from automotive systems to medical devices, often have specific timing and
energy constraints, which are fundamental to many safety-critical domains. Therefore, it is crucial that
the developers of these systems take care to comply with those constraints:</p>
        <p>
          Timing Constraints To ensure guarantees regarding their timely execution, real-time tasks must
be finished within predefined deadlines. Therefore, it is necessary to know an upper bound for the
worst-case execution time (WCET) of each task, which denotes the most extended timespan a task needs
for its execution on a given hardware platform for any given input and adverse hardware states (e.g.,
cache misses). Determining accurate WCET bounds is a problem that has been the focus of extensive
research [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Note that the WCET heavily depends on the underlying hardware platform.
        </p>
        <sec id="sec-1-1-1">
          <title>Time : En.Eff.</title>
          <p>Phase-Locked
Loop (PLL)
9
Low-Speed
Osc. (RC)</p>
          <p>8
Mid-Speed
Oscillator
/N Divider
r
e
x
e
l
p
i
t
l
u
M
1
:
2
/N Divider
Power
Gate
End-Device
Requirement
CPU Ô</p>
        </sec>
        <sec id="sec-1-1-2">
          <title>Transceiver Û</title>
        </sec>
        <sec id="sec-1-1-3">
          <title>Sensor O</title>
          <p>
            Energy Constraints Another consideration is energy, as the embedded nature of IoT devices often
imposes dificulties concerning their energy storage and, therefore, energy consumption. Many of these
systems are either battery-operated or harvest energy from their surroundings [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. Therefore, they rely
on certain guarantees regarding their energy consumption in order to operate for a specified period of
time. In this context, the notion of worst-case energy consumption (WCEC) has been introduced as a
parallel to WCET, and has become an important subject of ongoing research [
            <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7">4, 5, 6, 7</xref>
            ].
          </p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>1.2. Clock Subsystems</title>
        <p>
          One of the critical challenges in embedded real-time systems is managing the tradeof between energy
consumption and computing time. This balance is primarily controlled through complex clock
subsystems known as clock distribution networks or clock trees, which serve the essential function of delivering
clock signals to all components within the system. An example clock distribution network is shown
in Fig. 1. It is composed of several types of nodes, each serving a distinct role:
• Input nodes: The inputs provide the network with various clock sources, each ofering a diferent
set of properties. For real-time systems, the frequency of the clock source is a crucial factor as it
impacts the device’s timing behavior and power consumption. Additionally, the precision and
stability of the clock source may play a significant role for some output devices.
• Output nodes: These nodes typically correspond to processing units, sensors, or actuators.
Examples are the central processing unit, speed or temperature sensors, and motors or LEDs. Each of
these devices may have diferent requirements regarding its input clock signal. These include the
frequency, as well as the accuracy and stability of the input clock signal. For instance, the radio
on an ESP32-C3 only works with the phase-locked loop (PLL) clock source [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
• Gates: Gates act as switches within the clock distribution network, controlling whether the clock
signal is propagated to downstream components. By selectively turning of parts of the network,
gates enable substantial reductions in the system’s overall energy consumption. Developers must
ensure that they only power-of devices that are not needed during a specific code section.
• Multiplexers: Multiplexers act as a selector between multiple diferent input signals. They route
one of the available input signals to the output. This enables a flexible frequency adaption and
selection, depending on the requirements of the connected components.
• Scalers: Scalers adjust the frequency of the clock signal using configurable multipliers or dividers,
allowing for diferent frequencies at the output nodes.
        </p>
        <p>With these components, the clock distribution network can be configured not only to meet timing
objectives but also to improve the system’s energy eficiency simultaneously. However, a key factor
when interacting with the clock distribution network is the overhead associated with clock-configuration
changes. These reconfiguration penalties influence both the timing and energy behavior and include both
software- and hardware-related costs, e.g., for initializing or reconfiguring hardware. The significance
of the reconfiguration costs becomes evident when the transition costs outweigh the potential energy
savings. For instance, although using a low-power sleep mode is generally the most energy-eficient
option during idle periods, the transition overhead associated with entering and exiting the sleep mode
can result in a higher overall energy consumption.</p>
        <p>When reconfiguring the system, additional reconfiguration penalties may arise. These penalties can
be hardware-related or result from necessary software initialization or device configurations. In both
cases, the time and energy needed for these reconfigurations is non-negotiable and may render an
otherwise optimal configuration unprofitable in terms of overall energy savings. Therefore, although
dynamically adjusting the clock subsystem between tasks can ofer significant benefits, the impact of
reconfiguration overheads should be considered to ensure that such adjustments truly improve the
overall eficiency.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Previous Work on Clock Subsystems</title>
      <p>As discussed in Section 1.1, the primary component controlling the energy consumption and timing
behavior of modern embedded devices is the clock distribution network. There exist multiple approaches
to improve diferent aspects of operation for this topic, which we will discuss in this chapter.</p>
      <sec id="sec-2-1">
        <title>2.1. Detecting Possible Clock-Subsystem Configurations</title>
        <p>
          Before the clock distribution network can be utilized, the possible configuration space must be explored
and evaluated. This process involves identifying all possible configuration parameters within the
system, which requires studying the hardware along with its available clock sources. In practice,
implementing clock reconfigurations in software typically requires modifying specific system registers
or memory-mapped bit fields. Once the configuration parameters are understood, the next step is to
establish which settings within the clock distribution network are both possible and valid. To utilize
the potential energy savings, the energy consumption behavior of each clock configuration as well
as its reconfiguration penalties must be known. These parameters can be determined either through
manual measurements or by exploration during an initial setup phase. One example of such an online
setup phase is ScaleClock [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]: Initially, ScaleClock determines the system’s characteristics through an
online performance utilization assessment directly on the device itself. The key insight is to compare
the relative execution times of a task at diferent frequencies: If the execution time of a task decreases
proportionally with an increase in frequency, it benefits from higher-frequency clock configurations.
Otherwise, the task does not scale well with faster frequencies and therefore performs more
energyeficiently at a lower frequency. Through this process, ScaleClock can identify the characteristics of
diferent clock configurations without requiring extensive manual interaction.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Integration into the Kernel</title>
        <p>
          To implement optimal configurations, the operating system must not only be aware of all available
configurations but also actively apply them. In the case of ScaleClock, the insights gained during the
initialization phase are employed at runtime within the RIOT operating system: For each task, the
system determines its most eficient clock configuration in terms of energy consumption based on the
derived performance metrics. The operating system then applies this configuration before the task is
dispatched. A diferent approach called Power Clocks [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] is integrated into the Tock operating system.
Power Clocks does not act upon predetermined performance metrics of a task but instead makes use
of the basic observation that, generally, slower clocks are more energy eficient for I/O operations.
In comparison, faster clocks are more eficient for computational tasks. To prevent misbehavior due
to incorrect configurations, the system tracks potential peripheral-specific constraints. The so-called
ClockManager then selects the most energy-eficient clock configuration in accordance with the current
clock constraints. Both ScaleClock and Power Clocks enable dynamic clock management without
requiring additional user intervention.
CC1
→3CµJC4
CC1
→8CµJC5
CC3
→ CC1
12µJ
...
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Real-Time Observations for Clock Subsystems</title>
        <p>
          A key challenge in real-time systems is ensuring that real-time guarantees are met. Although strategies
exist for scheduling task execution, integrating these strategies with dynamic clock reconfiguration to
lower energy consumption is a relatively recent development. Our group has introduced two approaches
– FusionClock [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and Crêpe [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] – that aim to minimize energy consumption in embedded systems
while still providing real-time guarantees. The idea of both approaches is visualized in Fig. 2: By
evaluating the possible configuration options of a task based on its device requirements, a graph is
constructed where each node corresponds to a possible configuration of a task. These nodes are then
connected by adding edges that represent the reconfiguration costs incurred when switching from one
configuration to another, efectively modeling a mininimum-cost flow problem. A mathematical solver
is used to solve the resulting optimization problem with additional constraints regarding execution
time, and it returns the best possible (re-)configuration strategy. This results in an energy-optimized
system, which still provides real-time guarantees.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. An IoT-Ready Clock-Subsystem Architecture for Zephyr</title>
      <p>As an operating system supporting IoT devices, Zephyr should aim to cater to IoT-specific system
characteristics of the target domain. The operation of IoT systems is often subject to resource constraints:
Timing constraints require real-time–aware operation, energy constraints necessitate eficient and
energy-aware operations. To make the operating system ready to support the management of such
constrained applications, the modeling of power domains and sleep states should be considered together
with the clock tree configuration. Clocks play a central role as specialized devices that power the
processor and peripheral devices. The following sections provide a detailed examination of the current
state of clock modeling in Zephyr (Section 3.1) and propose three goals (Sections 3.2, 3.3, 3.4).</p>
      <sec id="sec-3-1">
        <title>3.1. Excerpts of Zephyr’s Status Quo</title>
        <p>
          As of now, Zephyr enables the expression of a myriad of features, relations, and requirements regarding
clock configurations through device-tree specifications. Zephyr allows specifying available power states
for the platform and groups them into predefined categories covering diferent sleep states [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. With
the properties min-residency-us and exit-latency-us, reconfiguration penalties for transitioning
between diferent power states can be provided. Additionally, the property disabling-power-states
enables a device to express the power states in which the device is powered of in the device tree [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
In general, device trees allow devices to specify their requirements on clock sources [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Vendor and
Listing 1: Excerpt of the ESP32-C3 device tree showing the use of the power-states property [18].
power-states {
light_sleep: light_sleep {
compatible = "zephyr,power-state";
power-state-name = "standby";
min-residency-us = &lt;200&gt;;
exit-latency-us = &lt;60&gt;;
};
deep_sleep: deep_sleep {
compatible = "zephyr,power-state";
power-state-name = "soft-off";
min-residency-us = &lt;660&gt;;
exit-latency-us = &lt;105&gt;;
};
        </p>
        <p>Listing 2: Excerpt of the device tree for the ESP32-C3 showing the processor clock description [18].
cpus {
};
}
};
};
cpu-power-states = &lt;&amp;light_sleep &amp;deep_sleep&gt;;
clock-source = &lt;ESP32_CPU_CLK_SRC_PLL&gt;;
clock-frequency = &lt;DT_FREQ_M(160)&gt;;
xtal-freq = &lt;DT_FREQ_M(40)&gt;;</p>
        <p>Listing 3: Excerpt of the device tree for the ESP32-C3 showing the clock specification [18].
clock: clock {
compatible = "espressif,esp32-clock";
fast-clk-src = &lt;ESP32_RTC_FAST_CLK_SRC_RC_FAST&gt;;
slow-clk-src = &lt;ESP32_RTC_SLOW_CLK_SRC_RC_SLOW&gt;;
#clock-cells = &lt;1&gt;;
device-specific device-tree schemes provide further custom clock information. A schema for Espressif
RISC-V CPUs [16], for example, requires specifying available processor clock sources and frequencies.
Platforms compatible with the ESP32 family must further provide the properties fast-clk-src and
slow-clk-src as specific clock sources [17].</p>
        <p>We illustrate the current state with the example of the device tree for the ESP32-C3 [18]. Listing 1
shows the definition of power states, including their reconfiguration penalties. Listing 2 shows the part
of the CPU description that features information about the processor clocks while Listing 3 shows an
excerpt of additional clock configuration. A header file ultimately provides macro definitions for the
clock sources and supported frequencies [19].</p>
        <p>In summary, Zephyr’s support for device trees already provides access to much of the information
about the clock subsystem required for optimizations, as depicted in Fig. 2. The status quo provides
a foundation for a fine-granular modeling of clock trees and the resulting optimization potential to
achieve minimal resource consumption.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Goal 1: Fine-Granular Clock-Tree Modeling</title>
        <p>An existing RFC proposes an architecture for a precision clock subsystem in Zephyr, catering to the
diverse clocks found in embedded platforms [20]. Among other points, the RFC emphasizes the need
for a modular system that supports multiple clock domains and highlights the importance of low-power
optimizations in the target domain. The RFC correctly states that optimizations for resource usage in
constrained devices require operating-system support for switching between clock sources and clock
domains to utilize the configurability of the clock tree fully. We further believe that minimizing resource
usage is only possible with a fine-granular modeling of the resource demands of possible clock-tree
configurations and transitions between configurations.</p>
        <p>While the status quo of clock-tree modeling provides a solid and valuable foundation, we argue that
a greater level of detail regarding clock-subsystem information is beneficial. That begins with enriching
the clock model with explicit information about the efects on power consumption both when the clock
configuration is active and for transitions between clock configurations.</p>
        <p>
          Approaches like FusionClock [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and Crêpe [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] provide a holistic state enumeration for applications
to derive optimal, application-tailored clock configurations. Their underlying clock-tree models, for
example, not only subsume the global worst-case for reconfiguration penalties, but also consider
context-specific penalties for all possible transitions between clock domains. This knowledge enables
the determination of optimal clock configurations for all phases of entire applications.
        </p>
        <p>Ultimately, fine-granular clock-tree specifications in the device trees are not an end in themselves but
enable the reconstruction of the clock tree into a resource-consumption–aware model. Such a powerful
model paves the way towards resource monitoring and optimizing the system’s resource demand.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Goal 2: Clock-Tree–Aware Resource Management</title>
        <p>The resource-constrained characteristics of IoT devices necessiate a deliberate approach to resource
management and strict monitoring of resource budgets. Fine-grained clock-tree models enriched with
resource-consumption data enable Zephyr to be an operating system that helps applications manage
their resource demand and operate eficiently in resource-constrained environments. Knowledge about
the efects of clock reconfigurations and the associated overheads positions Zephyr to ensure minimal
invasive interventions by the operating system, thereby preserving resources for the applications.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Goal 3: Workload-Specific Clock-Configuration Optimization</title>
        <p>With the help of existing static analysis approaches that provide bounds on resource consumption, the
operating system can minimize the resource consumption of applications. Clock-configuration–aware
resource bounds allow the determination of alternative clock configurations that still adhere to
application constraints but minimize the resource demand. Fine-granular clock models provide the necessary
knowledge about reconfiguration overheads to ensure that switching clock configurations between
application phases does not nullify the obtained resource savings. The ability to find the optimal clock
configuration that leads to the minimal resource demand for diferent application phases,
considering operating-system overheads, would enable Zephyr to provide an eficient execution environment
suitable for low-power operation to applications.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>Advances in battery-free operation and the growing Internet of Things require operating systems
like Zephyr to provide environments for execution under resource constraints. Zephyr’s existing
device-tree support already provides the ability to express comprehensive information about the clock
subsystem and power domains. In this positional paper, we argue for advancing the clock-subsystem
abstraction to enable Zephyr to cater to the needs of resource-constrained systems. A more
finegranular understanding of the heterogeneous clock subsystems provided by embedded platforms
including information about the resource consumption of clock configurations would benefit Zephyr’s
role as an embedded, real-time–ready operating system.</p>
      <p>Fine-grained, resource-aware clock-tree models and clock-tree–aware resource-consumption models
are powerful tools for finding application-specific clock configurations that minimize overall resource
demand. Integrating such a clock-system abstraction would enable Zephyr to configure systems
optimally for the respective applications and further enhance the usability of Zephyr.</p>
    </sec>
    <sec id="sec-5">
      <title>Declaration on Generative AI</title>
      <p>The authors have not employed any Generative AI tools.
[16] The Zephyr Project, Source code, 2025. URL: https://github.com/zephyrproject-rtos/zephyr/blob/
main/dts/bindings/cpu/espressif%2Criscv.yaml.
[17] The Zephyr Project, Source code, 2025. URL: https://github.com/zephyrproject-rtos/zephyr/blob/
main/dts/bindings/clock/espressif%2Cesp32-clock.yaml.
[18] The Zephyr Project, Source code, 2025. URL: https://github.com/zephyrproject-rtos/zephyr/blob/
main/dts/riscv/espressif/esp32c3/esp32c3_common.dtsi.
[19] The Zephyr Project, Source code, 2025. URL: https://github.com/zephyrproject-rtos/zephyr/blob/
main/include/zephyr/dt-bindings/clock/esp32c3_clock.h.
[20] Proposal for a precision clock subsystem architecture, 2024. URL: https://github.com/
zephyrproject-rtos/zephyr/issues/76335.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Sparks</surname>
          </string-name>
          ,
          <article-title>White paper: The economics of a trillion connected devices</article-title>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Wilhelm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Engblom</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ermedahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Holsti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Thesing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. B.</given-names>
            <surname>Whalley</surname>
          </string-name>
          , G. Bernat,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ferdinand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heckmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mitra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mueller</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Puaut</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. P.</given-names>
            <surname>Puschner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Staschulat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Stenström</surname>
          </string-name>
          ,
          <article-title>The worstcase execution-time problem - overview of methods and survey of tools</article-title>
          ,
          <source>ACM Transactions on Embedded Computing Systems (ACM TECS) 7</source>
          (
          <year>2008</year>
          )
          <volume>36</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>36</lpage>
          :
          <fpage>53</fpage>
          . doi:
          <volume>10</volume>
          .1145/1347375.1347389.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Islam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Yildirim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zimmerling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pawełczak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. H.</given-names>
            <surname>Alizai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lucia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mottola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sorber</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Hester,</surname>
          </string-name>
          <article-title>The internet of batteryless things</article-title>
          ,
          <source>Communications of the ACM</source>
          (
          <year>2024</year>
          ). doi:
          <volume>10</volume>
          .1145/3624718.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Jayaseelan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mitra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>Estimating the worst-case energy consumption of embedded software</article-title>
          ,
          <source>in: Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS '06)</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>90</lpage>
          . doi:
          <volume>10</volume>
          .1109/RTAS.
          <year>2006</year>
          .
          <volume>17</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Trilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hernández</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Abella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. J.</given-names>
            <surname>Cazorla</surname>
          </string-name>
          ,
          <article-title>Worst-case energy consumption: A new challenge for battery-powered critical devices</article-title>
          ,
          <source>IEEE Transactions on Sustainable Computing</source>
          <volume>6</volume>
          (
          <year>2021</year>
          )
          <fpage>522</fpage>
          -
          <lpage>530</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSUSC.
          <year>2019</year>
          .
          <volume>2943142</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wägemann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dietrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Distler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ulbrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schröder-Preikschat</surname>
          </string-name>
          ,
          <article-title>Whole-system worst-case energy-consumption analysis for energy-constrained real-time systems</article-title>
          ,
          <source>in: Proceedings of the 30th Euromicro Conference on Real-Time Systems (ECRTS '18)</source>
          , volume
          <volume>106</volume>
          ,
          <string-name>
            <surname>Schloss</surname>
            <given-names>Dagstuhl</given-names>
          </string-name>
          <source>- Leibniz-Zentrum für Informatik</source>
          ,
          <year>2018</year>
          , pp.
          <volume>24</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          :
          <fpage>25</fpage>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.ECRTS.
          <year>2018</year>
          .
          <volume>24</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Wägemann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Distler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hönig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Janker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kapitza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schröder-Preikschat</surname>
          </string-name>
          ,
          <article-title>Worst-case energy consumption analysis for energy-constrained embedded systems</article-title>
          ,
          <source>in: Proceedings of the 27th Euromicro Conference on Real-Time Systems (ECRTS '15)</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>114</lpage>
          . doi:
          <volume>10</volume>
          .1109/ ECRTS.
          <year>2015</year>
          .
          <volume>17</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E.</given-names>
            <surname>Dengler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rafeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schuster</surname>
          </string-name>
          , P. Wägemann,
          <article-title>FusionClock: Energy-optimal clock-tree reconfigurations for energy-constrained real-time systems</article-title>
          ,
          <source>in: Proceedings of the 35th Euromicro Conference on Real-Time Systems (ECRTS '23)</source>
          ,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.ECRTS.
          <year>2023</year>
          .
          <volume>6</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Espressif</given-names>
            <surname>Systems Co</surname>
          </string-name>
          .,
          <string-name>
            <surname>Ltd</surname>
          </string-name>
          .,
          <fpage>ESP32</fpage>
          -C3
          <source>Technical Reference Manual</source>
          ,
          <year>2022</year>
          . URL: https://www. espressif.com/sites/default/files/documentation/esp32-c3
          <source>_technical_reference_manual_en.pdf, pre-release v0.7.</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rottleuthner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wählisch</surname>
          </string-name>
          ,
          <article-title>Dynamic clock reconfiguration for the constrained iot and its application to energy-eficient networking</article-title>
          ,
          <source>in: Proceedings of the 2022 International Conference on Embedded Wireless Systems and Networks (EWSN '22)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>168</fpage>
          -
          <lpage>179</lpage>
          . URL: https://dl.acm.org/doi/abs/10.5555/3578948.3578964.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ayers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. B.</given-names>
            <surname>Gifin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Levy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Levis</surname>
          </string-name>
          ,
          <article-title>Power clocks: Dynamic multi-clock management for embedded systems</article-title>
          ,
          <source>in: Proceedings of the 2021 International Conference on Embedded Wireless Systems and Networks (EWSN '21)</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>150</lpage>
          . URL: https://dl.acm. org/doi/10.5555/3451271.3451284.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Dengler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wägemann</surname>
          </string-name>
          , Crêpe:
          <article-title>Clock-reconfiguration-aware preemption control in real-time systems with devices</article-title>
          ,
          <source>in: Proceedings of the 36th Euromicro Conference on Real-Time Systems (ECRTS '24)</source>
          ,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .4230/LIPIcs.ECRTS.
          <year>2024</year>
          .
          <volume>10</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>The</given-names>
            <surname>Zephyr</surname>
          </string-name>
          <string-name>
            <surname>Project</surname>
          </string-name>
          , Source code,
          <year>2025</year>
          . URL: https://github.com/zephyrproject-rtos/zephyr/blob/ main/dts/bindings/power/zephyr%2Cpower-state.
          <source>yaml.</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>The</given-names>
            <surname>Zephyr</surname>
          </string-name>
          <string-name>
            <surname>Project</surname>
          </string-name>
          ,
          <source>Zephyr project documentation: Device power management</source>
          ,
          <year>2025</year>
          . URL: https: //docs.zephyrproject.org/latest/services/pm/device.html
          <article-title>#device-power-management-states.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Devicetree</surname>
            <given-names>schema tools</given-names>
          </string-name>
          ,
          <year>2025</year>
          . URL: https://github.com/devicetree-org/dt-schema/blob/main/ dtschema/schemas/clock/clock.yaml.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>