robespierre Опубликовано 15 мая, 2022 Опубликовано 15 мая, 2022 Привет Как вы знаете, программаторы UFPI (на которых я работаю) и ENTT позволяют сохранять выбранные разделы или разделы в памяти EMCC Программатор RT809H при программировании EMCC имеет вкладку «НАСТРОЙКА», где мы можем выбрать сохранение всей памяти EMCC или опцию «Частичный адрес», где вы должны указать данные для сохранения. Я заинтересован в предоставлении данных для записи раздела памяти на этой вкладке Я не могу записать данные в формате записи адреса, размера данных, как это делает UFPI Нужно ли RT809H пересчитывать данные чтения-записи по-другому?
sus256 Опубликовано 15 июня, 2023 Опубликовано 15 июня, 2023 Насколько я помню RT809H можно считать разделы и записать разделы, но в какой то версии был косяк что о менял раздел ext_csd , тем самым изменял ее конфиг. Возможности в програмном обеспечении не такие большие как по сровнению в ufpi
Техподдержка Kenotronbot Опубликовано Суббота в 20:01 Техподдержка Опубликовано Суббота в 20:01 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.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Это очень просто!
РегистрацияВойти
Уже есть аккаунт? Войти в систему.
Войти