mantech 53 4 февраля Опубликовано 4 февраля (изменено) · Жалоба 8 часов назад, repstosw сказал: Есть же G2D. Операция Blt Rectangle. Так-то да, но это более универсально, например нужно "переехать" на проц, где нет g2d, и проблем нет, а если подвяжитесь под конкретное железо, то ай ай будет)))))) Поэтому придерживаюсь такого подхода, если есть менее платформенно-зависимый метод, ну даже пусть он помедленнее, но не критично, то его и сделаю, потом сам себе спасибо скажу))) 8 часов назад, repstosw сказал: кодирование H264 Full HD 1920x1080 Ну тут понятно, только аппаратка... Изменено 4 февраля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 4 февраля Опубликовано 4 февраля · Жалоба On 2/4/2024 at 10:53 AM, mantech said: но это более универсально, например нужно "переехать" на проц, где нет g2d а если графическую морду переехать в планшет - дядя например с планшетной фабрики прислал вышедшие из моды по цене рубль за тонну ? или в смартфон юзера а вместо ящика с товаром в молле дрон запускать с доставкой ? никакого развития у вас не предусмотрено в принципе, а вэб-технологии конечно тормозные местами но непровзойдённо гибкие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 4 февраля Опубликовано 4 февраля (изменено) · Жалоба Запустил второй SPI (SPI1), который на старших битах TCON LCD. Подключил к нему трансивер на базе Si4463. На SPI0 висит Flash. SD карта больше не нужна. И ножек хватает на всю периферию. Без аппаратных и программных уродств, что радует. Тестовый макет фулл-дуплексного видео-чата на 430 - 440 МГц: Spoiler SoC: Allwinner T113-s3 Board: MangoPi MQ-R CPU0: Cortex-A7 @ 1200Mhz (RS coder) CPU1: Cortex-A7 @ 1200Mhz (RS decoder) DSP: Xtensa HiFi4 @ 600 MHz (Main code) LCD: Nokia E72, 2.4", 320x240, 24 bit, 61 Hz, connected to TCON in i8080 8-bit mode, Tearing pin used for VBlank. Partnumber: LS024Q8UX05C Camera: OV5640, connected to CSIC via DVP Transceiver: RF4463PRO, 430..440 MHz, 4FSK, 100 mW RF power, 1250 kbps bitrate (overclocked +25%, XTAL 37.5 MHz instead default 30 MHz) FEC: CR 4/5, Reed-Solomon FEC, GF 2^16 Frame size: 160x240 (two frames) Frame rate: 12 FPS (full duplex) Audio codec: CELT 24 kbps, 1 channel, 24 kHz, 16 bit. Acoustic Echo Canceler: from Speex codec Image Processing: MJPEG codec Graphics Engine: Hardware G2D Boot Media: NOR Flash or SD-card Program Binary size: ~ 300 kB Toolchains: ARM GCC & Xtensa GCC Target OS: NONE. Barmetal & LowLevel programming Programming Languages: C/ASM Изменено 4 февраля пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 4 февраля Опубликовано 4 февраля · Жалоба On 2/4/2024 at 12:44 PM, repstosw said: И ножек хватает на всю периферию. Без аппаратных и программных уродств а шифрование есть или смотри кто хочет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 4 февраля Опубликовано 4 февраля (изменено) · Жалоба 16 hours ago, sasamy said: никакого развития у вас не предусмотрено в принципе, а вэб-технологии конечно тормозные местами но непровзойдённо гибкие. Каждому свое, кому помигать светодиодом через браузер , а кому просто быстро и надежно и предсказуемо... 16 hours ago, sasamy said: а если графическую морду переехать в планшет Еще раз повторяю, в моем контроллере графическая морда не главная задача, а только UI. 16 hours ago, sasamy said: или в смартфон юзера а вместо ящика с товаром в молле дрон запускать с доставкой ? Еще про чат_гпт забыли)))))))0 On 2/3/2024 at 11:56 PM, GenaSPB said: У меня так: Вот проверил еще раз gcc version 6.3.1 Ключи гцц из эклипса: <tool command="arm-none-eabi-gcc -march=armv7-a -mtune=cortex-a7 $(FP) -marm -mfloat-abi=hard -mfpu=vfpv4 -mfpu=neon -mno-thumb-interwork -mno-unaligned-access -ffunction-sections -fdata-sections -MMD -MT$@ -Wa,-adhln	-Wall -Wformat=0" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.cross.c.compiler.865133463" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler"> Функция: Spoiler #include <arm_neon.h> int GrayRotation90_NEON(uint8_t * in, uint8_t* out, int height, int width) { uint8x8_t vone = {1,1,1,1,1,1,1,1}; uint8x8_t index_0 = {28, 20, 12, 4, 24, 16, 8, 0}; uint8x8_t index_1 = vadd_u8(index_0, vone); uint8x8_t index_2 = vadd_u8(index_1, vone); uint8x8_t index_3 = vadd_u8(index_2, vone); uint8x8_t index_4 = {12, 13, 14, 15, 4, 5, 6 ,7}; uint8x8_t index_5 = {8, 9, 10, 11, 0, 1, 2, 3}; uint8x8x4_t mat0; uint8x8x4_t mat1; uint8x8x4_t temp0; uint8x8x4_t temp1; uint8x8x2_t out0; uint8x8x2_t out1; uint8x8x2_t out2; uint8x8x2_t out3; int x = 0, y = 0; for(y=0; y<height; y+=8) { for(x=0; x<width; x+=8) { mat0.val[0] = vld1_u8(in + y*width+x); mat0.val[1] = vld1_u8(in + (y+1)*width+x); mat0.val[2] = vld1_u8(in + (y+2)*width+x); mat0.val[3] = vld1_u8(in + (y+3)*width+x); mat1.val[0] = vld1_u8(in + (y+4)*width+x); mat1.val[1] = vld1_u8(in + (y+5)*width+x); mat1.val[2] = vld1_u8(in + (y+6)*width+x); mat1.val[3] = vld1_u8(in + (y+7)*width+x); temp0.val[0] = vtbl4_u8(mat0, index_0); temp0.val[1] = vtbl4_u8(mat0, index_1); temp0.val[2] = vtbl4_u8(mat0, index_2); temp0.val[3] = vtbl4_u8(mat0, index_3); temp1.val[0] = vtbl4_u8(mat1, index_0); temp1.val[1] = vtbl4_u8(mat1, index_1); temp1.val[2] = vtbl4_u8(mat1, index_2); temp1.val[3] = vtbl4_u8(mat1, index_3); out0.val[0] = temp0.val[0]; out0.val[1] = temp1.val[0]; out1.val[0] = temp0.val[1]; out1.val[1] = temp1.val[1]; out2.val[0] = temp0.val[2]; out2.val[1] = temp1.val[2]; out3.val[0] = temp0.val[3]; out3.val[1] = temp1.val[3]; mat0.val[0] = vtbl2_u8(out0, index_4); // line 0 mat0.val[1] = vtbl2_u8(out0, index_5); // line 4 mat0.val[2] = vtbl2_u8(out1, index_4); // line 1 mat0.val[3] = vtbl2_u8(out1, index_5); // line 5 mat1.val[0] = vtbl2_u8(out2, index_4); // line 2 mat1.val[1] = vtbl2_u8(out2, index_5); // line 6 mat1.val[2] = vtbl2_u8(out3, index_4); // line 3 mat1.val[3] = vtbl2_u8(out3, index_5); // line 7 // store out data in order: 0, 4, 1, 5, 2, 6, 3, 7 vst1_u8(out + (x + 0) * height + height-8 - y, mat0.val[0]); vst1_u8(out + (x + 1) * height + height-8 - y, mat0.val[2]); vst1_u8(out + (x + 2) * height + height-8 - y, mat1.val[0]); vst1_u8(out + (x + 3) * height + height-8 - y, mat1.val[2]); vst1_u8(out + (x + 4) * height + height-8 - y, mat0.val[1]); vst1_u8(out + (x + 5) * height + height-8 - y, mat0.val[3]); vst1_u8(out + (x + 6) * height + height-8 - y, mat1.val[1]); vst1_u8(out + (x + 7) * height + height-8 - y, mat1.val[3]); } } return 0; } Ошибки: In file included from ../sys/drivers/GUI/Gui_ll.c:40:0: ../sys/drivers/GUI/Gui_ll.c: In function 'GrayRotation90_NEON': d:\program works\gnu\sourcery_arm_eabi\lib\gcc\arm-none-eabi\6.3.1\include\arm_neon.h:541:1: error: inlining failed in call to always_inline 'vadd_u8': target specific option mismatch vadd_u8 (uint8x8_t __a, uint8x8_t __b) ^~~~~~~ ../sys/drivers/GUI/Gui_ll.c:48:16: note: called from here uint8x8_t index_3 = vadd_u8(index_2, vone); ^~~~~~~ In file included from ../sys/drivers/GUI/Gui_ll.c:40:0: d:\program works\gnu\sourcery_arm_eabi\lib\gcc\arm-none-eabi\6.3.1\include\arm_neon.h:541:1: error: inlining failed in call to always_inline 'vadd_u8': target specific option mismatch vadd_u8 (uint8x8_t __a, uint8x8_t __b) ^~~~~~~ ../sys/drivers/GUI/Gui_ll.c:47:16: note: called from here uint8x8_t index_2 = vadd_u8(index_1, vone); ^~~~~~~ In file included from ../sys/drivers/GUI/Gui_ll.c:40:0: d:\program works\gnu\sourcery_arm_eabi\lib\gcc\arm-none-eabi\6.3.1\include\arm_neon.h:541:1: error: inlining failed in call to always_inline 'vadd_u8': target specific option mismatch vadd_u8 (uint8x8_t __a, uint8x8_t __b) ^~~~~~~ ../sys/drivers/GUI/Gui_ll.c:46:16: note: called from here uint8x8_t index_1 = vadd_u8(index_0, vone); Ну и т.д.... Изменено 5 февраля пользователем haker_fox Для оформления кода есть кнопка <>. Длинный код прячем под спойлр. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 5 февраля Опубликовано 5 февраля · Жалоба 20 hours ago, sasamy said: а шифрование есть или смотри кто хочет Возможны несколько опций: 1) Hardware Data Whitening (со стороны трансивера) 2) AES, SHA (со стороны T113-s3) 3) Псевдо-случайный интерливинг байт пакета Ну и плюс к тому же, видео передаётся не тупо JPEG'ами, а только полезная часть. хедер и таблицы Хаффмана - не передаются, они восстанавливаются в приёмнике (заранее просчитаны). Со звуком аналогично - передаётся только тело сжатия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 5 февраля Опубликовано 5 февраля (изменено) · Жалоба Пока вижу прииенение двух ключей mfloat с разными параметрами. Попробуйте как у меня один. И компилятор поновее бы. Sorcery давно издох. Изменено 5 февраля пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 5 февраля Опубликовано 5 февраля (изменено) · Жалоба 2 часа назад, GenaSPB сказал: Пока вижу прииенение двух ключей mfloat с разными параметрами. Попробуйте как у меня один. Попробовал, то же самое tool command="arm-none-eabi-gcc -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4" 2 часа назад, GenaSPB сказал: И компилятор поновее бы. Хотите сказать, что компилятор начала 18 года не знает кортекс А7 ?? Странно Изменено 5 февраля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 5 февраля Опубликовано 5 февраля · Жалоба On 2/4/2024 at 3:14 PM, mantech said: gcc version 6.3.1 зачем gcc такой молодёжный - надо 0.1. Седьмой проглатывает ваш чатгпт https://godbolt.org/z/4rzG1qxWv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 5 февраля Опубликовано 5 февраля (изменено) · Жалоба 2 часа назад, sasamy сказал: Седьмой проглатывает ваш У меня в этом эксплореле и 5.4.1 норм компилирует, если что... Изменено 5 февраля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 5 февраля Опубликовано 5 февраля · Жалоба 5 часов назад, GenaSPB сказал: И компилятор поновее бы. Sorcery давно издох. Не подкинете ссылку, где скачать поновее проверенный под вин32 бита? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 5 февраля Опубликовано 5 февраля · Жалоба https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi.exe Arm GNU Toolchain Downloads – Arm Developer Раьотает ли под win32 не уверен. Закопайте стюардесу. По ссылке есть архивы релизов - откатитесь назад, когда прекратили поддержку я не отслкживал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 5 февраля Опубликовано 5 февраля · Жалоба 1 час назад, GenaSPB сказал: Раьотает ли под win32 не уверен. Закопайте стюардесу. Нет уж, рано еще)) Вот такой нашел - Version 10 2021.10 Попробую на нем... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 5 февраля Опубликовано 5 февраля · Жалоба Флаг -mfloat поправьте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 5 февраля Опубликовано 5 февраля (изменено) · Жалоба 4 часа назад, mantech сказал: Флаг -mfloat поправьте. -mfloat-abi=hard А что не так? Как ваш. Изменено 5 февраля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться