mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-16 10:00:03 -05:00
Sometimes when the frequency is locked, e.g. at 132 MHz, the algorithm still calculated a lower frequency, e.g. 66 MHz.
29 lines
792 B
C++
29 lines
792 B
C++
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include "Algorithm.hpp"
|
|
#include "lpm/PowerProfile.hpp"
|
|
|
|
namespace sys
|
|
{
|
|
class CpuGovernor;
|
|
}
|
|
|
|
namespace sys::cpu
|
|
{
|
|
class FrequencyStepping : public Algorithm
|
|
{
|
|
const bsp::PowerProfile &powerProfile;
|
|
unsigned int aboveThresholdCounter = 0;
|
|
unsigned int belowThresholdCounter = 0;
|
|
bool isFrequencyDownscalingInProgress = true;
|
|
|
|
public:
|
|
explicit FrequencyStepping(const bsp::PowerProfile &powerProfile);
|
|
[[nodiscard]] AlgorithmResult calculateImplementation(const AlgorithmData &data) override;
|
|
void resetImplementation() override;
|
|
};
|
|
} // namespace sys::cpu
|