#include "lcd_mipi.h"\r
#include "lcd_bus.h"\r
#include "button_porting.h"\r
+#include "custom_runtime.h"\r
\r
static const lcd_bus_api g_display_api_qspi = {\r
.bus_init = lcd_qspi_init,\r
#define PRESS_COUNT_LIMIT 5\r
static button_press_state_t porting_button_get_state(void)\r
{\r
- if ((readl(ANA_STS) & 0x3) == 0) {\r
+ if ((readl(ANA_STS) & 0x3) == 0) \r
+ {\r
+ return PRESSED;\r
+ } else {\r
+ return RELEASED;\r
+ }\r
+}\r
+#define FUNCTION_BUTTON_GPIO_PIN S_AGPIO_R10\r
+static button_press_state_t porting_function_button_get_state(void)\r
+{\r
+ if (uapi_gpio_get_val(FUNCTION_BUTTON_GPIO_PIN) == GPIO_LEVEL_LOW)\r
+ {\r
return PRESSED;\r
} else {\r
return RELEASED;\r
}\r
// button_api->button_unregister_callback(PIN_NONE);\r
}\r
+\r
+bool need_enter_safemode(void)\r
+{\r
+ if (PRESSED == porting_button_get_state() && PRESSED == porting_function_button_get_state())\r
+ {\r
+ return true;\r
+ }else{\r
+ return false;\r
+ }\r
+}\r
void board_init(uint32_t flash_id, uint32_t flash_unique_id)\r
{\r
/* flash init */\r
pio_func_init();\r
gpio_func_init();\r
check_pwrkey_3s();\r
+ if (need_enter_safemode() == true)\r
+ {\r
+ //TODO 设置进入安全模式的全局变量\r
+ PRINT("entering SafeMode\r\n");\r
+ uapi_dev_runtime_set_safemode_flag(1);\r
+ }else{\r
+ PRINT("entering NormalMode\r\n");\r
+ }\r
+\r
#ifdef QSPI_DISPLAY\r
PRINT("qspi**************\r\n");\r
lcd_bus_register_api(&g_display_api_qspi, BUS_DISPLAY_QSPI);\r
* */
typedef struct
{
+ uint8_t enter_safemode;
uint8_t in_silent_mode;
uint8_t in_lowpower_mode;
uint8_t stepcount;
uint8_t uapi_dev_runtime_get_absolute_static_status(void)
{
return g_runtime.absolute_static_state;
+}
+
+
+// 安全模式
+void uapi_dev_runtime_set_safemode_flag(uint8_t status)
+{
+ g_runtime.enter_safemode = status;
+}
+// 安全模式
+uint8_t uapi_dev_runtime_get_safemode_flag(void)
+{
+ return g_runtime.enter_safemode;
}
\ No newline at end of file
void uapi_dev_runtime_set_absolute_static_status(uint8_t status);
uint8_t uapi_dev_runtime_get_absolute_static_status(void);
+
+// 安全模式
+void uapi_dev_runtime_set_safemode_flag(uint8_t status);
+// 安全模式
+uint8_t uapi_dev_runtime_get_safemode_flag(void);
+
#ifdef __cplusplus
#if __cplusplus
}