Merge #868 into sdk602patch0626 from refs/changes/868/head
author彭磊 <1624952103@qq.com>
Wed, 4 Sep 2024 13:18:16 +0000 (13:18 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 4 Sep 2024 13:18:16 +0000 (13:18 +0000)
Code review from 彭磊

* refs/changes/868/head: (6 commits squashed)

  - 修复BUG #551 &quot;运动,放桌子上不动,卡路里会增加&quot;

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 修复BUG &quot;天气 JSON解析错误 导致系统开机死机&quot;

  - Merge branch &#39;sdk602patch0626&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - 适配 DS_ZB25LQ128C_HRT NORFLASH

Signed-off-by: aliyun6865282430 <1624952103@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/868
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/include/driver/flash/flash_common_config.h
code/sdk/include/driver/flash/flash_config_info.h
code/sdk/include/driver/flash/flash_others_config.h

index 429c889..2a929da 100644 (file)
@@ -2161,7 +2161,11 @@ uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析
     }\r
     printf("开始解析天气 JSON\n");\r
     cJSON *now_cjson = cJSON_GetObjectItem(root, "now");\r
-    \r
+    if(now_cjson == NULL)\r
+    {\r
+        printf("天气 JSON解析错误\n");\r
+        return 0;\r
+    }\r
     int humidity = cJSON_GetObjectItem(now_cjson, "humidity")->valueint;\r
     char * windScale = cJSON_GetObjectItem(now_cjson, "windScale")->valuestring;\r
     char *textNight = cJSON_GetObjectItem(now_cjson, "textNight")->valuestring;\r
index d541fa4..9671895 100755 (executable)
 
 #define FLASH_MANUFACTURER_PUYA_PY25Q128LA       0x186585
 
+#define FLASH_MANUFACTURER_HRT_ZB25LQ128C        0x18505E
+
 #define FLASH_CMD_LEN_MAX     4
 
 #define addr_unalign(Addr, Boundary) ((Addr) & ((Boundary) - 1))
@@ -183,6 +185,7 @@ typedef enum flash_support_manufacturer {
     FLASH_PUYA_P25Q64SL,
     FLASH_MXIC_MX25U256,
     FLASH_PUYA_PY25Q128LA,
+    FLASH_HRT_ZB25LQ128C,
     FLASH_MANUFACTURER_MAX
 } flash_support_manufacturer_t;
 
index 2b7293a..542a210 100755 (executable)
@@ -125,10 +125,11 @@ static const flash_device_parameter_t g_flash_device_parameter[FLASH_MANUFACTURE
       g_puya_p25q32lc_enter_qspi_mode_cmd,        NULL,                               &g_puya_p25q32lc_config },
     { FLASH_MANUFACTURER_MXIC_MX25U256,         FLASH_SIZE_32MB,  0xA5, 0xAA, WAIT_CYCLES_4, 0x2B, 0xB0, 0x30,
       g_mxic_mx25uxx_enter_qspi_mode_cmd,         NULL,                               &g_mxic_mx25uxx_config },
-    // { FLASH_MANUFACTURER_PUYA_PY25Q128LA,       FLASH_SIZE_16MB, 0x38, 0xFF, WAIT_CYCLES_6, 0x48, 0x75, 0x7A,
-    //   g_puya_py25q128la_enter_qspi_mode_cmd,        NULL,                               &g_puya_py25q128la_config },
     { FLASH_MANUFACTURER_PUYA_PY25Q128LA,       FLASH_SIZE_16MB, 0x20, 0xFF, WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
       g_puya_py25q128la_enter_qspi_mode_cmd,        NULL,                               &g_puya_py25q128la_config },
