Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

Вроде ноуты уж с ОЛЕДами...



медитировать над чем-то секретным на OLED,




"Понесли кроссовки Митю"(с)
Ежели в ригах-вильнюсах такое, то что уж о Средне-Русской возвышенности говорить...

Изменено пользователем Obam

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, repstosw сказал:

Требуется выбрать файл из списка кнопками вверх/вниз и запустить. После этого дисплей будет не нужен.

В таком случае можно ставить все, что угодно, лишь бы нужный текст влезал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Накидал демку с кубиком для V3s.

 

Сделал вначале с помощью TinyGL, но потом разочаровался - не поддерживается режим освещения граней вместе с текстурой: либо текстура без освещения, либо заливка в цвет с освещением. К тому же нет фильтрации текстур.

 

В моём рендерере(не TinyGL!) есть всё: текстуры + фильтрация + освещение. TinyGL пролетает )))

 

- Полностью софтовый рендерер
- Анимация засинхронизирована на кадровую развёртку (60 FPS)
- Частота процессора: 1200 МГц
- Частота памяти: 456 МГц
- Разрешение экрана: 800x480
- Глубина цвета буфера: 16 BPP (RGB 5:6:5)
- Размер текстур: 256x256
- Глубина цвета текстур: 24 BPP (RGB 8:8:8)
- Освещение: диффузная и спекулятивная составляющие (вторая даёт глянец)
- Отсечение невидимых граней

 

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, repstosw сказал:

Накидал демку с

Плата в данном видео с чего грузится? сд карты вроде не заметил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Плата в данном видео с чего грузится? сд карты вроде не заметил?

Приложение грузится в DDR-память самописанным загрузчиком через USB-OTG.  Текстуры куба - бинарно зашиты вместе с кодом приложения.

Сам загрузчик записывается перед этим с помощью утилиты sunxi-fel.

SD-карта не нужна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, repstosw сказал:

Приложение грузится в DDR-память самописанным загрузчиком через USB-OTG.

Не пробовали использовать SPI flash для загрузчика? Если да, есть отличие от записи бинаря на сд карту, там смещения и пр?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, mantech said:

есть отличие от записи бинаря на сд карту, там смещения и пр?

Смещение 0, формат тот же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

45 minutes ago, mantech said:

Не пробовали использовать SPI flash для загрузчика?

Не пробовал.  На плате Lichee Zero она не установлена, но подпаять можно. Пока не было необходимости.  Отлаживаю через USB, релизы - на SD.   Для  home or office use идёт.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 минуты назад, repstosw сказал:

Не пробовал.

Понятно, потом придется самому пробовать))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, mantech said:

Понятно, потом придется самому пробовать))

 

На предыдущем проекте с C6745 как раз была SPI-флеш 8-выводная.   Зашивал загрузчик с помощью программатора AVR-dude и какой-то программы.   Посекторно пишем просто бинарник частями с нулевого сектора, как уже сказал aaarrr:

 

1 hour ago, aaarrr said:

Смещение 0, формат тот же.

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13.05.2022 в 15:02, aaarrr сказал:

Смещение 0, формат тот же.

Приветствую. Попробовал записать загрузчик на spi флешку с 0го адреса - не стартует, хотя при загрузке того же самого файла по усб все запускается. По началу подумал, что КС не правильно рассчитывается, заменил 0ми, но усб загрузчик сразу указал на это, т.е. КС правильная. Сам контроллер после этого уже не запускает усб, т.е. от что-то там на флешке нашел, сигнатуру загрузчика или еще что - дебага загрузки из бутрома не предусмотрено. Кто знает может, в чем тут нюанс?

 

PS. В процессе выяснения причины определил, что прога таки запускается, но настройка клоков при загрузке по усб и флешке разная, т.е. проц работает на разных частотах, плюс непонятно почему не инициализируется уарт0, хотя при загрузке по усб все нормально...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/22/2022 at 11:49 AM, aaarrr said:

Используйте dmabuf. Нужно немного заправить libcedarc, чтобы получить файловые дескрипторы:

  Reveal hidden contents


