Dingoo A320

Материал из Emuverse
Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0.

Dingoo A320 — портативный медиа-плеер с возможностью эмуляции игровых консолей. Выпускается компанией Shenzhen Dingoo Digital Co., Ltd. с марта 2009 года.

Технические характеристики

  • Процессор: Ingenic Jz4732 либо JZ4740 (по-видимому, это один и тот же чип) на тактовой частоте 300 МГц — System-on-Chip, архитектура MIPS
  • Память:
    • ОЗУ: 32 Мб SDRAM (2 × 16 МБ Elpida UPD45128163G5-A10-9JF, либо 2 × 16 МБ Hynix HY57V281620 — 4 Bank × 2M Word × 16 bits Synchronous DRAM, LVTTL, 166 MHz max)
    • Встроенная флеш-память: 4 Гб (2 × 2 МБ Samsung K9GA080U0MPCB0, либо 4 МБ Hynix H27UBG8U5MTR либо Samsung K9LBG08UOM — NAND Flash MLC)
  • Дисплей: 2,8 дюйма LCD с разрешением 320 × 240 при 16 млн цветов (Flexible Printed Circuit FPC-FTP280P04N-01 с драйвером ILI9325, для замены DealExtreme предлагает FPC-FTP280P04N-00 с драйвером ILI9331 [1]); Crystal TFT: THE GIP P4928QC1-1.0, 240RGBx320
  • Источник питания: аккумулятор LiIon 3,7В 1700 mAH; время работы без подзарядки — около 7 часов
  • Размеры: 125 × 55,5 × 14 мм
  • Слот MiniSD/SDHC: поддерживаются карты miniSD (официально — до 8 ГБ, реально использовались и 16 ГБ карты)
  • FM-тюнер: цифровой, в диапазоне 76—108 МГц, с функцией автопоиска, хранение до 40 настроенных частот
  • Выходы:
    • Гнездо наушников
    • Видеовыход на телевизор (AV-чип Chrontel 7024b) — видео + аудио, PAL/NTSC
    • USB 2.0 с коннектором формата mini-USB (USB-кабель прилагается), подзарядка от USB
  • Устройства управления:
    • На лицевой стороне слева: D-pad и кнопка Select; справа: кнопки X, Y, A, B и кнопка Start
    • На верхней стороне: кнопки-плечи L и R
    • На левой стороне: кнопка сброса и микрофон
    • На правой стороне: ползунок включения/блокирования, выход на наушники
    • На нижней стороне: встроенные микро-динамики, USB-порт, mini-SD слот, выход на ТВ

Firmware

Встроенное программное обеспечение (firmware) допускает обновление, и на официальном сайте выкладываются образы для обновления прошивки. Кроме «родных» прошивок доступен ряд модифицированных вариантов от сторонних разработчиков.[2]

Версии родной прошивки:

  • V1.01
  • V1.02
  • V1.03
  • V1.1 — май 2009, поддерживается русский язык
  • V1.20 — ноябрь 2009
  • V1.22 — поставляется с новыми A320 с декабря 2009
  • V1.3 — без англ. языка
  • V1.6 — июнь 2010

TO check your Dingoo LCD driver version: System setup->About, press "UP RIGHT DOWN UP RIGHT DOWN", then you can see the menue shows the LCD driver version and currently Battery Voltage.

Программное обеспечение

Имеется бесплатно доступный SDK, позволяющий разрабатывать для устройства собственные приложения.[3] SDK включает в себя библиотеку cygwin, кросс-инструменты (mipseltools), библиотеку s2d (содержащую упоминания копирайта компании Dingoo Games [4]) и техническую документацию к ней, а также эмулятор, для выполнения программ целевого устройства на ПК. Этот эмулятор, по всей видимости, не является точным эмулятором устройства, а лишь создаёт для пользовательской программы необходимое окружение.

Кроме «родного» SDK (не развивается с момента выпуска) существует «любительский» SDK для «родной» операционки, активно развивающийся.

µC/OS-II

«Родная» операционная система, используемая на устройстве (в официальных прошивках) — это µC/OS-II — ОС реального времени c поддержкой вытесняющей многозадачности.

Dingux

Энтузиастами выполнена работа по приспособлению Linux для A320, проект носит название Dingux. Под Dingux активно портируются программы с других систем.

Эмуляция

На данный момень (июнь 2010) не существует полноценных эмуляторов устройства.

Технические детали

Разработчиком Firmware является компания ChinaChip, см. ChinaChip — информация об основных форматах, используемых на Dingoo.

Карта памяти приведена в документе jz4740_03_emc_spec.pdf, стр. 3 "1.3 Physical Address Space Map".

За нажатия/отжатия кнопок отвечают биты в 32-разрядном слове состояния, доступном через функции kbd_get_key() и kbd_get_status():

Button:	Up	Down	Left	Right	A	B	X	Y	L	R	Select	Start	Power
Bit:	20	27	28	18	31	21	16	6	8	29	10	11	7
  • GPIO — использование пинов ввода/вывода Jz4740 в Dingoo A320
  • Coding for the Dingoo A-320(англ.) — статья об опыте программирования под Dingoo

Процесс начальной загрузки

  • На адреса 0x1FC00000-0x1FC01000 копируется On-chip Boot ROM (4KB).
  • BOOT_SEL[1:0] defines whether system boot from Nor or Nand flash and the page size when boot from Nand flash. BOOT_SEL[1:0] = 1 0 — Boot from 512 Byte page NAND flash; BOOT_SEL[1:0] = 1 1 — Boot from 2k Byte page NAND flash.
  • When system is configured to boot from NAND flash, after reset, the program in Boot ROM is executed and the program will copy the first 4K bytes of NAND flash to internal memory for further initialization.
  • ...
  • В память загружается ccpmp.bin по адресу 0x80004000
  • Управление передаётся на адрес 0x80004008
  • ...

Дамп сообщений на последовательный порт при загрузке родной ОС: [5]

NAND Booting… ECD755B6. 
to loader size = 0x00051670 
.00000114:1. 
OK 
NAND Loading… 
get ccpmp_config ok! 
ccpmp_config.firmware_name = A320.HXF ccpmp_config.update_key = 123, ccpmp_config.lcm.width = 320, ccpmp_config.lcm.height = 240. 
to loader normal mode… 
Creating ftl device… 
you go: EC D7 55 B6 78 
you go: 00 00 00 00 00 
you go: 00 00 00 00 00 
you go: 00 00 00 00 00 
OK. 
usb_connect = 0 
into lcd_init. 
to loader -- into lcd_init. 
into init_lcd_gpio. 
out init_lcd_gpio. 
to loader -- init_lcd_gpio ok. 
into Init_LCM_MOUDLE_ILI9325! 
out Init_LCM_MOUDLE_ILI9325! 
to loader -- to init_lcd_register ok. 
to loader -- out lcd_init. 
Start decode… 
OK 153602. 
out lcd_init. 
get_lcd_brightness -- VALUE = 3. 
D31 00001550:1.00002: is 1.len 0x 500000 
23a078 os_len = 0x. checksum = 0x0a232c05. 
1 - ret = 0 
2 - ret = 1 
Run image… 
c_main to enter------! 
kseg init OK! 
new to loader, system config ok! 
intc init OK! 
intc lib OK! 
the you is start

Ссылки