+    { FLASH_MANUFACTURER_HRT_ZB25LQ128C,        FLASH_SIZE_16MB, 0x20, 0x0,  WAIT_CYCLES_4, 0x05, 0x75, 0x7A,
+      g_hrt_zb25lq128c_enter_qspi_mode_cmd, NULL,                               &g_hrt_zb25lq128c_config },
+
 };
 
 static const uint32_t g_xip_use_cmd_mode[] = {
@@ -147,6 +148,7 @@ static const uint32_t g_xip_use_cmd_mode[] = {
     FLASH_MANUFACTURER_DOSILICON_DS25M4AB,
     FLASH_MANUFACTURER_PUYA_P25Q64SL,
     FLASH_MANUFACTURER_PUYA_PY25Q128LA,
+    FLASH_MANUFACTURER_HRT_ZB25LQ128C,
 };
 
 static flash_cmd_exe_t g_winbond_w25qxx_set_qe_cmd[] = {
@@ -224,6 +226,20 @@ static flash_cmd_exe_t g_puya_py25q128la_set_qe_cmd[] = {
     { FLASH_CMD_TYPE_END,        HAL_SPI_FRAME_FORMAT_MAX_NUM,   0, { 0 } }
 };
 
+static flash_cmd_exe_t g_hrt_zb25lq128c_set_qe_cmd[] = {
+    /* Check QE bit. */
+    { FLASH_CMD_TYPE_CHECK,      HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR2_CMD, 0x1, 0x2 } },
+    /* Write enable. */
+    { FLASH_CMD_TYPE_CMD,        HAL_SPI_FRAME_FORMAT_STANDARD, 1, { FLASH_WREN_CMD } },
+    /* Write status register-2 to 0x2, set QE bit. */
+    { FLASH_CMD_TYPE_CMD,        HAL_SPI_FRAME_FORMAT_STANDARD, 2, { 0x31, 0x02 } },
+    /* Waite config done. */
+    { FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR1_CMD, 0, 0 } },
+    /* Check QE bit. */
+    { FLASH_CMD_TYPE_PROCESSING, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { FLASH_RDSR2_CMD, 0x1, 0x2 } },
+    /* End cmd, will not execute and need return. */
+    { FLASH_CMD_TYPE_END,        HAL_SPI_FRAME_FORMAT_MAX_NUM,   0, { 0 } }
+};
 
 static const flash_qe_config_t g_flash_need_set_qe[] = {
     {FLASH_MANUFACTURER_WINBOND_W25Q32,      g_winbond_w25qxx_set_qe_cmd},
@@ -235,7 +251,8 @@ static const flash_qe_config_t g_flash_need_set_qe[] = {
     {FLASH_MANUFACTURER_DOSILICON_DS25M4AB,  g_winbond_w25qxx_set_qe_cmd},
     {FLASH_MANUFACTURER_ELITE_EN25SX128A,    g_winbond_en25sx128a_set_qe_cmd},
     {FLASH_MANUFACTURER_XTX_XT25Q128D,       g_xtx_xt25q128d_set_qe_cmd},
-    {FLASH_MANUFACTURER_PUYA_PY25Q128LA,     g_puya_py25q128la_set_qe_cmd}
+    {FLASH_MANUFACTURER_PUYA_PY25Q128LA,     g_puya_py25q128la_set_qe_cmd},
+    {FLASH_MANUFACTURER_HRT_ZB25LQ128C,      g_hrt_zb25lq128c_set_qe_cmd}
 };
 
 #define FLASH_WIP                (bit(0))
index a95513d..5528897 100755 (executable)
@@ -168,6 +168,21 @@ static flash_cmd_exe_t g_puya_py25q128la_enter_qspi_mode_cmd[] = {
     { FLASH_CMD_TYPE_END,        HAL_SPI_FRAME_FORMAT_MAX_NUM,   0, { 0 } }
 };
 
+/* HRT config. */
+/* PY25Q128LA PUYA flash config. */
+static flash_cmd_exe_t g_hrt_zb25lq128c_enter_qspi_mode_cmd[] = {
+    /* Write enable for Volatils status register. */
+    { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x50 } },
+    /* Write volatile configuration register,config XIP disable. */
+    { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 3, { 0x01, 0x00, 0x02 } },
+    /* Enable QPI. */
+    { FLASH_CMD_TYPE_CMD, HAL_SPI_FRAME_FORMAT_STANDARD, 1, { 0x38 } },
+    /* Set dummy 6, maxinum read freq 108MHZ. */
+    { FLASH_CMD_TYPE_CMD,        HAL_SPI_FRAME_FORMAT_QUAD, 2, { 0xC0,  0x10} },
+    /* End cmd, will not execute and need return. */
+    { FLASH_CMD_TYPE_END, HAL_SPI_FRAME_FORMAT_MAX_NUM,   0, { 0 } }
+};
+
 /* OTHERS enter xip mode config. */
 /* Micro config. */
 /* MT25QU128 Micro flash config. */
@@ -293,6 +308,24 @@ static flash_qspi_xip_config_t g_puya_py25q128la_config = {
     false,
     false,
 };
+
+/* HRT config. */
+/* ZB25LQ128C HRT flash config. */
+static flash_qspi_xip_config_t g_hrt_zb25lq128c_config = {
+    /* The config that before enter XIP mode. */
+    WAIT_CYCLES_6,
+    HAL_SPI_INST_LEN_8,
+    HAL_SPI_ADDR_LEN_24,
+    HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
+    /* The config that after enter XIP mode. */
+    WAIT_CYCLES_6,
+    HAL_SPI_INST_LEN_8,
+    HAL_SPI_ADDR_LEN_24,
+    HAL_SPI_TRANS_TYPE_INST_Q_ADDR_Q,
+    /* XIP 32bit addr & wrap config. */
+    false,
+    false,
+};
 /**
   * @}
   */