Найти в Дзене
merkulss

Скрипт для анализа eMMC CID/CSD/ECSD/SFDP/CFI/ONFI и других структур флеш-памяти

Скрипт emmc_nor_nand_cfg_decode.py представляет собой графическое приложение на Python с использованием библиотеки Tkinter для анализа и визуализации различных структур данных флеш-памяти, включая: Приложение предоставляет удобный интерфейс для просмотра, редактирования и проверки структурированных данных флеш-накопителей. Скрипт представляет собой ценный инструмент для инженеров, работающих с флеш-памятью, разработчиков встроенных систем и всех, кто интересуется внутренней организацией современных накопителей. (29.04.2025 добавлен CLI вариант скрипта)
Оглавление

SFDP
SFDP
CFI
CFI
CID
CID
ECSD
ECSD

Обзор

Скрипт emmc_nor_nand_cfg_decode.py представляет собой графическое приложение на Python с использованием библиотеки Tkinter для анализа и визуализации различных структур данных флеш-памяти, включая:

  • eMMC (CID, CSD, ECSD)
  • ONFI параметры NAND-памяти
  • JESD стандарты
  • SFDP (Serial Flash Discoverable Parameters)
  • CFI (Common Flash Interface)

Приложение предоставляет удобный интерфейс для просмотра, редактирования и проверки структурированных данных флеш-накопителей.

Основные возможности

Поддерживаемые стандарты

  1. eMMC:
  2. CID (Card Identification Register)
  3. CSD (Card Specific Data)
  4. ECSD (Extended CSD)
  5. Дополнительные стандарты:
  6. ONFI (Open NAND Flash Interface)
  7. JESD (JEDEC Solid State Technology Association стандарты)
  8. SFDP (для Serial NOR Flash)
  9. CFI (для параллельной NOR Flash)

Функциональность

  • Парсинг и отображение всех полей структур данных с подробными описаниями
  • Визуализация в виде древовидной таблицы с сортировкой
  • Редактирование некоторых полей (например, версии продукта в CID)
  • Проверка CRC с визуальным выделением валидных/невалидных данных
  • Загрузка данных из файлов в бинарном или HEX-формате
  • Поддержка производителей с автоматическим определением по MID

Особенности реализации

  • Использование OrderedDict для сохранения порядка полей
  • Подсветка невалидных CRC
  • Возможность редактирования некоторых полей с автоматическим пересчетом CRC
  • Подробные описания каждого поля с указанием битовых диапазонов
  • Поддержка как стандартных, так и расширенных (ECSD) параметров eMMC
  • Формат JESD пока не полностью реализован (есть только один от SAMSUNG и вынесен в отдельную функцию), поскольку не найдено достаточно образцов и описания.

Использование

  1. Запустите скрипт: python emmc_nor_nand_cfg_decode.py
  2. Выберите нужную вкладку (CID, CSD, ECSD и т.д.)
  3. Введите HEX-данные в текстовое поле или загрузите из файла
  4. Нажмите "Parse" для анализа данных
  5. Для редактируемых полей доступен двойной клик для изменения значения

Примеры применения

  • Анализ параметров eMMC накопителей
  • Отладка проблем совместимости флеш-памяти
  • Исследование возможностей различных чипов памяти
  • Верификация данных производителей
  • Обучение и изучение структур данных флеш-памяти

Технические требования

  • Python 3.x
  • Библиотеки: tkinter, re, struct, collections, crc

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

(29.04.2025 добавлен CLI вариант скрипта)

emmc_nor_nand_cfg_decode