}
}
+#ifdef SUPPORT_RC_CALIBRATION
+volatile uint64_t g_pre_count = 0;
+volatile double g_pre_msec = 0;
+#endif
+
uint64_t HalClockGetCycles(void)
{
+#ifdef SUPPORT_RC_CALIBRATION
+ volatile double tick_count;
+#else
uint64_t tick_count;
+#endif
uint64_t cycle;
uint32_t lock_int_save;
uint32_t load_tick;
+#ifdef SUPPORT_RC_CALIBRATION
+ volatile double msec;
+ volatile uint64_t now_count;
+#endif
lock_int_save = LOS_IntLock();
+
+#ifdef SUPPORT_RC_CALIBRATION
+ if (g_pre_count == 0) {
+ tick_count = (uapi_systick_get_count() * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+ g_pre_count = uapi_systick_get_count();
+ g_pre_msec = tick_count;
+ } else {
+ now_count = uapi_systick_get_count();
+ msec = (double)((now_count - g_pre_count) * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+ tick_count = g_pre_msec + msec;
+
+ g_pre_count = now_count;
+ g_pre_msec = tick_count;
+ }
+#else
tick_count = uapi_systick_get_ms();
+#endif
+
load_tick = machine_timer_get_load_count();
cycle = (uint64_t)(tick_count * load_tick);
+
LOS_IntRestore(lock_int_save);
return cycle;
}
uint8_t repair_download_status;//升级下载状态
uint8_t hrs_passivity_status;//获取被动心率检测状态
uint8_t mmc_status; //是否为指南针页面
+ uint8_t is_factory_status;//是否恢复出厂
//读写锁
uint8_t rwlock_status;//手表状态(存储)
uint8_t lock_flag_training;//训练
{
return g_runtime.wear_status;
}
+// 设置是否为恢复出厂
+void uapi_dev_runtime_set_restore_factory_status(uint8_t status) {
+ g_runtime.is_factory_status = status;
+}
+// 获取是否为恢复出厂
+uint8_t uapi_dev_runtime_get_restore_factory_status(void) {
+ return g_runtime.is_factory_status;
+}
// 获取是否为佩戴状态
uint8_t uapi_dev_runtime_get_wear_status_flag(void);
+// 设置是否为恢复出厂
+void uapi_dev_runtime_set_restore_factory_status(uint8_t status);
+// 获取是否为恢复出厂
+uint8_t uapi_dev_runtime_get_restore_factory_status(void);
+
void uapi_dev_runtime_set_transmitting_status(uint8_t data);
uint8_t uapi_dev_runtime_get_transmitting_status(void);