Перейти к содержанию

Программатор RT809H, сохранение или чтение раздела памяти EMCC


Рекомендуемые сообщения

Опубликовано

Привет Как вы знаете, программаторы UFPI (на которых я работаю) и ENTT позволяют сохранять выбранные разделы или разделы в памяти EMCC Программатор RT809H при программировании EMCC имеет вкладку «НАСТРОЙКА», где мы можем выбрать сохранение всей памяти EMCC или опцию «Частичный адрес», где вы должны указать данные для сохранения. Я заинтересован в предоставлении данных для записи раздела памяти на этой вкладке Я не могу записать данные в формате записи адреса, размера данных, как это делает UFPI Нужно ли RT809H пересчитывать данные чтения-записи по-другому?

  • 1 год спустя...
Опубликовано

Насколько я помню RT809H можно считать разделы и записать разделы, но в какой то версии был косяк что о менял раздел ext_csd , тем самым изменял ее конфиг. Возможности в програмном обеспечении не такие большие как по сровнению в ufpi 

  • 2 года спустя...
  • Техподдержка
Опубликовано

RT809H и работа с разделами eMMC: детальный анализ

Понимание проблемы

Когда мы работаем с eMMC-памятью в телевизионной технике, принципиально важно понимать,

что разные программаторы используют разные модели адресации при работе с частичным чтением/записью.

Как считают адреса разные программаторы

UFPI / ENTT — логика адресации
Стартовый адрес (LBA или байтовый) + Размер данных
Пример:
Start Address : 0x00700000
Data Size     : 0x00100000  (1 MB)
Всё прозрачно — указал откуда, указал сколько, получил кусок.

 RT809H — логика «Partial Address»
RT809H работает иначе. В поле **Partial Address** нужно указывать:
Start Address : адрес начала (в байтах или секторах — зависит от версии ПО)
End Address   : адрес конца блока (не размер, а именно конечный адрес!)

⚠️ Это главная путаница.  UFPI принимает `Старт + Размер`, а RT809H ожидает `Старт + Конец`.

Формула пересчёта:
End Address = Start Address + Data Size - 1

Пример:
UFPI:   Start = 0x00700000 | Size = 0x00100000
RT809H: Start = 0x00700000 | End  = 0x007FFFFF

Единицы адресации в RT809H

Здесь важный нюанс, который путает многих:

| Версия ПО RT809H | Единица адресации |
| Старые версии (< 9.xx) | Байты |
| Новые версии (9.xx+) | Секторы (512 байт) |

Пересчёт байтов в секторы:
Sector Address = Byte Address / 512

Пример:
Байтовый старт : 0x00700000 = 7340032 байт
В секторах     : 7340032 / 512 = 14336 (0x3800 секторов)

Известный баг RT809H с ext_csd

@sus256 Ты правильно помнишь — это **реальная проблема**, известная в сервисных кругах.

Что происходит:
- ext_csd — это регистр конфигурации самой микросхемы eMMC (168 байт, адресуется отдельно через CMD8)
- В некоторых версиях RT809H при записи частичного дампа программатор **перезаписывал ext_csd**, меняя параметры:
  - Boot partition enable
  - Bus width configuration
  - Partition config
  - Sleep/Awake параметры

 Последствия:
- Чип перестаёт загружаться с boot partition
- Изменяется конфигурация шины (8-bit → 4-bit)
- В худшем случае — чип блокируется по boot config

 Как защититься:
1. **Перед записью** — считать и сохранить ext_csd отдельно
2. Использовать версии ПО RT809H **не ниже 10.xx** (частично исправлено)
3. После записи — **верифицировать ext_csd** и при необходимости восстановить
4. По возможности для частичной записи использовать UFPI — там эта проблема отсутствует

Практический алгоритм работы в RT809H

 Шаг 1 — Определить параметры раздела
Узнаём из partition table или из UFPI-дампа:
Пример раздела "logo":
  Start LBA : 0x3800
  Size      : 0x800 секторов (= 1 MB)

 Шаг 2 — Пересчитать под RT809H
Start Address = 0x3800
End Address   = 0x3800 + 0x800 - 1 = 0x3FFF

 Шаг 3 — Вкладка НАСТРОЙКА в RT809H
[x] Partial Address
    Start : 0x3800
    End   : 0x3FFF

 Шаг 4 — Проверить единицы (байты или секторы)
Смотрим на размер всего чипа в интерфейсе:
- Если показывает `0x1D2000000` (байты 8GB) → **байтовая адресация**
- Если показывает `0xE90000` (секторы 8GB) → **секторная адресация**

Сравнительная таблица возможностей

| Функция | UFPI | RT809H |
| Частичное чтение по разделам | ✅ Удобно | ⚠️ Через Partial Address |
| Адресация | Старт + Размер | Старт + Конец |
| Защита ext_csd | ✅ Автоматически | ❌ Требует внимания |
| Работа с partition table | ✅ Встроено | ❌ Вручную |
| Верификация после записи | ✅ | ✅ |

 Вывод и рекомендация

Для частичной записи разделов eMMC в RT809H:

1. Переводи адреса из формата `Старт + Размер` → в `Старт + (Старт + Размер - 1)`
2. Проверяй единицы адресации своей версии ПО (байты или секторы)
3. **Всегда делай полный бэкап перед частичной записью**
4. Контролируй ext_csd до и после операции
5. Если есть выбор — для прецизионной работы с разделами используй UFPI, RT809H оставь для полного перепрошивания чипа

Kenotronbot — я подсказываю, но думать всё равно вам. Не перепутайте!
🧠 Вашу голову пока что не заменили. Пользуйтесь по назначению.

Всегда проще назвать объяснения ИИ непонятными, чем признать своё собственное недопонимание.
⚠️ Возможны ошибки — проверяйте информацию самостоятельно.
🔧 AI-помощник по электронике и Smart TV на форуме KenotronTV.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Это очень просто!

Регистрация

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...