Например TDA7294

Форум РадиоКот • Просмотр темы - HDMI+Video видео карта + USB HOST
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср июн 19, 2019 01:37:54

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Чт июл 13, 2017 21:02:05 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Чт ноя 12, 2009 22:00:32
Сообщений: 36
Откуда: С луны упал.
Рейтинг сообщения: 0
В этой теме я предлагаю обсуждать использование НЕ ПО НАЗНАЧЕНИЮ серийно выпускаемой
дешевой (в моем городе в любом хозмаге по 12$) приставки с серийной прошивкой (из коробки)
на чипе MSD7T01 обладающей следующими характеристиками

Vendor - Поддельный OPENBOX HD DVB-T2 RECEIVER
MainBord - MSD7T01-T2-31 A1 (MSD7T01+PN8368+MXL608+R534)
CPU - mips34kf (CPU Speed 576 MHz)
RAM - DDR2 64Мб
SPI Flash - 4Мбайта
RS232 - для связи с внешним миром.
HDMI - Для подключения экрана (из бута работает не везде).
Video - Дублирует HDMI
USB Host - Уверено работает с Fat32, на форумах писали что тормозит с Fat16

Если припаять к пятакам RS232 на плате (если к компу, то USB-RS232 на PL2303 и подобных)
скорость - 115200; биты данных - 8; стоп биты - 1; чётность - нет; управление потоком - нет
то при старте, войдя в U-Boot (отправив любой символ на приглашение войти hello MDrv_FP_Init8||||||||||||||||||||||||||||||||||||||||||)
можно управлять устройством. Перечень команд можно посмотреть по команде help
а справку по каждой команде посмотреть введя help <имя команды>

Ниже приведу несколько примеров использования:

Пример использования N0 - Слив прошивки с устройства
- на тот случай если при экспериментах оригинал пострадает
- лицензия (если китайцы ее купили) блока декодирования звука каждого бут блока привязана к номеру процессора
о том что привязано можно посмотреть командой sysinfo
в моей приставке китайцы ничего не покупали, так что проверка вешается (зависает консоль) с текстом !!wrong ra!!
1) инит юсб
2) чтение корневого каталога USB флэхи
3) определение размеров SPI флэшки Total Size:0x00400000
4) чтение из SPI флэшки (по адресу 0x0, размером со всю флэшку 0x400000) в ОЗУ по адресу 0x80000000
5) Запись из ОЗУ (по адресу 0x80000000, размером со всю флэшку 0x400000) в файл XXXX.bin
6) отмонтирование USB

usb reset
fatls usb 0:1
spi_gfo
spi_rdc 0x80000000 0x0 0x400000
fatwrite usb 0:1 0x80000000 XXXX.bin 0x400000
usb stop

Пример использования N1 - Вывод текста на экран
1) Инициализация подложки (масштабируется/корявится на весь экран, видимая область около 1856х1058)
на разрешение 1920х1080
2) рисование квадрата цветом 0xF1F2F3 на всю видимую область (очистка экрана)
3) заливка точки красным цветом (0xFF0000) по координатам 400,400
точки рисуются на подложке но почему-то не рефрешат экран, экран рефрешется при рисовании квадрата
4) рисование квадрата зеленым цветом (0x00FF00) по координатам 300,300 размером 10,10
5) нарисовать фиолетовый прогресбар с 35%
6) написать синим цветом (0x0000FF) слово Privet по координатам 500,500
если 0 - ориентация как указана, а если 1 - то надпись центруется
формат нащупал методом тыка, с хэлпом не совпадает
7) полностью отключить видео выход

osd_create 1920 1080
draw_rect 1 1 1920 1080 F1F2F3
draw_pixel 400 400 FF0000
draw_rect 300 300 10 10 00FF00
draw_progress 600 600 FF00FF 35
draw_string 500 500 0000FF 0 Privet
osd_destroy

PS1) Теоретически набор команд можно запихнуть в файл скрипта, набрать команды просто в строчку,
разделение между командами два символа "; ", окончания команд маркируется несколькими 0x00,
положить файл на USB флэшку и дать команду выполнения скрипта с флэшки... но сам я пока это не проверял...

PS2) Если размер скрипта не так большой, от в SPI флэшке есть два пустых куска
0x00336200 - 0x0033FFFF размером с 0x00 9D FF
0x0037C000 - 0x0038FFFF размером с 0x01 3F FF
А если выкинуть Lzma архив от основной прошивки (если не планируется воспроизведение видео)
0x00050000 - 0x0033FFFF = Lzma архив c YAFFS filesystem от linux размером с 0x2E FF FF
то места достаточно, что бы не использовать USB флэшек вовсе, а для хранения скриптов (рисующих интерфейс пользователя)
обойтись встроенной SPI флэшкой.

