[core] Add LT.getCpuFreq() method

This commit is contained in:
Kuba Szczodrzyński
2022-06-04 16:36:13 +02:00
parent 0ca0577667
commit bf31533306
3 changed files with 14 additions and 6 deletions

View File

@@ -108,6 +108,13 @@ const char *LibreTuya::getDeviceName() {
return deviceName;
}
/**
* @brief Get CPU frequency in MHz.
*/
uint32_t LibreTuya::getCpuFreqMHz() {
return getCpuFreq() / 1000000;
}
static uint8_t otaRunningIndex = 0;
/**

View File

@@ -70,6 +70,7 @@ class LibreTuya {
ChipFamily getChipFamily();
const char *getChipFamilyName();
const char *getDeviceName();
uint32_t getCpuFreqMHz();
uint8_t otaGetRunning();
uint8_t otaGetTarget();
bool otaRollback();
@@ -115,13 +116,13 @@ class LibreTuya {
*/
const char *getChipCoreType();
/**
* @brief Get CPU frequency in MHz.
* @brief Get CPU frequency in Hz.
*/
uint32_t getCpuFreqMHz();
uint32_t getCpuFreq();
/**
* @brief Get CPU cycle count.
*/
inline uint32_t getCycleCount() __attribute__((always_inline));
uint32_t getCycleCount();
public: /* Memory management */
/**

View File

@@ -42,11 +42,11 @@ const char *LibreTuya::getChipCoreType() {
return "ARM Cortex-M4F";
}
uint32_t LibreTuya::getCpuFreqMHz() {
return CPU_ClkGet(false) / 1000000;
uint32_t LibreTuya::getCpuFreq() {
return CPU_ClkGet(false);
}
inline uint32_t LibreTuya::getCycleCount() {
uint32_t LibreTuya::getCycleCount() {
return microsecondsToClockCycles(micros());
}