Войти
ФлеймФорумЖелезо

Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?

Страницы: 1 2 319 20 Следующая »
#0
11:24, 11 июня 2020

Любителям "Треугольничка, дарящего людям радость" посвящается!

Предшественник: https://gamedev.ru/flame/forum/?id=246512

Раскурил  Allwinner A13 SoC на уровне голого железа. Всем известно, что эти камни исключительно проталкиваются для линукса, ведра и прочей хрени.  Доки не дают и с девтулзами всё через одно место...

Дофига времени потратил, но своего достиг: запустил и настроил ядро, нужную периферию.
Время: около 1 месяца.

Только Bare-metal, не ищите здесь линукс или ведро - их тут по-просту нет!

Самый тяжелый эмулятор из 2D - GBA теперь идёт с 60 FPS и ровным звуком.

Видео в действии: https://www.youtube.com/watch?v=zXyjdnBK-Go

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
1 | Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?

2 | Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?


screenshot | Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?    screenshot2 | Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?

Как оно идёт на DSP C6745: https://www.youtube.com/watch?v=ulLPALpHOGk

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1
11:32, 11 июня 2020

AlienWare уделал DNS

#2
12:59, 11 июня 2020

> Я осознал, что времени на BareMetal с A13 будет потрачено в десяток раз больше, чем освоение того же TMS320C6745 (DSP игровой консоли BlackPrism).
> В итоге, мы предпочли "белый" чип (открытой с документацией и BareMetal-уклоном).

В любом случае грац. Но почему? Мегагерцы таки оказались важнее? Или это чисто тестовый проект?

#3
13:34, 11 июня 2020

Gradius
> Только Bare-metal, не ищите здесь линукс или ведро - их тут по-просту нет!

И с тем же Mail 400 через порты ввода-вывода работа идёт? Интересно - это где то доки всё-таки есть или ядро линукса расковырять пришлось чтобы понять что и как?

#4
14:18, 11 июня 2020

Gradius
> Только Bare-metal, не ищите здесь линукс или ведро - их тут по-просту нет!
Это как? А как без ОС программы запускать?

#5
14:32, 11 июня 2020

kipar

> Но почему? Мегагерцы таки оказались важнее?
Мегагерцы, память, нормальный SIMD (если автор его включил).

#6
(Правка: 14:45) 14:34, 11 июня 2020

В этом топике (2019г) один из разработчиков высказал свои ощущения от применения похожего аппаратно железа (Raspberry Pi Zero W)

РасПай и Колибри

Этим летом пришлось (по долгу службы) близко познакомиться с RaspberryPi ZeroW
- это просто монстр какой-то,
а по внешнему виду даже и не подумаешь что он реально крут.
...

P.S. Nintendo Switch аппаратно тоже где то близок таким решениям. :)

А как у реализованного решения бюджет с потреблением мощности в сравнении с DSP?

#7
14:44, 11 июня 2020

kipar
> > Я осознал, что времени на BareMetal с A13 будет потрачено в десяток раз
> > больше, чем освоение того же TMS320C6745 (DSP игровой консоли BlackPrism).
> > В итоге, мы предпочли "белый" чип (открытой с документацией и
> > BareMetal-уклоном).
>
> В любом случае грац. Но почему? Мегагерцы таки оказались важнее? Или это чисто
> тестовый проект?

Я от своих слов не отказываюсь. Освоение этого камня действительно заняло на порядок(десятичный) больше времени, чем на освоение TMS320C6745.  Чтобы хоть как-то выиграть время, было принято решение провести эксперимент на готовой отладочной плате, а не паять свою.

Тут у нас 960 МГц ядро и 408 МГц память.
У C6745  456 МГц ядро и 152 МГц память.

Чисто субьективно производительность выше в 2,5 - 3 раза.  Скорее всего за счёт высокой пропускной способности внешней памяти и более быстрого вычислительного ядра.

Эмулятор GBA является трудноподдающимся эмулятором, так как портабельный С-код (без ассемблерных замашек) требует высокой производительности от эмулирующей платформы.

Это чисто эксперимент, чтобы не закиснуть от коронавирусных страшилок!

Развитие игровой консоли BlackPrism на базе C6745 ПРОДОЛЖАЕТСЯ! Пишется игра под неё.
Эта же игра идёт уже и на A13.

#8
14:49, 11 июня 2020

