Jump to content
    

sonycman

Свой
  • Posts

    1,936
  • Joined

  • Last visited

Reputation

0 Обычный

About sonycman

  • Rank
    Любитель
    Профессионал
  • Birthday 09/06/1977

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

15,415 profile views
  1. Спасибо! Ну мне нужен только mp1 layer3, а там проще - только 1152 сэмпла для моно и 2304 для стерео.
  2. А может кто дать линк на исходники этого декодера?
  3. Неправильно выразился - в 32 битном режиме есть, конечно, я про 64 бита (aarch64).
  4. В ARMv8-a нет этих инструкций, есть только STP/LDP - load/store register pair. Если юзать NEON можно ворочать сразу по 16 байт (Qx/Vx регистры), но на ARMv7-a тоже самое, кажется?
  5. Не знаю, мне стало интересно, вот и решил глянуть. Наверное, ещё такие камешки могут быстрее ворочать большими объёмами данных? Вообще, машинный код ARMv8-A мне показался больше похожим на MIPS или RISC-V, чем на собственно ARM... :)
  6. На форуме ARM ответили, что они сейчас не делают супер-оптимизированные библиотеки для ARMv8-A, а вместо этого есть оптимизированные процедуры отдельно вот здесь: ARM-software / optimized-routines И на том спасибо :) Странно, конечно, что либы для нового 6-го компилятора не дотягивают до либ старого 5-го. Кстати, прогнал Dhrystone Benchmark v2.1 (из Vitis 2022.1), оптимизация О2, DMIPS/MHz: GCC 11.2: 2.88 armclang v6.16: 5.75 Почему-то получилось, что гнусь в два раза медленнее
  7. Пробую хвалёный ARM Compiler 6 из под ARM Development Studio 2021, версия компилятора 6.16. Скомпилировал простую програмку в режиме aarch64 с вызовом memset, оптимизация О2 (пробовал О3, даже Omax). Дизассемблер этой функции: _memset 0x00008c14: b4000261 a... CBZ x1,0x8c60 ; _memset + 76 0x00008c18: 36000060 `..6 TBZ w0,#0,0x8c24 ; _memset + 16 0x00008c1c: 38001402 ...8 STRB w2,[x0],#1 0x00008c20: d1000421 !... SUB x1,x1,#1 0x00008c24: f1000828 (... SUBS x8,x1,#2 0x00008c28: 54000143 C..T B.CC 0x8c50 ; _memset + 60 0x00008c2c: 36080060 `..6 TBZ w0,#1,0x8c38 ; _memset + 36 0x00008c30: 78002402 .$.x STRH w2,[x0],#2 0x00008c34: aa0803e1 .... MOV x1,x8 0x00008c38: f100103f ?... CMP x1,#4 0x00008c3c: 540000a3 ...T B.CC 0x8c50 ; _memset + 60 0x00008c40: d1001021 !... SUB x1,x1,#4 0x00008c44: f1000c3f ?... CMP x1,#3 0x00008c48: b8004402 .D.. STR w2,[x0],#4 0x00008c4c: 54ffffa8 ...T B.HI 0x8c40 ; _memset + 44 0x00008c50: 36080041 A..6 TBZ w1,#1,0x8c58 ; _memset + 68 0x00008c54: 78002402 .$.x STRH w2,[x0],#2 0x00008c58: 36000041 A..6 TBZ w1,#0,0x8c60 ; _memset + 76 0x00008c5c: 39000002 ...9 STRB w2,[x0,#0] 0x00008c60: d65f03c0 .._. RET __aeabi_memclr4 __aeabi_memclr8 __rt_memclr_w 0x00008c64: f100103f ?... CMP x1,#4 0x00008c68: 540000a3 ...T B.CC 0x8c7c ; __aeabi_memclr4 + 24 0x00008c6c: d1001021 !... SUB x1,x1,#4 0x00008c70: f1000c3f ?... CMP x1,#3 0x00008c74: b800441f .D.. STR wzr,[x0],#4 0x00008c78: 54ffffa8 ...T B.HI 0x8c6c ; __aeabi_memclr4 + 8 0x00008c7c: 37080061 a..7 TBNZ w1,#1,0x8c88 ; __aeabi_memclr4 + 36 0x00008c80: 37000081 ...7 TBNZ w1,#0,0x8c90 ; __aeabi_memclr4 + 44 0x00008c84: d65f03c0 .._. RET 0x00008c88: 7800241f .$.x STRH wzr,[x0],#2 0x00008c8c: 3607ffc1 ...6 TBZ w1,#0,0x8c84 ; __aeabi_memclr4 + 32 0x00008c90: 3900001f ...9 STRB wzr,[x0,#0] 0x00008c94: d65f03c0 .._. RET _memset_w 0x00008c98: f100103f ?... CMP x1,#4 0x00008c9c: 540000a3 ...T B.CC 0x8cb0 ; _memset_w + 24 0x00008ca0: d1001021 !... SUB x1,x1,#4 0x00008ca4: f1000c3f ?... CMP x1,#3 0x00008ca8: b8004402 .D.. STR w2,[x0],#4 0x00008cac: 54ffffa8 ...T B.HI 0x8ca0 ; _memset_w + 8 0x00008cb0: 37080061 a..7 TBNZ w1,#1,0x8cbc ; _memset_w + 36 0x00008cb4: 37000081 ...7 TBNZ w1,#0,0x8cc4 ; _memset_w + 44 0x00008cb8: d65f03c0 .._. RET 0x00008cbc: 78002402 .$.x STRH w2,[x0],#2 0x00008cc0: 3607ffc1 ...6 TBZ w1,#0,0x8cb8 ; _memset_w + 32 0x00008cc4: 39000002 ...9 STRB w2,[x0,#0] 0x00008cc8: d65f03c0 .._. RET И что-то я не вижу высоко-оптимизированного кода. Запись максимум 32-мя битами на 64 битном процессоре, никаких векторных регистров не задействовано... Это что за шит такой? Даже в бесплатном GCC эта функция юзает регистр NEONа, а здесь даже конь не валялся... Может, я что-то делаю не так? Или просто библиотеки для ARMv8-A под 64 бита сделаны абы как?
  8. Так есть же "нормальный" макрос, который создаёт пустой семафор: xSemaphoreCreateBinary() И в доке по vSemaphoreCreateBinary() указывается: По крайней мере в 10 версии операционки так.
  9. Зачем makefile править, просто в опциях компилятора укажите нужные директории для .h файлов.
  10. Держите: https://disk.yandex.ru/d/aNaqbFADXJTT2A Убрал только часть с AI, она весит 17 гигов Мне прислали без проблем, вроде всё хорошо, только продавец странный какой-то, совсем не отвечает на сообщения, даже не читает их.
  11. У них несколько обучающих курсов по всем аспектам, все что надо есть - от простых примеров с простой логикой, до камер с дисплеями, линуксом и аи. Кинули - это как, плату не прислали?
  12. Спасибо, разбираюсь! Кстати, у этих китайцев с ихнего байду фиг ничего скачаешь через браузер, надо ставить экзешник с качалкой, а там всё с кривыми иероглифами... это вообще реально это приложение поставить с скачать папки через него?
  13. И сюда писал, только вчера отправил. Не ответили пока. Попробую потом ещё, ну и спор открою на али, если продаван так и будет молчать.
  14. Приветствую! Заказал на али платку на базе MPSoC Ultrascale+ XCZU2CG-1SFVC784E, пока ещё не пришла, но никак не могу найти на неё схематик/примеры и прочее. Есть только куцый мануал с сайта alinx.com. На страничке магазина на али и на сайте alinx для получения полной доки приведён имэйл [email protected], кучу писем уже отправил - ни ответа, ни привета :( И другие имэйлы алинкса молчат, как и продаван на али вообще не читает сообщения... Ведут себя эти китайцы как полные сволочи. Может, кто имеет полную доку на эту плату, был бы очень признателен за помощь
  15. Опция активна, но нет не то что фреймбуффера, но и drm (/dev/dri/card0). Наверное, это потому, что не подключены дисплеи?
×
×
  • Create New...