1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Jieli-Tech-fw-AC63_BT_SDK

 / Детали:

ЗАМЕЧАНИЯ: OTA обновление данных — список проблем

Предстоит сделать
Владелец
Создано  
05.03.2025

Документация по OTA-обновлению

  1. Обновление.md
    https://gitee.com/jieli-tech_fae/IOT-AC630N/blob/master/doc/software/обновление/обновление.md
  2. Инструкция по обновлению прошивки.md
    https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/blob/ac63_bt_sdk_release_v2.1.0/doc/прошивка_обновление.md
  3. Инструкция по однократному и двойному резервному копированию при обновлении.md
    https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/blob/ac63_bt_sdk_release_v2.1.0/doc/однократное_резервное_копирование_и_двухкратное_резервное_копирование_при_обновлении.md

Однократное и двухкратное резервное копирование

  1. Для двухкратного резервного копирования требуется микросхема с объёмом памяти 4 Мбит и выше.
  2. Для брендовых клиентов, требующих длительного обслуживания и максимальной стабильности обновлений, обязательно использовать двухкратное резервное копирование.
  3. При использовании однократного и двухкратного резервного копирования невозможно осуществлять взаимное обновление, если произошли изменения в разделах флэш-памяти; это может привести к неудаче обновления.

BLE-неудача однократного резервного копирования OTA — часто встречающиеся ситуации## Процесс BLE-однократного резервного копирования OTA:

Обновление состоит из двух этапов и показывает два процента прогресса:

  1. Этап приложения, отправка данных Uboot в VM-зону
  2. Этап Uboot, BLE-соединение повторного подключения, после успешного соединения, обновление области Code
    По умолчанию переход от первого этапа ко второму происходит через перезагрузку процессора cpu_reset(), что может привести к потере контроля над состоянием I/O и отключению Bluetooth.
    Если переход происходит на второй этап, а App не может снова подключиться к BLE, можно взять другой Android-смартфон, открыть nRF Connect и найти Bluetooth, проверить, видна ли она, сравнить MAC-адрес и содержание пакета передачи, чтобы определить, является ли проблема связана с прошивкой или с App-конечной точкой

1. Недостаточно места

При компиляции и скачивании в логе сборки отображается информация о свободном пространстве: важна только информация, указанная при скачиванииИзображение

Методы изменения:

  1. Если EDR не требуется, можно выключить макрос EDR
#define TCFG_USER_EDR_ENABLE                      0   // Включение функции EDR
  1. Если объём необходимых данных VM небольшой, можно уменьшить размер области VM
#define CONFIG_VM_LEAST_SIZE                    8K

Минимальный размер — 8К, увеличивайте размер в зависимости от потребностей с шагом в 8К.

  1. Если не требуется записывать информацию, такую как сертификационный код, можно выключить функцию хранения 4К
NEED_RESERVED_4K=NO; // Выключение хранения 4К
  1. Если функция звука не нужна, можно удалить источники звука из файла tone.cfg
    Изображение

Замените файл tone.cfg в папке tools на файл с пустым звуком.
Изображение

2. Управление переменными при обновлении

const int support_dual_bank_update_en = 1;  // Включить двойное резервное копирование, не забудьте установить этот параметр в 1
const int support_vm_data_keep = 1;         // При обновлении требуется сохранение данных VM

// Включение проверки соединения, должно совпадать с конфигурацией APP
#define BT_CONNECTION_VERIFY                  0   // 0 - проверка, 1 - отсутствие проверки
```## 3. Настройка структуры файла обновления
При компиляции без подключения микросхемы и при компиляции с подключением микросхемы информация может не совпадать

```c
// Определение размера флэш-памяти
#define FLASH_SIZE_256K                      0x40000
#define FLASH_SIZE_512K                      0x80000
#define FLASH_SIZE_1M                        0x100000
#define FLASH_SIZE_2M                        0x200000
#define FLASH_SIZE_4M                        0x400000
#define CONFIG_FLASH_SIZE                     FLASH_SIZE_256K    // Конфигурация размера флэш-памяти
``````c
#define CONFIG_DB_UPDATE_DATA_GENERATE_EN     1       // Генерация db_data.bin (для использования с протоколами сторонних производителей)
#define CONFIG_ONLY_GENERATE_ALIGN_4K_CODE    1       // UFW генерирует одну версию кода, выровненную до 4К

FLASH_SIZE = CONFIG_FLASH_SIZE;              // Размер флэш-памяти
FORCE_4K_ALIGN = YES;                        // Выравнивание до 4К байт
SPECIAL_OPT = 0;                             // Генерировать только один flash.bin

