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

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

5 hours ago, sasamy said:

он просто так не будет орать

https://github.com/raspberrypi/pico-sdk/issues/1029#issuecomment-1324889474

Вот здесь об этом рассказано  по-лучше:

https://www.redhat.com/en/blog/linkers-warnings-about-executable-stacks-and-segments

Ему не нравятся, что  конструкторы и деструкторы были описаны в отдельных блоках.  Когда их разместил в .text, то предупреждение исчезло:

.text    : 
  {

  *(.text*)

  . = ALIGN(4);
  PROVIDE_HIDDEN (_ctors_start = .);
  KEEP (*(SORT(.ctors.*)))
  KEEP (*(.ctors*))
  . = ALIGN(4);
  PROVIDE_HIDDEN (_ctors_end = .);

  . = ALIGN(4);
  PROVIDE_HIDDEN (_dtors_start = .);
  KEEP (*(SORT(.dtors.*)))
  KEEP (*(.dtors*))
  . = ALIGN(4);
  PROVIDE_HIDDEN (_dtors_end = .);
 } > ROM

Мне кажется, что этот 13-й GCC слишком предвзятый.  Какие атаки могут быть на сегменты, которые выполняются в Bare Metal? :lol:

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

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


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

А сделать для таких .gnu.warning.* секций раздел DISCARD в линк скрипте?

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


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

29 minutes ago, GenaSPB said:

А сделать для таких .gnu.warning.* секций раздел DISCARD в линк скрипте?

Не помогло. Скорее всего линковщик первее выдает предупреждения, а не смотрит что в линкер-скрипте.

/* remove the debugging information from the standard libraries */
 DISCARD : {
            .gnu.warning.* 
            libgcc.a ( * )
            libc.a ( * )
            libc_nano.a ( * )
            libm.a ( * )
            libm_nano.a ( * )
            libstdc++.a ( * )
           }

 

Вот тут схожая проблема:

https://stackoverflow.com/questions/73429929/gnu-linker-elf-has-a-load-segment-with-rwx-permissions-embedded-arm-project

https://github.com/raspberrypi/pico-sdk/issues/1029

Лучше бы они ничего не меняли...

Конечно, можно линкеру приписать -Wl,--no-warn-rwx-segments   и забыть... Но я слишком педантичен, чтобы это оставлять.

38 minutes ago, repstosw said:

Когда их разместил в .text, то предупреждение исчезло:

Ещё такой вариант не приводит к появлению предупреждения:

.ctors :
 {
  . = ALIGN(4);
  PROVIDE_HIDDEN (_ctors_start = .);
  KEEP (*(SORT(.ctors.*)))
  KEEP (*(.ctors*))
  . = ALIGN(4);
  PROVIDE_HIDDEN (_ctors_end = .);
 } > RAM AT > ROM

 .dtors :
 {
  . = ALIGN(4);
  PROVIDE_HIDDEN (_dtors_start = .);
  KEEP (*(SORT(.dtors.*)))
  KEEP (*(.dtors*))
  . = ALIGN(4);
  PROVIDE_HIDDEN (_dtors_end = .);
 } > RAM AT > ROM

 

Задача называется "обмани линкер"

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

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


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

On 10/11/2023 at 2:14 PM, repstosw said:

Лучше бы они ничего не меняли...

можно вернуть как было - собирать линкер без этих варнингов

Quote

It is also possible to build the linker with either or both of these options disabled by default. This is done by using the --enable-warn-execstack=no and/or --enable-warn-rwx-segments=no configure time options.

в crosstool-ng можно через меню добавить
 

Quote

 

./ct-ng menuconfig

 

Binary utilities  --->
(--enable-warn-rwx-segments=no --enable-warn-execstack=no) binutils extra config

 

 

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

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


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

Требуют секцию .gcc_except_table.  Несмотря на то, что компилирую с ключами:

-fno-rtti -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fomit-frame-pointer -fno-threadsafe-statics

C++ конечно.

Разместил секцию в LD-скрипте. Всё работает.  Но неприятно, что ключи проигнорировались. Где-то в недрах libstdc++ наверно эти исключения используюстя.

Надо бы им ещё сделать libstdc++_nano 🤣

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


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

6 hours ago, sasamy said:

./ct-ng menuconfig

Binary utilities  --->
(--enable-warn-rwx-segments=no --enable-warn-execstack=no) binutils extra config

+

Quote

cd ./overlays

mkdir xtensa_hifi4

tar -xf xtensa_hifi4.tar.gz -C xtensa_hifi4

find ./xtensa_hifi4 -type f -print0 | xargs -0 sed -i '/#define XSHAL_ABI/c\#define XSHAL_ABI XTHAL_ABI_CALL0'

