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

OSCHINA-MIRROR/Jieli-Tech-fw-AC63_BT_SDK

 / Детали:

ЗАМЕЧАНИЕ: Проверка использования flash-памяти и RAM-чипа

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

Просмотр ресурсов flash и RAM чипа

На примере SDK AC630N_bt_data_transfer_sdk---AC632, но метод просмотра аналогичен для других чипов и версий SDK.

Размер FLASH: может быть 2 Мбит (256 КБ), 4 Мбит (512 КБ) и 8 Мбит (1 МБ), всего три варианта, в зависимости от конкретной модели.

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

1. Ресурсы Flash

1.1 Разделение Flash| Информация раздела (от адреса 0 последовательное деление) | Описание | Обязательный / Необязательный |

| --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------ |
| Первый сектор (первые 4КБ) | Зарезервировано, ini-файл конфигурация: EOFFSET=1; // bk * n | Необязательный |
| uboot | Код загрузки, обновления и т. д. | Обязательный |
| app code 0 (app. bin) | Прикладной код | Обязательный |
| app code 1 (db_update_data. bin) | Дополнительный прикладной код, используется при двойном резервном копировании | Необязательный |
| Виртуальная память (VM) | Размер регулируется, минимальный размер — 8КБ; циклический механизм хранения и равномерного удаления | Обязательный |
| ------ Расширенная область VM для OTA ----- | Для OTA требуется запомнить некоторые временные области, компилятор автоматически увеличивает размер VM | Обязательный |
| Блок данных Bluetooth (BTIF) | Информация Bluetooth (например, информация trim, MAC-адрес и т. д.), записывается один раз | Обязательный || Личная область | Уникальная область флеш-памяти для хранения больших объёмов информации | Необязательный |
| ------ Оставшаяся область флеш-памяти ------ | | |
| Последний сектор (последние 4 КБ) | Информация сертификата, триплета, номера серии, MAC-адреса и т. д., конфигурация: NEED_RESERVED_4K=NO; // YES | Необязательный |### 2. Конечные файлы после компиляции:

jl_isd.bin = uboot.boot + app.bin + p11_code.bin + tone.cfg + cfg_tool.bin + другие ресурсные файлы. (не включает область VM)

jl_isd.fw = информация загрузчика + jl_isd.bin (выравнивание 256 байт) + jl_isd.bin (выравнивание 4КБ)

обновление.ufw = обновление.bin + нескольких форматов jl_isd.bin

3. Количество кода для различных функций — соответствует занимаемому flash-памяти

введите описание изображения здесь

На примере проекта AC630N_bt_data_transfer_sdk_release_v2.1.0, 632, AC632N_spp_and_le.cbp:

Функция app.bin jl_isd.bin Количество кода для отдельной функции
mcu-sdk 30КБ 44КБ
bt_data_transfer_sdk только запущенный системный RTOS 42КБ 52КБ Занимаемое ОС: 12КБ
RTOS + BLE 106КБ 120КБ Занимаемое BLE: 64КБ
RTOS + BLE + EDR 171КБ 184КБ Занимаемое EDR: 65КБ
RTOS + BLE + EDR + приложение печати 193КБ 203КБ Приложение печати: 22КБ
RTOS + BLE + EDR + приложение печати + библиотека печати 245КБ 255КБ Библиотека печати: 52КБ
RTOS + BLE + EDR + приложение печати + библиотека печати + OTA 258КБ 272КБ Одиночное резервное копирование OTA: 13КБ

введите описание изображения здесь

Поскольку область VM расширяется автоматически в зависимости от функциональности, оставшееся пространство в flash-памяти увеличивается вместе с областью VM.

Поэтому оставшееся пространство = размер VM - минимальное необходимое пространство для выбранного метода OTA.

Второй раздел. Ресурсы RAM

1. Общие размеры памяти SRAM для различных моделей микроконтроллеров:

Номер модели чипа Общий размер памяти SRAM + КЭШ
AD140, AC104 32КБ + OnClickListener 4 * 4КБ
AD150 20КБ + OnClickListener 2 * 4КБ
AD160 40КБ + OnClickListener 4 * 4КБ
AC632 73КБ + OnClickListener 9КБ
AC631 64КБ + OnClickListener 16КБ
AC635, AC695 192КБ + OnClickListener 16КБ
AC636, AC696 128КБ + OnClickListener 16КБ
AC637, AC697 176КБ + OnClickListener 36КБ
AC638, AC698 176КБ + OnClickListener 36КБ

2. Просмотр кода, свободное пространство в куче

Доступна только SRAM, согласно компилятору, она делится на три части: стек, статические данные, куча. Пример с AC632: всего 73КБ SRAM:

Таймер периодически вызывает mem_stats(), что позволяет отслеживать оставшееся пространство RAM.

const char log_tag_const_d_HEAP_MEM AT(.LOG_TAG_CONST) = 1; // CONFIG_DEBUG_LIB(TRUE);

static void test_timer_loop(void *priv)
{
    mem_stats();
}

void board_power_init(void)
{
    sys_timer_add(NULL, test_timer_loop, 1000);
    ...
}
```// Соответствующий вывод (необходимо обратить внимание только на физическую память):
// [Debug]: [HEAP_MEM] Текущее свободное пространство в куче 58168 байт, минимальное свободное пространство в куче 58080 байт, размер физической памяти 27136 байт

3. Количество кода для различных функций — соответствие потребляемой RAM

Функция Оставшаяся доступная RAM Потребление RAM одной функцией
mcu-sdk 48 КБ Драйвер чипа: 25 КБ
bt_data_transfer_sdk (только системный RTOS) 39 КБ ОС: 9 КБ
RTOS + BLE 26 КБ BLE: 13 КБ
RTOS + EDR 24 КБ EDR: 15 КБ
RTOS + BLE + EDR 14 КБ BLE + EDR: 25 КБ
RTOS + BLE + EDR + OTA 10 КБ Одиночное резервное копирование OTA: 4 КБ

Комментарий (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