Алексей
Сейчас выводится через spi, отдельным ядром. Область 2х150 пикселей, 100 столбцов. Занимает 49мс. Просто интересно, если отдать на dma, будет быстрее ли нет.
Vlad
Сейчас выводится через spi, отдельным ядром. Область 2х150 пикселей, 100 столбцов. Занимает 49мс. Просто интересно, если отдать на dma, будет быстрее ли нет.
недавно изучал тему, обещается в 3-5 раз ускорение работы. практически пока не добрался. если даже в 3 - будет отличный FPS. а если в 5 - то и размер можно увеличить немножко
Алексей
недавно изучал тему, обещается в 3-5 раз ускорение работы. практически пока не добрался. если даже в 3 - будет отличный FPS. а если в 5 - то и размер можно увеличить немножко
Там другая проблема вылазит, текстурирование, оно в видео в строке TXR, если спрайтов много то тоже до 40-50мс подскакивает
Алексей
Это тоже тема для изучения, в ОЗУ всё не впихнуть, с flash постоянно считывать не так быстро. Хочу попробовать в SPIFS одним data файлом запихать, или это бред и spiff долгий? Или spifs точно таже память прошивки?
Алексей
https://github.com/hideakitai/ESP32DMASPI
Встречалась эта библиотека, уже лежмит у меня, ждёт препарирования. Спасибо
Ник
Смотрите в сторону mmap
Алексей
Алексей
Пара вопросов, а столько новых для себя тем. Спасибо 🤝
Vlad
по мне, так esp32-s3R8 c OPI PSRAM которая только на 25% медленнее SRAM - отличный вариант, если не нужен супер максимум скорости SRAM
Алексей
по мне, так esp32-s3R8 c OPI PSRAM которая только на 25% медленнее SRAM - отличный вариант, если не нужен супер максимум скорости SRAM
Если не темнить, то идея такая. Собрать большой data файл, с локациями, текстурами и т.д. типа *.wad файла в doom'е, закинуть его в область spifs ( тут не силён, не читал досконально, но вроде как это раздел data ), и по смещениям считывать куски разных текстур.
Алексей
отпишись, когда руки дойдут
относительно не быстро, лето, ремонт , отпуска , заказы доделать. Ближе к Сентябрю
Алексей
16M - явно биты (чипулька сама) ну а размер бинарника - байты
16Мбит это 2Мбайта а app при этом 3Мбайта. т.е. я что то не так понимаю. Вот это меня и путает
Алексей
partitions.csv поглянди
но чип памяти по сути один? верно. Просто разные адреса
Алексей
partitions.csv поглянди
т.е. я могу в свой app закинуть const uint8_t data[1024]{ данные }; и обращаться к массиву. а могу файлом бинарным и через spifs считывать вопрос в скорости доступа к конечным байтам...
Vlad
ну правильно выше написали - FS это еще одна структура поверх флеша, т.е. еще чуть медленее будет
Алексей
байты ))
т.е. моя ESP32S3 N16R8 - это чип на 16мегабайт а R8 ( где то встречал что это типа буфера DMI, но пока )
Алексей
Алексей
8мегабайт
Vlad
ESP32-S3 N8R8 – 8 MB Flash + 8 MB PSRAM ESP32-S3 N16R16 – 16 MB Flash + 16 MB PSRAM ESP32-S3 N32R16 – 32 MB Flash + 16 MB PSRAM ESP32-S3 N8R0 – 8 MB Flash, без PSRAM
Алексей
Vlad
Спасибо
это Дипсику :) я копипастер, полупрофессиональный :)
Алексей
Алексей
https://t.me/ProEsp8266/1/405448 вот недавние мои результаты исследования
почитал что такое PSRAM +/- понял. Если что смореть в сторону OPI PSRAM?
Алексей
почитал что такое PSRAM +/- понял. Если что смореть в сторону OPI PSRAM?
а ведь тогда можно и буфер кадра весь рисовать в PSRAM, все 100х75 ( двойных пикселей ) и отдавать на tft за один присест, один раз определив область рендера. если у меня всё правильно сложилось.
Алексей
почитал что такое PSRAM +/- понял. Если что смореть в сторону OPI PSRAM?
и также data файл не важно где хранить, хоть в spiff хоть на SD, если можно будет при загрузке локации в PSRAM все данные перебросить
Алексей
Octal SPI вроде как должен радовать. Это SPI по восьми проводам?
Алексей
Спасибо за советы, есть что изучать дальше...
Алексей
Вот, хронология моих экспериментов в rayCast'e
Алексей
Смотрите в сторону mmap
Это получается и есть прямой доступ к разделам памяти?
Ник
Это получается и есть прямой доступ к разделам памяти?
Практически, ещё его можно с partition подружить
Алексей
Практически, ещё его можно с partition подружить
типа при запуске прочитать данные с адреса раздела partition и использовать смещение до data в дальнейшем в прошивке ( т.е. динамически корректировать адрес data даже если partition изменится? )
Ник
Нет, положить данные в нужный в партишен, а при запуске загрузить партишен через mmap
Алексей
Нет, положить данные в нужный в партишен, а при запуске загрузить партишен через mmap
я наверное сегодня после смены не совсем "инженер". при загрузке МК, прочитать с области 0x00008000 ( partitions ) данные адреса раздела data?
Алексей
Нет, положить данные в нужный в партишен, а при запуске загрузить партишен через mmap
и дальше в программе уже знать что на этом МК раздел data находится на прочитанном ранее адресе, и обращаться по нему...
Ник
data ты так просто назвал, на пк готовишь файл чего тебе нужно, например блоб с растровым изображением(текстуры). idf его запихнет в partition, а через mmap ты делаешь алиас на виртуальный адрес , и получишь новый адрес с которого можно читать твой блоб, без файловых абстракций
Алексей
Алексей
Нахрена делать какой-то mmap если в idf есть штатные функции включения блоба в прошивку?
тогда обычный const uint8_t data[n] = { } пришьёт после app массив с байтами в саму прошивку
Vlad
начал ток заряда снижаться, после 2х часов, и напряжение уже близко к 4.2В. разница по емкости в 4 процента, но это как раз потери на заряжалке TP4056: у меня ток-то меряется в разрыве самой батареи, без накладных расходов
Алекс
Приветствую! Кому-нибудь известны практические реализации подключения к esp32 внешних цифровых камер - не esp32cam - оно качество ужасное выдаёт :(
Root
Епс камера это щняга полная
Алексей
После какого app?
имею в виду что, есть моя прошивка ( app ) и если в коде я заранее определю const массив, то этот массив включится в область кода
Алексей
почитал что такое PSRAM +/- понял. Если что смореть в сторону OPI PSRAM?
Подскажи я в верном направлении? byte* psdRamBuffer = (byte*)ps_malloc( 2048 ); free(psdRamBuffer);
ㅤ
Подскажи я в верном направлении? byte* psdRamBuffer = (byte*)ps_malloc( 2048 ); free(psdRamBuffer);
Прикольно. Самого у себя спрашивать. Может подскажет че. Попозже
Алексей
почитал что такое PSRAM +/- понял. Если что смореть в сторону OPI PSRAM?
если да, то я просто дальше обращаюсь к массиву psdRamBuffer psdRamBuffer[i] = какието данные[i];
Алексей
Прикольно. Самого у себя спрашивать. Может подскажет че. Попозже
ну всё же интересно я в верном направлении, или чёт не так понял. это и есть организовать работу с PSRAM?
Artem
Добрый день, кто-нибудь работал на esp32 с ad7793 АЦП ?
Алексей
а это уже дело техники и Си плюсов на ПК. Просто через SD сделать перезапись файла с байтами в нужный партишн...
уж если получилось *.ino код на ПК запустить, файл с данными подготовить не проблема🫡
Ник
Ваще огонь, спасибо за наводку
Видишь какое дело, порт nes у меня тоже был в списке планов, но я его откладываю уже второй год)
Artem
Добрый день! Кто-нибудь с AD7793 АЦП работал на ESP32 ?
Алексей
Видишь какое дело, порт nes у меня тоже был в списке планов, но я его откладываю уже второй год)
В nes там свои примудрости, в разных видах rom картриджей толтко чёрт ногу сломит