Недостатки работы с графикой
1) Размер шрифта постоянен, хотите крупнее выбираеете меньшие размеры подложки, хотите мелче выбираете большие размеры
2) При подложке 1920х1080 часть подложки рисуется за границами видимости масштабируемой до разрешения видео выхода
т.е. картинка уходит в лево на 53 пикселя, уходит в право на 11, уходит в верх на 21, низ по кромке видимой области
3) U-Boot умеет показывать jpg картинки, но команд на их вывод в этой верии нету (в других видел draw_jpg)
4) нет команды копирования примитива из ОЗУ на подложку, было бы очень удобно собрать интерфейс из клипарта
а не рисовать его попиксельно (хотя бы RAW клипарта, про jpg пока и не мечтаю).

Пример использования N2 - работа с USB
1) инит юсб
2) чтение корневого каталога флэхи
3) Чтение из файла File1.txt в ОЗУ (по адресу 0x80000000)
4) Запись из ОЗУ (по адресу 0x80000000, размером 0x1000) в файл File2.txt
5) отмонтирование USB
xx) Содержимое ОЗУ можно читать-писать командами с RS232

usb reset
fatls usb 0:1
fatload usb 0:1 0x80000000 File1.txt
fatwrite usb 0:1 0x8000000 File1.txt 0x1000
usb stop

Недостатки работы с флэшкой
1) Не все 64мб ОЗУ под приложение пользователя. ОЗУ используется и для служебных целей U-Boot
Есть вероятность, что верхние адреса кудато мапятся или читаются младшие по кругу.
считать в файл можно и 64 мегабайта (пробовал и 128), но даже в 64 мегабайтах один и тот
же кусок повторяется раза 3, плюс три раза повторяется сохраненная U-Boot последняя введенная команда.
2) Вся работа с файлами через ОЗУ. Соответственно и размер файлов для записи им ограничен. Читать вроде можно кусками.
Имена файлов не более 8 символов.
3) нет команд форматирования флэшки и удаления файлов.

Общие недостатки.
1) чип MSD7T01 очень сильно греется, нужен вентилятор
2) исходного кода к этой системе НЕТ, но есть аналог https://github.com/Benjamin-Dobell/kogan-tv-gpl
3) U-Boot в прошивке чем то пожат и распаковывается в ОЗУ вне области доступа с команд чтения ОЗУ при старте
из чего он сделан удалось частично посмотреть = при распаковке гадит кусками в основном ОЗУ, туда же распаковывает jpg файл заставки.
4) Примерно то же можно получить использую плату на АРМ типа Orange, но
- Orange в нашей местности только под заказ,
- коробки в комплекте к Orange нет, а тут металлический корпус, в котором сбоку много места под свои довесы
- Orangeа потребляет больше энергии
- готового софта к Orange нет.
- Orange долго грузится и потом долго шатдаунится, а с этой платой готовность к работе менее 2х секунд.
- ИЗ коробки тремя командами по RS232 на экран текст используя Orange не вывести.

Для чего я это выложил?

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

2) делиться считанными файлами, искать менее глюкавый бут блок и U-Boot...

3) Для поиска единомышленников. Разобраться чем менять стартовую картинку на свою
(она пожата вместе с U-Boot и загружается загрузчиком), а если копать глубже,
то если разобраться чем пожат U-Boot, и дописать на асме вместо неиспользуемых команд
- вывод jpg (как писал выше, вывод jpg картинок на экран есть и работает, но с 232 не управляется)
- вывод из ОЗУ примитивов клипарта
как писал выше, девайс умеет выполнять файл скрипта (содержащего команды) САМ
и с МК надо просто запустить скрипт, который отрисует интерфейс пользователя, а в нужных местах самим вывести циферки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Вс авг 27, 2017 23:14:54 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Чт ноя 12, 2009 22:00:32
Сообщений: 36
Откуда: С луны упал.
Рейтинг сообщения: 0
методом тыка определил, что в прошивке моего тюнера
картинка (показываемая при старте) хранится по адресу 0x835F2004
(но есть и клоны)

