roboforum.ru

Технический форум по робототехнике.


Подготовка splash для показа во вермя загрузки ядра

Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 06 июн 2011, 14:46

Размещаю в наиболее близком (как мне показалось) разделе.
Перенесите если не прав.

Исходные условия:
есть устройство на процессоре ARM
на нем прошивка на основе Windows CE, во время загрузки ядра показывается splash, хочется его поменять.
есть возможность подключится к консоли, которая выглядит вот так
1) Ethernet Set
2) Boot Config
3) Image Update(USB and Serial)
4) Run Nand OS Image
5) H/W Test program down
6) data down
S) Save Config Data
D) Boot From NAND

Enter your selection:

Если войти в пункт 3 видим такое
Enter your selection: 3, 0x00000033


1) Bootloader Update
2) mboot Update
3) Boot Logo Update
4) OS Update
5) Format Nand (User data only)
6) Change Update Device(Serial)
F) Low-level format Nand
esc) Back


нажав 3
Enter your selection: 3

Waiting image download

есть возможность передать через COM порт изображение.
Размер изображения 640*480, 256 цветов, формат должен быть BMP
Сохраненное изображение из paint показывается через строчно и со смещением.

Теперь сам вопрос:
чем правильно подготовить или через что пропустить изображение для заставки?
Последний раз редактировалось telor 14 июн 2011, 10:29, всего редактировалось 1 раз.
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение setar » 06 июн 2011, 14:57

Черезстрочно и со смещением - это значит что не 640x480 а по горизонту на несколько пикселей меньше
я бы просто начал уменьшать картинку по горизонту по одному пикселю пока картинка не "выстроится".
Это и будет реальное разрешение
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 06 июн 2011, 15:17

Заливать пытаюсь программой ZOC (h__p://www.emtec.com/zoc/)
т.е. сначала в консоли в меню выбираю обновление Boot Logo Update, потом пробую передать изображение как бинарный файл.
Правильно ли я делаю?
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение setar » 06 июн 2011, 15:52

если что то меняется на экране после этого шаманства - то да, правильно.
нужно только формат подобрать
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение HarryStar » 06 июн 2011, 19:25

В начальной загрузки действительно сплюснутое изображение. Попробуйте 320х480 сделать. Т.е. сожмите изображение по горизонтали на 50%
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 07 июн 2011, 08:16

дальше шаманство не продвинулся,
углядел такую строку на похожем аппарате
Serial Tx format: size(4)+data(n)+cs(2)
о чем может говорит строка?
может
первые 4 байта - "размер"
второе - данные размера "размер"
третье - не знаю, подскажите.

надо как-то преобразовать файл bmp перед отправкой? Если да - то как?
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение setar » 07 июн 2011, 10:33

cs - check summ видимо
это формат передачи, с форматом хранения не имеет ничего общего.
bmp файл в общем случае обрабатывать не нужно, НО разные редакторы сохраняют его в разном формате, по крайней мере количество бит на одну точку (глубина цвета)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 07 июн 2011, 18:04

при выборе
3) Boot Logo Update
устройство не знает какого размера будет файл и вполне логично сначала получить размер, сам файл и его контрольную сумму - всё это одним потоком цифр.
Размер 4 байта - похоже что в формате 0х0000 без 0х
потом сам файл
потом - контрольную сумму
т.е. надо подготовить bmp файл, посмотреть его размер и дописать в начало в виде 4 байт, посчитать контрольную сумму и дописать в конце в виде 2 байт - похоже это на правду?
если да - то как подсчитать контрольную сумму, чтобы результат был в 2 байтах?
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение setar » 07 июн 2011, 18:29

нет, не нужно лезть в транспортный уровень
нужно подбирать размер горизонтильный до выстраивания картинки в столбик без диагонального сдвига
это будет размер x картинки
затем подбирать битность цвета чтобы по горизонту ровно одна строка влазила
ну а высоту самым последним делом подгонять
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 08 июн 2011, 16:28

шаманство привело вот к чему
есть файл bmp со splah параметры 640*480*256, размер 308 278 байт - назовем файл BMP
создал ещё два файла:
- один размером 4 байта который определяет размер, содержимое 40B40400 - назовем SIZE - размер файла BMP
- второй файл размеров 6 байт - назовем CS, пятый байт похож на контрольную сумму, содержимое 00000000F800
подключаюсь к консоли, в меню выбираю обновить и по очереди отправляю файлы в следующей очередности SIZE BMP CS
в консоли при этом следующее
1) Bootloader Update
2) mboot Update
3) Boot Logo Update
4) OS Update
5) Format Nand (User data only)
6) Change Update Device(Serial)
F) Low-level format Nand
esc) Back

Enter your selection: 3

Waiting image download
Download Size: 308282 Bytes
CheckSum: 0xF8
Calc Sum: 0xF8
+WriteBootAndConfig
ulPhysicalSector=400.

Boot Logo Update Done


1) Bootloader Update
2) mboot Update
3) Boot Logo Update
4) OS Update
5) Format Nand (User data only)
6) Change Update Device(Serial)
F) Low-level format Nand
esc) Back

Enter your selection:


В процессе обновления на экране железки сильно исковерканное изображение BMP - повернутое вокруг вертикальной ося, маленькое, не полностью и двоится, но это изображение не сохраняется и при перезагрузке - черный экран вместо картинки.

Может есть какие идеи?
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение setar » 08 июн 2011, 18:48

1 отправлять нужно один файл. последующие отправления тупо переписывают заголовок этого файла в том же адресе памяти выделенной под аплоад.
2 двойное изображение говорит о то что битность одной точки взята в два раза меньше нужной (в одну линию физики влазит две линии файла изображения)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Подготовка splash для показа во вермя загрузки ядра

Сообщение telor » 09 июн 2011, 14:19

Вариант соединить три файла в один - не удобен с точки зрения отладки

Вроде всё получилось, теперь:
отправляю по очереди три файла
- размер
- сам файл с изображением
- контрольная сумма
Сделал скрипт для ZOC - получилось достаточно удобно для отладки.
telor
 
Сообщения: 8
Зарегистрирован: 05 июн 2011, 01:45


Вернуться в mini2440

Кто сейчас на конференции

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