Anton
гм. у меня линукс основным десктопом с 97г
Anton
вот на 486дх66 было действительно больно слушать мп3 через мпг123
Anton
Ученые придумали способ худеть не вставая со стула 😉👍
При нагрузке на камбаловидную мышцу, расположенную на задней стороне голени, сахар в крови снижается гораздо эффективнее, чем при нагрузке на остальные все остальные мышцы тела вместе взятые.
Anton
Max
Добрый вечер.
esp32-s3 + 16 метров spi psram на борту.
platformio.
в конфигурации для сборки указал:
"
...
"extra_flags": [
"-DARDUINO_ESP32S3_DEV",
"-DBOARD_HAS_PSRAM",
"-DCONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY",
"-DARDUINO_USB_MODE=0",
"-DARDUINO_USB_CDC_ON_BOOT=0"
],
...
"
Если цель - работа с массивом в будущем, то достаточно выделить память во внешней флешке используя метод и флаги heap_caps_malloc(size, MALLOC_CAP_8BIT | MALLOC_CAP_SPIRAM) : проект линкуется и собирается без проблем, работа с массивом успешна, тестировал.
Сейчас понадобилось во время запуска прошивки на этапе инициализации сохранить несколько картинок для вывода на дисплей, что естественно в виде массива не уместятся во внутренней ram esp-шки, однако инициализация массива (как указано в документации + обсуждалось на форумах espressif) с тегом EXT_RAM_ATTR (пример: "static lv_color_t buf1 [buffSize] EXT_RAM_ATTR") не позволят собраться проекту, ошибка переполнения памяти: region `dram0_0_seg' overflowed by 390560 bytes.
По идее все флаги для сборки предусмотрены. Работа с spi psram через heap_caps_malloc успешна.
Что можно сделать? Подскажите пожалуйста
ㅤ
Добрый вечер.
esp32-s3 + 16 метров spi psram на борту.
platformio.
в конфигурации для сборки указал:
"
...
"extra_flags": [
"-DARDUINO_ESP32S3_DEV",
"-DBOARD_HAS_PSRAM",
"-DCONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY",
"-DARDUINO_USB_MODE=0",
"-DARDUINO_USB_CDC_ON_BOOT=0"
],
...
"
Если цель - работа с массивом в будущем, то достаточно выделить память во внешней флешке используя метод и флаги heap_caps_malloc(size, MALLOC_CAP_8BIT | MALLOC_CAP_SPIRAM) : проект линкуется и собирается без проблем, работа с массивом успешна, тестировал.
Сейчас понадобилось во время запуска прошивки на этапе инициализации сохранить несколько картинок для вывода на дисплей, что естественно в виде массива не уместятся во внутренней ram esp-шки, однако инициализация массива (как указано в документации + обсуждалось на форумах espressif) с тегом EXT_RAM_ATTR (пример: "static lv_color_t buf1 [buffSize] EXT_RAM_ATTR") не позволят собраться проекту, ошибка переполнения памяти: region `dram0_0_seg' overflowed by 390560 bytes.
По идее все флаги для сборки предусмотрены. Работа с spi psram через heap_caps_malloc успешна.
Что можно сделать? Подскажите пожалуйста
А в menuconfig включил соответствующий пункт?
Max
это ардуино, не esp-idf, однако вот, да: "-DBOARD_HAS_PSRAM",
"-DCONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY",
ㅤ
Max
уже проверил
Max
ладно, видимо пора переходить на idf
Max
но если вдруг у кого-либо был подобный опыт с arduino, было бы здорово
ㅤ
Ну дык ардуина просто надстройка над идф же
Max
вдруг всё же флаг не работает
ㅤ
Ты же сказал что проверил дефайн
ㅤ
Вся задача этого флага правильно определить дефайн EXT_RAM_ATTR
Max
ㅤ
Если флаг не ставишь - дефайн EXT_RAM_ATTR - будет пустой
Max
ㅤ
Бля ты в иде что-ли проверил?)
ㅤ
Я думал ты фактически проверил
Max
да, в ide. фактически - без понятия как это делать
Max
если есть возможность рассказать как, то выполню
ㅤ
Откуда ИДЕ знает какие флаги ты передаешь компилятору, чтоб грамотно показать какое положение он занимает
Max
могу быть уверен в том, что я выставил флаг и ide это видит. что он передаёт - конечно не знаю. я десктоп разработчик, с таким в embedded сталкиваюсь впервые, посему и уточняю
Max
знал бы, думаю, что справился и не отвлекал бы никого, однако просидел на форумах и в документации с весь вечер безрезультатно. подскажешь, как можно фактически проверить передачу флага, пожалуйста?
Артем
Артем
Max
вероятно есть иной способ, или это и есть звоночек?
ㅤ
Max
не забыл, на форумах пичсали
Max
ㅤ
sdkconfig.h ДО esp_attr
ㅤ
Хотя он инклюдится внутри вроде
Max
писали наоборот
Max
попробую, не думал
ㅤ
Не, там был в каком-то idf был баг, что мол sdkconfig не иклюдился внутри esp_attr.h
ㅤ
Хрен знает какая esp-idf версия в ардуине
Max
Артем
Артем
Пердуина годится что бы лампочками мигать, что-то серьезное на ней не делаешь, поскольку это абстракция над абстракцией.
Max
Max
ㅤ
ㅤ
Потому что это просто тупо надстройка
Max
Артем
Есть отличный официальный фреймворк который позволяет делать очень многое. Зачем использовать кастрата?
Max
однако эта надстройка и не позволяет видимо собрать корректно проект, что бы непосредственно с внешней рам-кой работать
ㅤ
ㅤ
Это надстройка
ㅤ
Ты не ограничен работой с esp-idf api из него
Артем
ㅤ
ㅤ
В esp-idf расширении кстати есть кнопка, присрать ардуину
ㅤ
Он скачивает ардуину как компонент, и можешь юзать пожалуйста
Артем
в моих проектах нет зависимостей от каких либо кнопок в IDE)
ㅤ
Max
Артем
а о какой кнопке идет речь?
Max
причём тут ide, это лишь инструмент
ㅤ
🤦♂️
Max
это формально, что есть возможность скачать arduino как библиотеку
ㅤ
Когда в esp-idf тыкаешь создать проект, там есть галочка - скачать ардуину и ее в idf юзаешь как компонент.
ㅤ
Я к тому что кто тебе сказал что arduino-esp32 это вдруг "кастрат"?
ㅤ
Там между прочим много что отличается от esp-idf. В частности работа с SPI девайсами там своя, а не idf-ная
ㅤ
Так. через 30 минут Луну-25 запускают. Как думаете - ебанет как старшип?
Артем
ㅤ
Надо каждую букву что-ли пояснять?
Max
забей, надо же показать, что знаешь всё в этом мире
ㅤ
Так а вот по поводу псрам. Он же говорит что у тебя секция не влезает. Погоди, а откуда он вообще знает размер внешней псрам флешки чтоб подсчитать ее размер?
ㅤ
Я че-то забыл уже
Max
нене
Max
у меня она не может не влезть
Max
16 метров
ㅤ
Нет, откуда компилятор знает что она 16 метров)
Max
картинок на 1 мб
ㅤ
Прежде чем высрать ошибку)
ㅤ
Может он думает что она 0