Для теста решил подготовить свою картинку A2p.jpg
и командами с RS232 ее показать.
файл A2p.jpg размером = 32657 = 0x00007F91
7F91+4=7F95
а 4 байта до картинки (адрес 0x835F2000)
должны содержать ее размер +1
но в обратном порядке 92 7F 00 00,
хэкс редактором открываем наш джепег и дописываем
в начале это число, кидаем на флэшку файл,
втыкаем флэшку в приемник, входим в убот и набираем
в терминалке команды

usb reset
fatls usb 0:1
fatload usb 0:1 0x835F2000 A2p.jpg 0x7F95
osd_destroy
boot_logo 0 0 1 1
usb exit

пробуем с пнг A3p.PNG
Готовим 13963 = 368B = 8С 36 00 00
368B+4=368F

в терминалке команды

usb reset
fatls usb 0:1
fatload usb 0:1 0x835F2000 A3p.PNG 0x368F
osd_destroy
boot_logo 0 0 1 1
usb exit

но пнг не отобразился
(вывелся старый джепег из кэша по адресу 0x80000000)

Замеченные минусы:
в команде boot_logo 0 0 1 1
любые другие аргументы приводили к глюкам.
Картинки без глюков удалось выводить только после старта.
Если хоть раз переключиться на вывод текста и векторной графики
(запустить команду osd_create) то возврат к команде boot_logo
приводит к глюкам.


Вернуться наверх
 
JLCPCB, всего $2 за 10 ПП любого цвета!

Более 600 000 заказчиков по всему миру! Более 10 000 заказов в день!

Скидка до $20 на доставку для первого заказа:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Ср май 29, 2019 11:39:03 
Родился

Зарегистрирован: Вт май 21, 2019 13:36:36
Сообщений: 3
Рейтинг сообщения: 0
Моя приставка Selenga HD860D на сабжевом процессоре, с памятью W25Q32JVSIQ и неработающей поддержкой кодека АС3. Честно говоря не помню, работала ли она когда-либо(вроде проверяла, но это было давно), сейчас после неудачной перепрошивки точно не работает. Я даже завела тему по этому поводу на форуме dvbpro.ru, но там только послали к производителю, который даже ответил на запрос техподдержки, но технично замолчал после упоминания об идентичности прошивок с оффсайта для приставки с поддержкой ДД и без. В конце концов железка стоит около 1000р, не работает один кодек - ну и кот с ним, зато можно поупражняться в анализе прошивок. Напишу то, что накопала я, в частности как сменить загрузочную заставку в этой приставке, авось будет кому интересно т.к. информации в сети очень мало.

Внимание! Я так и не поняла, почему у меня не работает ДД, поэтому есть вероятность, что при модификации прошивки может слететь эта лицензия.

Файл прошивки, как уже упоминалось, содержит скрипт размером 4096 байт, саму прошивку флеша, и CRC32(всего файла, кроме последних 4 байт). Скрипт при прошивке через меню копирует во флеш данные из файла начиная со смещения 0х1000 и без контрольной суммы, далее речь именно о содержимом 25q32.
Прошивка состоит, как минимум, из трех секций. Секции различимы по круглым начальным адресам и обилию нулей между ними.

1) Смещение 0, размер – десятки КБ. Несжатые и незашифрованные код + данные (можно напрямую скармливать дизассемблеру).
1.1 Есть некая подсекция с заголовком длинной 100h, похожим на заголовок второй секции. Она расположена в конце первой секции, точно содержит функцию вычисления SHA256 и хеш второй секции. Похоже, здесь присутствует еще какая-то криптография, но я не уверена. Только эта подсекция присутствует в оперативке после загрузки U-boot, остальная часть 1) затерта.

2) U-boot, сжатый LZMA. Размер несколько сотен КБ, есть заголовок размером 0x100
0х00: Похоже на big-endian int32. По старшему байту 0х80 можно предположить, что адрес загрузки секции в память или что-то подобное. ХЗ на самом деле, что это.
0х04: что-то похожее на предыдущий пункт
0х08: little-endian int32. Размер секции вместе с заголовком.
0х0С: little-endian int32. Распакованный размер LZMA блока + некое число, в моем случае, 284. ХЗ что это за число, правильный размер распакованных данных есть в заголовке LZMA.
0x100: LZMA блок, легко узнаваемый по сигнатуре 5D 00 00

3) Сжатая LZMA основная программа с eCos. Имеется короткий заголовок 28байт, начинающийся с 0хDEADBEEF, затем big-endian int32 размер LZMA-блока и еще два big-endian int32, очень похожих на виртуальные адреса в оперативе (она начинается с 0x80000000). 0x1C - LZMA блок.

