Jump to content

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


Recommended Posts

Posted

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

  • 1 year later...
Posted

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

  • 2 years later...
  • Technical support
Posted

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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...