=A=L=X=
> И с тем же Mail 400 через порты ввода-вывода работа идёт? Интересно - это где
> то доки всё-таки есть или ядро линукса расковырять пришлось чтобы понять что и
> как?

Mali 400 тут вообще не используется. Чисто 2Д-графика с софтовым рендерером эмулятора.  Из аппаратных возможностей для графики используются: фреймбуфер, DMA и переключение видео-страниц (fliper).

Да, пришлось расколупать BSP линукса под этот чип. Но я это делал не один, а ещё с одним человеком (за что ему огромное спасибо!).

На самом деле там ничего сложного нет!  На STM32 похож. Только нет документации кроме даташита на регистры.
Вся документация - это сорцы линукса и дизассемблированные бутлодеры. Ищутся на github.

#9
(Правка: 15:12) 14:57, 11 июня 2020

Panzerschrek[CN]
> Это как? А как без ОС программы запускать?

Написал свой загрузчик, который с SD-карты читает во внешнюю память код эмулятора и грузит его в начало памяти по адресу 0x40000000 (начало DDR SDRAM).

Помимо этого, загрузчик делает следующие вещи:

1) устанавливает частоту ядру 960 МГц

2) разрешает тактирование нужной периферии

3) инициализирует внешнюю DDR3  память и устанавливает ей тактовую 408 МГц

4) настраивает и включает MMU в упрощённом режиме ( виртуальный адрес = физическому): включает кеширование и буферизацию нужным регионам памяти

5) инициализирует кеш данных/программ L1 и включает кеш L2.

6) включает предсказание переходов

7) инициализирует порт SDIO для SD-карты

8) поддержка FAT 12,16,32 у SD-карты

9) Поддержка отладки по UART (связь с ПК)

10) Разрешает floating point и NEON

11) Переносит таблицу прерываний в нужное место

Загрузчик можно записать на бут-сектор СД карты (будет стартовать при включении питания A13) или передать во внутреннюю память через USB (A13 может принимать программу Boot0 SPL через USB при включении - это и есть мой загрузчик!).

Фсё!  Разработка софта ведётся на ПК.  Девелопить можно как под виндой, так и под линуксом.

Пробовал тулчейны:

1) GCC arm none eabi последней версии (9-я)
2) ARMCLANG v.6  в составе Keil ARM MDK 6.
3) IAR EWARM v.7.7 или 8.5

Первый оказался не только бесплатным, но и быстрым!

#10
(Правка: 15:04) 15:02, 11 июня 2020

KPG
> Этим летом пришлось (по долгу службы) близко познакомиться с RaspberryPi ZeroW
> - это просто монстр какой-то,
> а по внешнему виду даже и не подумаешь что он реально крут.

Orange Pi, Lichee Pi, Banana Pi - кучи их!

У меня на подходе плата с Allwinner v3s - тут уже 1,5 ГГц  (у A13 всего 1 ГГц) + встроенная DDR на 64 МБ. И QFP-корпус!

Консоль на одном чипе!

Планирую его раскурить (надеюсь что принципы у v3s аналогичные как у A13, хотя карта памяти различается).

Брал у этого продавца: https://aliexpress.ru/item/33021459494.html

s | Allwinner A13 SoC уделал DSP C6745. Смеяться или плакать?
#11
15:03, 11 июня 2020

Ну круто, что. Оказывается этот проц может не только книжки с e-ink экраном тянуть

#12
(Правка: 15:10) 15:06, 11 июня 2020

0iStalker
> Ну круто, что. Оказывается этот проц может не только книжки с e-ink экраном
> тянуть

У него полноценный фреймбуфер со своей видеопамятью  с произвольным доступом.  До 4 аппаратных слоёв с полупрозрачностью и цветовым ключём.

Из существенных минусов: один вектор прерывания!!!  Приходится в обработчике делать сепарацию программно!
Плюс вложенные прерывания возможны, но надо ручками пилить. По умолчанию недоступны.

#13
15:22, 11 июня 2020

KPG
> А как у реализованного решения бюджет с потреблением мощности в сравнении с
> DSP?

Чудес ждать не приходится и физику не на***шь, подозреваю потребление будет выше, чем у C6745.

Для стационарной консоли это не критично, питание из розетки.
Для портативной - литиевый-аккумулятор  с емкостью от 3 А*ч (лучше больше)

#14
15:58, 11 июня 2020

Gradius

Так у тебя все в secure mode живёт?

Страницы: 1 2 319 20 Следующая »
ФлеймФорумЖелезо