Итак, как сменить загрузочную заставку в приставке на MSD7T01.

Заставка содержится в U-boot т.е. второй секции. Надо вырезать сжатый блок в соответствии с размером из заголовка и распаковать его любым подходящим архиватором. Формат распакованного файла я не изучала, предполагаю, что его там нет и это просто скомпилированный бинарник. JPEG файл в нем можно легко найти по сигнатуре FF D8 FF в начале и FF D9 в конце, хранится он полностью, вместе с инфой о том, каким фотошопом нарисован ;). Перед джипегом присутствует размер самого джипега + 1 в виде LE int32. Здесь и начинается редактирование, опишу, как делала я, но возможно, что и немного по-другому будет работать. Берем свою любимую картинку, сохраняем в джипег с разрешением как у исходного файла, и записываем прямо вместо оригинального файла. До следующей секции есть немного места, забитого FF, так что не беда, если новая файл с новой картинкой получился немного больше, а если меньше, можно место после него на всякий случай забить FF, но это скорее для красоты. Далее нужно исправить размер, не забыв добавить единичку(ХЗ зачем она нужна и важна ли) и сохранить :).
Теперь исправленный У-бут надо снова запаковать, это можно легко сделать утилитой lzma в линуксе указав степень сжатия как у оригинала. Иногда (ХЗ когда и важно ли это) паковщик записывает в заголовок LZMA вместо распакованного размера FFFFFFF, в этом случае можно его вписать вручную.
Далее сжатый у-бут надо вписать в основной файл прошивки, опять же, тупо поверх оригинального. Можно дополнить нулями по вкусу, если новая секция получится немного меньше прежней. Далее надо исправить сжатый размер в заголовке второй секции (по смещению 0х08) вписав туда размер нового сжатого блока + размер заголовка. Распакованный размер остается прежним.

Теперь самое важное, если ошибиться в этом пункте, приставка наглухо кирпичизируется и пишет в консоли при загрузке только что-то вроде

BOOTSPI
BIST0_OK
_OK!decomp
_!

Ни USB флешки, ни UART в этом случае не помогут, и восстановить приставку можно только отпаяв память и зашив программатором.
Секция 1.1 содержит внутри себя SHA256 второй секции. В моем случае перед хешем имеется восьмикратное 0хDEADBEEF(little endian), по которому можно легко найти это место, сюда записывается вычисленный хеш при загрузке. В дизасме замечена функция их сравнения. Если ничего подобного нет, можно посчитать хеш оригинальной второй секции и поискать его в первой секции, байты в обратном порядке.
Так вот, нужно получить SHA256 всей новой второй секции вместе с заголовком, размер тот, который получился в заголовке, и в обратном порядке байт вписать его в 1 секцию. В любом случае, чтобы убедиться в правильности действий, лучше найти хеш оригинальной второй секции в оригинальной первой.
Собственно и все, ну или почти все. Если планируется прошивка через UART, можно заливать во флеш прошивку без начального скрипта и контрольной суммы. А если прошить хочется по USB через стандартное меню, нужно вычислить CRC32 от всего файла прошивки кроме последних четырех байт и полученное значение в обратном порядке записать в эти самые 4 байта.

Зачем я все это пишу?

Поделиться опытом.

Возможно, это поможет кому-то, чьи эстетические чувства оскорбляет оригинальная заставка.

А может сюда напишет кто-нибудь, кто понимает, как в этих приставках работает лицензия АС3 и как мне ее восстановить. Единственное, что я узнала по этому поводу: в 25q32 есть фича под названием Security Registers - это три 256-байтных регистра, независимых от основного массива памяти. В оригинальной флешке все три хранят какие-то значения, похожие на крипту, причем эти регистры залочены в ридонли соответствующими битами статус регистра. Еще мне кажется странным использование для контроля правильности распаковки загрузчика криптографической хеш-суммы вместо обычной CRC32 или уж, для надежности, CRC64. Можно предположить, что SHA служит для чего-то еще. Заранее прошу прощения за возможные ошибки и неточности в тексте.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Пн июн 10, 2019 09:07:19 
Родился

Зарегистрирован: Пн июн 10, 2019 08:59:53
Сообщений: 2
Рейтинг сообщения: 0
To Ari2
В прошивке DFTA40HD адреса похоже не совпадают с вашими, не могли бы ее посмотреть, где начинается lzma для приложения, и какова его длина?
https://cloud.mail.ru/public/4Zvw/547qfRERD


Вернуться наверх
 
Приглашаем на вебинар «Создание беспроводных устройств на системах-на-кристалле семейства SimpleLink компании TI»