Изображение

4. Название Bluetooth и MAC-адрес в пакете рассылки

Если название Bluetooth слишком длинное (более 16 байт), следует обратить внимание, что название Bluetooth должно находиться в adv пакете, а остальные типы данных должны быть помещены в rsp пакет
Изображение
При использовании EDR и BLE с одним адресом:
Изображение

```c
if (__this->JL_ble_status != BLE_ST_NOTIFY_IDICATE) {
    if (__this->rcsp_ble->adv_enable) {
        __this->rcsp_ble->adv_enable(NULL, 0);
    }
    rcsp_printf("%s[__this->JL_ble_status:%d]", __func__, __this->JL_ble_status);
    __this->JL_ble_status = BLE_ST_NOTIFY_IDICATE;
}

Изображение

6. Плата питается от MOS-транзистора, управляемого IO контроллером

#define CONFIG_UPDATE_JUMP_TO_MASK       1  
// способ обновления конфигурации для перехода к u-boot: 0 — прямой reset, 1 — переход

7. Перед началом обновления следует отключить активные внешние устройства

При входе в OTA обновление, чтобы обеспечить стабильность и избежать сбоев, вызванных другими функциями, рекомендуется отключить все активные внешние устройства.
Например, как показано на следующем рисунке:
Изображение

8. Замена ota.bin последнего SDK

У некоторых SDK есть ошибки в ota.bin, поэтому его следует заменить на последний SDK.Изображение
[WPS Облако] AC630X-V221-OTA патч-004
https://kdocs.cn/l/ckG1N4vds3VG

Девятый раздел: отключение функции сброса по нажатию кнопки

https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues/I4O1AP

  1. Отключите PB2 сброса
gpio_shortpress_reset_config(0); // 1 -- enable 0 -- disable
  1. Отключите долгое нажатие для сброса
gpio_longpress_pin0_reset_config(IO_PORTA_09, 0, 0);
// isd_config_rule.c закомментируйте эту строку
/* RESET = CAT3(CONFIG_RESET_PIN, CONFIG_RESET_TIME, CONFIG_RESET_LEVEL); // port_время_нажатия_уровень_эффективности */

Десятый раздел: тестирование и обновление

  1. После успешной установки тестового приложения происходит сброс. При этом устройство не выключается, а сразу переходит в режим работы для продолжения обновления.
    Если имеется порт пробуждения, то после сброса устройство должно автоматически выключаться.
    Изображение

  2. При двойном резервировании тестовое обновление постоянно повторяется без сброса устройства.
    Изображение## Одиннадцатый раздел: действия при невозможности решения проблемы

  3. Если обновление провалилось на прототипе, проверьте ту же программу на плате разработки, чтобы убедиться, что она работает правильно.

  4. Удалите некоторые функции из существующей программы, чтобы уменьшить объем кода и проверить возможность нормального обновления.

  5. Включите печать данных уровня приложения, используя ota_debug.bin и переименовывая его в ota.bin,
    измените #define CONFIG_UBOOT_DEBUG_PIN USBDP // PA05 и #define TCFG_UART0_TX_PORT IO_PORT_DP.

  6. Попробуйте использовать другие устройства (Android, iOS) или другие приложения (Android, мини-чат WeChat) для исключения проблем.# Проблемы разработки приложений

1. Разграничение проблем приложения и прошивки

Перед разработкой приложения обязательно проведите тестирование с использованием официальных версий приложений Jackii.
Андроид приложение: [Jackii OTA Update] https://gitee.com/Jieli-Tech/Android-JL_OTA
iOS приложение: [Jackii OTA] https://gitee.com/Jieli-Tech/iOS-JL_OTA
Мини-приложение WeChat: [Jackii OTA] https://gitee.com/Jieli-Tech/WeChat-Mini-Program-OTA

2. При возникновении вопросов по разработке приложения требуется присоединиться к группе в DingTalk сообщества открытых проектов.

Для выявления проблем необходимо включить переключатель LOG и отправить полный логовый файл, как это указано в описании репозитория приложения.

3. Проверьте конфигурацию приложения, которая требует активации аутентификации устройства.

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
升级相关
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/Jieli-Tech-fw-AC63_BT_SDK.git
git@api.gitlife.ru:oschina-mirror/Jieli-Tech-fw-AC63_BT_SDK.git
oschina-mirror
Jieli-Tech-fw-AC63_BT_SDK
Jieli-Tech-fw-AC63_BT_SDK