+

Quote

Для этого пришлось изменить макрос stub_warning(name), превратив его в ничто: https://github.com/espressif/newlib-esp32/blob/esp_based_on_4_1_0/libgloss/libnosys/warning.h#L40

Пересобрал тулчейн для Win32 с вышеуказанными опциями.  Доволен. Работает в ABI=call0.  Нет никаких тупых предупреждений.

Можно переключать на Windowed (-mabi=windowed, -Wl,--abi-windowed), но библиотеки для этого режима надо пересобирать, или взять их с тулчейна, выложенного sasamy.

 

Разобрался, как  в ct-ng делать сохранение.  У меня он завешивает комп постоянно на билдах, много времени убил прежде чем включить сохранение:

https://stackoverflow.com/questions/9900005/is-it-possible-to-speed-up-crosstool-ng-builds-once-errors-have-occured

Quote

for ct-ng menuconfig, config Paths and misc options like this

───────────────────── Paths and misc options ─────────────────────
[*] Debug crosstool-NG
[ ]   Pause between every steps
[*]   Save intermediate steps
[*]     gzip saved states
[*]   Interactive shell on failed commands

Восстанавливаться:

Quote

./ct-ng list-saves

...список стейтов...

./ct-ng предпоследний стейт+

 

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

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


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

С последними конфигами libm, libm_nano криво строится: не хватает некоторых функций.  С предыдущими либами из newlib (по ссылке от японца) проект успешно строился.

Криво работают зависимости между библиотеками. Нижеприведённые функции есть в libgcc, которая почему-то лежит не в стандартном пути lib, а в другом месте:

...GCC_HiFi4\lib\gcc\xtensa-hifi4-elf\13.2.0

Все эти функции есть в libgcc.a.  Но при компоновке, линковщик их не хочет брать.

 

Перепробовал все  последовательности  указания либ.  Эффекта не даёт: линкер считает, что этих функций нет:

image.thumb.png.1a09f1919f61471b282faa97476a1407.png

 

При этом если сделать так:

extern float __addsf3(float a,float b);
extern int __fixsfsi(float a);

