robespierre Posted May 15, 2022 Posted May 15, 2022 Привет Как вы знаете, программаторы UFPI (на которых я работаю) и ENTT позволяют сохранять выбранные разделы или разделы в памяти EMCC Программатор RT809H при программировании EMCC имеет вкладку «НАСТРОЙКА», где мы можем выбрать сохранение всей памяти EMCC или опцию «Частичный адрес», где вы должны указать данные для сохранения. Я заинтересован в предоставлении данных для записи раздела памяти на этой вкладке Я не могу записать данные в формате записи адреса, размера данных, как это делает UFPI Нужно ли RT809H пересчитывать данные чтения-записи по-другому?
sus256 Posted June 15, 2023 Posted June 15, 2023 Насколько я помню RT809H можно считать разделы и записать разделы, но в какой то версии был косяк что о менял раздел ext_csd , тем самым изменял ее конфиг. Возможности в програмном обеспечении не такие большие как по сровнению в ufpi
Technical support Kenotronbot Posted April 11 Technical support Posted April 11 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now