diff --git a/include/sc_interface.h b/include/sc_interface.h
index d240bcf..648efd5 100755
--- a/include/sc_interface.h
+++ b/include/sc_interface.h
@@ -62,6 +62,8 @@ struct ScMemOpsS
     void *(*palloc_secure)(int /*size*/, void*, void*);
 
     unsigned int (*get_ve_addr_offset)(void);
+
+    int (*get_dmabuf_fd)(void *);
 };
 
 static inline int CdcMemOpen(struct ScMemOpsS *memops)
diff --git a/memory/ionMemory/ionAlloc.c b/memory/ionMemory/ionAlloc.c
index f949a13..42c698d 100755
--- a/memory/ionMemory/ionAlloc.c
+++ b/memory/ionMemory/ionAlloc.c
@@ -957,6 +957,37 @@ unsigned int ion_alloc_get_ve_addr_offset()
     }
 }
 
+int ion_get_dmabuf_fd(void *pbuf)
+{
+    unsigned long addr_vir = (unsigned long)pbuf;
+    buffer_node *tmp;
+    int fd = -1;
+
+    if (0 == pbuf) {
+        loge("NULL pointer\n");
+        return -1;
+    }
+
+    pthread_mutex_lock(&g_mutex_alloc);
+
+    if (g_alloc_context == NULL) {
+        loge("g_alloc_context missing\n");
+        pthread_mutex_unlock(&g_mutex_alloc);
+        return -1;
+    }
+
+    aw_mem_list_for_each_entry(tmp, &g_alloc_context->list, i_list)
+    {
+        if (tmp->vir == addr_vir)
+        {
+            fd = tmp->fd_data.aw_fd;
+            break;
+        }
+    }
+
+    pthread_mutex_unlock(&g_mutex_alloc);
+    return fd;
+}
 
 struct ScMemOpsS _ionMemOpsS =
 {
@@ -977,7 +1008,8 @@ struct ScMemOpsS _ionMemOpsS =
     setup:                ion_alloc_setup,
     shutdown:            ion_alloc_shutdown,
     palloc_secure:      ion_alloc_alloc_drm,
-    get_ve_addr_offset: ion_alloc_get_ve_addr_offset
+    get_ve_addr_offset: ion_alloc_get_ve_addr_offset,
+    get_dmabuf_fd:      ion_get_dmabuf_fd
 };
 
 struct ScMemOpsS* __GetIonMemOpsS()

 

которые затем скармливаются v4l2.

спасибо за патч, только пока не получилось поробовать. Если знаете подскажите, пожалуйста, я функцию ion_get_dmabuf_fd добавил в libavdevice/v4l2.c:

Spoiler

ffmpeg-v4l2-mod.png.25a15ecab2fd05fd2f187ff89c629c2c.png

но она определена в библиотеке libcedarc, а эта библиотека открывается dlopen функцией, которая определена в файле omx.c ffmpeg-а

и у меня не видится эта функция при компиляций

Spoiler

ffmpeg-compile-error.thumb.png.650e66e0561c3c5cd5b2a81cf87f4691.png

 

 

Изменено пользователем Niyaz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно сначала выделить буферы со стороны энкодера через AllocInputBuffer(), затем получить виртуальные адреса (GetOneAllocInputBuffer(), поле pAddrVirY полученного VencInputBuffer), далее:

dmabuf_fd = base_info.memops->get_dmabuf_fd(pAddrVirY);

(base_info  - структура VencBaseConfig, использующаяся при инициализации энкодера)

 

Не знаю, как все это подружить с libavdevice.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16.05.2022 в 14:02, mantech сказал:

Кто знает может, в чем тут нюанс?

Вообщем такая шляпа, при загрузке по усб уарт0 нормально инициализируется по стандартному алгоритму из spl, но если эту же программу записать на spi флешку или сд карту, программа стартует, работает gpio таймеры, контроллер прерываний, но уарт напрочь отказывается работать, такое впечатление, что нет тактировки, но все включено. Вообщем лыжи не едут, даже не знаю, что тут предположить, очень печально. Никак не думал, что способы загрузки так отличаются...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...