int main(void)
{
 printf("\nHiFi4 DSP ... %f\n\n",__addsf3(__fixsfsi((float)AVS_CNT0_REG),(float)AVS_CNT1_REG));
//...

То проект успешно собирается.

Предполагаю, что это происходит из за /DISCARD/ в LD-скрите или флагов:  -nostartfiles  -ffreestanding

Наверное пора make-файл писать вместо батника. Иначе с зависимостями между библиотеками  как-то не гибко... :boredom:

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

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


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

On 10/12/2023 at 7:45 AM, repstosw said:

Перепробовал все  последовательности  указания либ. 

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

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


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

20 minutes ago, sasamy said:

что за мода скидывать логи картинками ?

Перенаправление в файл работает на результат:

Spoiler
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/lib\libm.a(libm_a-sf_lrint.o):(.literal+0x4): undefined reference to `__addsf3'
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/lib\libm.a(libm_a-sf_lrint.o):(.literal+0x8): undefined reference to `__subsf3'
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/lib\libm.a(libm_a-sf_lrint.o):(.literal+0xc): undefined reference to `__fixsfsi'
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/lib\libm.a(libm_a-sf_lrint.o): in function `lrintf':
/home/tux/crosstool-NG/.build/HOST-i686-w64-mingw32/xtensa-hifi4-elf/src/newlib/newlib/libm/common/sf_lrint.c:69:(.text+0x4e): undefined reference to `__addsf3'
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: /home/tux/crosstool-NG/.build/HOST-i686-w64-mingw32/xtensa-hifi4-elf/src/newlib/newlib/libm/common/sf_lrint.c:70:(.text+0x60): undefined reference to `__subsf3'
C:/GCC_HiFi4/bin/../lib/gcc/xtensa-hifi4-elf/13.2.0/../../../../xtensa-hifi4-elf/bin/ld.exe: /home/tux/crosstool-NG/.build/HOST-i686-w64-mingw32/xtensa-hifi4-elf/src/newlib/newlib/libm/common/sf_lrint.c:84:(.text+0x8c): undefined reference to `__fixsfsi'
collect2.exe: error: ld returned 1 exit status

 

 

20 minutes ago, sasamy said:

я на картинке не вижу -lgcc

Ничего не дало. Картику обновил.

 

Строка сборки:

Spoiler
xtensa-hifi4-elf-gcc -nostartfiles -u_printf_float -Llibhal -Llibjpeg8 -Llibspeexdsp -Llibcelt -T hifi4.lds -Wl,-Map=main.map,--cref -Wl,--defsym,cache=1 -Wl,--gc-sections -Wl,--static -Wl,--strip-all ^
-o main.elf ^
 ^
startup_s.o ^
....
 ^
main.o ^
 ^
-lgcc -lm -lc -lnosys -lhal -ljpeg8 -lspeexdsp -lcelt

 

Секция DISCARD:

/* remove the debugging information from the standard libraries */
 DISCARD : {
            libgcc.a ( * )
            libc.a ( * )
            libc_nano.a ( * )
            libm.a ( * )
            libm_nano.a ( * )
            libstdc++.a ( * )
            libnosys.a ( * )
           }

 

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

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


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

52 minutes ago, sasamy said:

а так если

-lgcc -lm -lgcc

Не собирает.

Нашёл правильный порядок следования библиотек. lgcc.a с включенной секцией /DISCARD/ вообще не нужно указывать.  Строка сборки:

xtensa-hifi4-gcc -nostartfiles -nostdlib -nodefaultlibs -ffreestanding -ftree-vectorize -fno-math-errno ^
-u_printf_float -Llibhal -Llibjpeg8 -Llibspeexdsp -Llibcelt -T hifi4.lds -Wl,--gc-sections -Wl,--static -Wl,--strip-all ^
 ^
startup_s.o ^
startup_c.o ^
...
main.o ^
-o main.elf -Xlinker -Map=main.map ^
-ljpeg8 -lspeexdsp -lcelt -lhal -lm_nano -lc_nano -lnosys

С выключенной секцией DISCARD:

%TOOLCHAIN%gcc -nostartfiles -nostdlib -nodefaultlibs -ffreestanding -ftree-vectorize -fno-math-errno ^
-u_printf_float -Llibhal -Llibjpeg8 -Llibspeexdsp -Llibcelt -T hifi4.lds -Wl,--gc-sections -Wl,--static -Wl,--strip-all ^
 ^
startup_s.o ^
...
main.o ^
-o main.elf -Xlinker -Map=main.map ^
-ljpeg8 -lspeexdsp -lcelt -lhal -lm_nano -lgcc -lc_nano -lnosys

При этом важно, чтобы libgcc было после libm_nano. Иначе не собирается.  В обоих случаях - пользовательские библиотеки должны быть указаны раньше стандартных.

Проект заработал в обоих случаях. Размер бинарника одинаковый.

 

Собранный тулчейн для 32-битный винды (ABI call0, GCC v. 13): https://drive.google.com/drive/folders/1khQNuruBZ6ZkPVVlw2zFr7fz6VLOoFjg

С удалёнными ворнингами линковщика и libnosys.a.  Там же и пересобранная либа libhal.a

 

Скрипт для линкера (на адреса памяти DDR, в скрипт должна передаваться переменная cache = 0,1):  hifi4.lds

-Wl,--defsym,cache=1

 

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

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


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

On 10/12/2023 at 11:20 AM, repstosw said:

Не собирает.

Нашёл правильный порядок следования библиотек.

можно не искать а посмотреть как собирает gcc

#include <math.h>
#include <stdio.h>

float _tst(float a, float b)
{
  return sin(a * b);
}

int main()
{
  printf("%f", _tst(3.14, 0.234));
  return 0;
}

использовать штатные specs и флаг -v для разговорчивости gcc

Quote

./xtensa-t113-elf-gcc -v 1.c --specs=nano.specs --specs=nosys.specs -lm

интересное тут

Quote

-lm_nano -lgcc -lc_nano -lgcc --start-group -lgcc -lc_nano -lnosys --end-group --start-group -lgcc -lc_nano -lnosys --end-group

 

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

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


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

5 hours ago, sasamy said:

интересное тут

Quote

-lm_nano -lgcc -lc_nano -lgcc --start-group -lgcc -lc_nano -lnosys --end-group --start-group -lgcc -lc_nano -lnosys --end-group

 

Кольцевые зависимости.  Впервые с этим сталкиваюсь именно в этом тулчейне.

https://stackoverflow.com/questions/5651869/what-are-the-start-group-and-end-group-command-line-options

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


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

Пришлось временно вернуться к V3s. Провёл ревизию и кастомизацию узла захвата изображения с камеры OV5640 с MIPI CSI2 и H264 кодера.

Выжал 1920x1080@30FPS. Пришлось поднять битрейт MIPI-лейнам до 500 Мбит/с (по умолчанию 400, максимум 1000).

Также нашёл и устранил багу в сорцах H264 кодера, которая некорректно устанавливала размер дополнительных буферов, что приводило к падению программы на больших резолюшенах.

И кстати, схема захвата кадров с камеры (CSI) у V3s не имеет двойной буферизации. Возникла задача: как читать буфер кадра, чтобы он не накрывался новыми данными (захват работает и пишет в буфер непрерывно, когда камера в потоковом режиме - VCAP).  Иначе несколько строк сверху в кадре брались от нового захвата.

Для этого нужно использовать два прерывания от CSI:  VSYNC_TRIG и FRAME_DONE.  Когда приходит первое - меняем адрес буфера, когда приходит второе - читаем предыдущий буфер.  В этом случае данные при чтении не накрываются новыми.

Если же использовать одиночный захват кадра с камеры (SCAP вместо VCAP), то максимально достижимый FPS будет в 2 раза меньше, чем у VCAP. Так как в этом режиме схема захвата ждёт прихода нового кадра и пропускает текущий.

На 1920x1080 H264 кодер вывозит сжатие на 63 ... 70 FPS (зависит от картинки, установлен уровень квантования QP=24).

Лог в спойлере:

Spoiler
=== V3s OV5640 Camera @ MIPI CSI2 ===
sensor write retry=1
Width: 1920, Height: 1080
VE version 0x1681 opened
Formatting...
Disk Format OK!
Disk Mount OK!
Disk Label OK!
Encoding...

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.2 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.7 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    70.2 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    70.1 FPS 14.3 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.1 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.9 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.1 FPS 14.5 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    68.8 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.3 FPS 14.6 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    68.2 FPS 14.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    67.7 FPS 14.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    66.2 FPS 15.1 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    65.9 FPS 15.2 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.6 FPS 15.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.1 FPS 15.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    65.0 FPS 15.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.7 FPS 15.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.1 FPS 15.6 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.4 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.8 FPS 15.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.9 FPS 15.9 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    62.9 FPS 15.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.7 FPS 16.0 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.7 FPS 16.0 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    62.8 FPS 15.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.9 FPS 15.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.1 FPS 15.9 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    62.8 FPS 15.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    62.7 FPS 16.0 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.1 FPS 15.9 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.7 FPS 15.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.4 FPS 15.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.8 FPS 15.7 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    64.6 FPS 15.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.1 FPS 15.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.8 FPS 15.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    65.3 FPS 15.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.7 FPS 15.2 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    66.8 FPS 15.0 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    66.9 FPS 14.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.0 FPS 14.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    67.9 FPS 14.7 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    68.3 FPS 14.6 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.2 FPS 14.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.1 FPS 14.7 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    68.1 FPS 14.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.2 FPS 14.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    67.8 FPS 14.7 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    66.4 FPS 15.1 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.7 FPS 15.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.6 FPS 15.5 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.5 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.1 FPS 15.8 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.3 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.4 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.4 FPS 15.8 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    61.7 FPS 16.2 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.1 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.5 FPS 15.8 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.5 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.7 FPS 15.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.6 FPS 15.7 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    63.5 FPS 15.8 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.6 FPS 15.7 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    63.9 FPS 15.6 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    64.0 FPS 15.6 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.0 FPS 15.6 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    64.5 FPS 15.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.2 FPS 15.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    65.6 FPS 15.2 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    65.5 FPS 15.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    67.0 FPS 14.9 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    67.3 FPS 14.9 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    68.8 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.1 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.2 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.7 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    70.3 FPS 14.2 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.0 FPS 14.5 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.2 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.2 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.2 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.7 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.2 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.2 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.9 FPS 14.5 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Fme: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.7 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.7 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    70.2 FPS 14.2 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.7 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.5 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.6 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.3 FPS 14.4 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.8 FPS 14.3 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.5 FPS 14.6 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    68.6 FPS 14.6 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.0 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.1 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.4 FPS 14.4 ms

Camera Capture Frame: 30.3 FPS 33.0 ms
H264 Encode Frame:    69.0 FPS 14.5 ms

Camera Capture Frame: 30.1 FPS 33.2 ms
H264 Encode Frame:    69.0 FPS 14.5 ms
...

 

 

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

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


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

Плюс ещё на V3s для нормальной работы USB в режиме Device (виртуальный диск, который видится на ПК) надо произвести запись в этот регистр:

#define USB_OTG_REG_BASE 0x01C19000 /* базовый адрес регистров USB OTG */

*(IO u32*)(USB_OTG_REG_BASE+0x410)=0; //разрешает USB быть в режиме Device. Был =2

Иначе, когда грузишься автономно с SPI NOR или SD карты, ПК не видит соединение.

Нашёл этот регистр с помощью сравнения двух снятых дампов - с sunxi-fel и без него.

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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