Компания Компэл, совместно с Texas Instruments приглашают 26 июня принять участие в вебинаре, где инженер по применению беспроводных технологий компании TI расскажет, как на новых беспроводных системах можно реализовать несколько полезнейших в повседневной жизни функций для ваших устройств.
С развитием элементной базы TI становится возможной реализация более удобных, функциональных и безопасных систем, недоступных ранее.
Вебинар проводит инженер по применению беспроводных технологий в TI Мари Хернес(будет дублированный перевод).
Подробнее>>
Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Ср июн 12, 2019 21:18:04 
Родился

Зарегистрирован: Вт май 21, 2019 13:36:36
Сообщений: 3
Рейтинг сообщения: 0
LZMA еще может начинаться с 6С 00 00, ваш файл - как раз такой случай. Для поиска известных форматов в прошивках очень подходит утилита binwalk, вот ее вывод для вашего файла

DECIMAL HEXADECIMAL DESCRIPTION
_______
39456 0x9A20 SHA256 hash constants, little endian
62720 0xF500 LZMA compressed data, properties: 0x6C, dictionary size: 524288 bytes, uncompressed size: 405280 bytes
200704 0x31000 JPEG image data, EXIF standard
200716 0x3100C TIFF image data, big-endian, offset of first image directory: 8
207862 0x32BF6 Copyright string: "Copyright (c) 1998 Hewlett-Packard Company"
262184 0x40028 LZMA compressed data, properties: 0x6C, dictionary size: 8388608 bytes, uncompressed size: 33554432 bytes
3624960 0x375000 LZMA compressed data, properties: 0x6C, dictionary size: 8388608 bytes, uncompressed size: 1070100 bytes

адреса есть, с размером сложнее. Некоторые архиваторы просто не ругаютя на данные после коца архива. Если у вас не такой
1) после конца архива обычно есть нули и конец данных просто виден в нех-редакторе. Если распаковка ругается на неожиданный конец архива, добивить нулевой байт в конец.
2) в виндовом 7zip можно открыть архив "с хвостом" и нажать тестировать, после окна с ошибкой в соотв. столбце появляется правильный размер архива. Ну или при обычном извлечении убить процесс не закрывая окно ошибки - файл остается.

Далее надо думать исходя из того, что вы понимаете под приложением и что вообше хотите сделать с прошивкой. Первая секция - mboot, во второй и третьей похоже есть признаки rtos.


Вернуться наверх
 
Старт складской программы по Wi-Fi/Bluetooth-чипам ESP8266 и ESP32 от Espressif

На склад КОМПЭЛ поступили чипы, модули и отладочные платы от компании Espressif Systems на базе ESP8266 и ESP32. Стоимость всех изделий данной линейки - в 2-3 раза ниже ближайших аналогов, чипы занимают минимальное место на плате, энергоэффективны и универсальны в применении.
Продукция компании популярна как среди инженеров-любителей, так и в среде разработчиков-профессионалов, которые уже смогли по достоинству оценить её качество.
Подробнее...
Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Пт июн 14, 2019 07:35:49 
Родился

Зарегистрирован: Пн июн 10, 2019 08:59:53
Сообщений: 2
Рейтинг сообщения: 0
To Ari2: Спасибо за подсказку, распаковать получилось, длина архива 0x334850
Но при обратном сжатии не получается такой же файл, начало у него 0x5D0000
Какие ключи вы используете в lzma (linux) ?
https://cloud.mail.ru/public/6UR1/58dfuQHux
https://cloud.mail.ru/public/o5TD/4b8Pn9EMv


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: HDMI+Video видео карта + USB HOST
СообщениеДобавлено: Пт июн 14, 2019 14:56:50 
Родился

Зарегистрирован: Вт май 21, 2019 13:36:36
Сообщений: 3
Рейтинг сообщения: 0
Современными обычными версиями lzma и xz точно такой не получить. lzma не поддерживает опции, а xz не хочет писать размер в заголовок. Попробуйте для начала просто соблюсти размер словаря: lzma -k7 , не думаю, что опции критичны. Если нет, попробуйте приложенный lzma: (надеюсь, меня не забанят за это, файл выдран из OpenWrt)
lzma e -d23 -lc0 -lp2 -pb2 data data.lzma

об устройстве lzma архивов можно почитать man xz и https://svn.python.org/projects/externa ... format.txt


Вложения:
pw=1234.zip [50.4 KiB]
Скачиваний: 6
Вернуться наверх
 


Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y