Denisio
ну то что в эльбрусах их не нашли - не значит что их нет
Тецкатлипок
Roman
Denisio
количество используемых процов интела и эльбруса просто несопоставимо на несколько порядков
Denisio
и опять же - нектоорые уязвимости интелов нашли только недавно, тоесть про них годы (десятки лет) никто не знал, хотя процов в мире - сотни миллионов
Denis
проблема в том что исправить у интела эти проблемы неполучается
Denisio
тем не менее это всё живёт какимто образом во всем мире
Denisio
не припомню массовых взломов хостовых машин в амазоне или azure или google cloud
Denisio
многие опубликованые уязвимости там настолько хитровыебаны и работают в таких стерильных условиях что на практике крайне малоприменимы
Denis
взломы каждый день по нескалько случаев
Denis
если эти уязвимости будут опубликованы будет большая беда
Denisio
без пруфов чтото сомнительно это всё выглядит
Denisio
Denis
эта возня идёт уже лет десять
Serjio
поясните, плз, что это.
есть файл spiEPD.h, в нем строчка
esp_err_t IRAM_ATTR epaper_write_data(uint8_t data);
допустим, esp_err_t- некий тип (стоит задача избавитсья от этого - привожу все к int)
IRAM_ATTR - это что?
в spiEPD.c одна из первых строчек
static void IRAM_ATTR gpio_isr_handler(void *arg)
{
//If the received interrupt is from BSY pin
if((uint32_t)arg == EPAPER_BSY_GPIO)
isEpaperBusy = gpio_get_level(EPAPER_BSY_GPIO);
}
при сборке этого безобразия ругань:
spiEPD.h:40:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'begin_spi_transaction'
int IRAM_ATTR begin_spi_transaction();
я вообще не очень понял, что за IRAM_ATTR, и как оно работало в исходном виде
v1ct0r
поясните, плз, что это.
есть файл spiEPD.h, в нем строчка
esp_err_t IRAM_ATTR epaper_write_data(uint8_t data);
допустим, esp_err_t- некий тип (стоит задача избавитсья от этого - привожу все к int)
IRAM_ATTR - это что?
в spiEPD.c одна из первых строчек
static void IRAM_ATTR gpio_isr_handler(void *arg)
{
//If the received interrupt is from BSY pin
if((uint32_t)arg == EPAPER_BSY_GPIO)
isEpaperBusy = gpio_get_level(EPAPER_BSY_GPIO);
}
при сборке этого безобразия ругань:
spiEPD.h:40:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'begin_spi_transaction'
int IRAM_ATTR begin_spi_transaction();
я вообще не очень понял, что за IRAM_ATTR, и как оно работало в исходном виде
Проверяет, не заняты ли gpio для епарер чем-то ещё?
Serjio
не, я про слово (директиву или хз что это вообще) IRAM_ATTR - что это?
v1ct0r
В смысле в данный момент
Denis
а esp_err_t просто обычный инт
Serjio
ну вот я в инт и переделываю пока за неимением лучших идей - хочу посмотреть, к чему все это приведет.. по идее задача-то простая: инициализация spi, отправка байт.
Andy
поясните, плз, что это.
есть файл spiEPD.h, в нем строчка
esp_err_t IRAM_ATTR epaper_write_data(uint8_t data);
допустим, esp_err_t- некий тип (стоит задача избавитсья от этого - привожу все к int)
IRAM_ATTR - это что?
в spiEPD.c одна из первых строчек
static void IRAM_ATTR gpio_isr_handler(void *arg)
{
//If the received interrupt is from BSY pin
if((uint32_t)arg == EPAPER_BSY_GPIO)
isEpaperBusy = gpio_get_level(EPAPER_BSY_GPIO);
}
при сборке этого безобразия ругань:
spiEPD.h:40:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'begin_spi_transaction'
int IRAM_ATTR begin_spi_transaction();
я вообще не очень понял, что за IRAM_ATTR, и как оно работало в исходном виде
Про esp_err_t можно почитать тут https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/esp_err.html
IRAM_ATTR - говорит компилятору хранить эту функцию не на флаш, а в кэш.
v1ct0r
Насколько я смог понять, проверка доступности (для передачи) спи, перед началом собственно передачи...
Serjio
IRAM_ATTR - это специфичная для free-rtos?
как называется это сущность? спефицикатор? директива?
Denis
isr_handler - обработчик прерывания
Serjio
меня тут интересует IRAM_ATTR
компилятор ругается на него. убираю - сборка собирается.
для чего они размещали его в кэш, а не на флэш?
Denis
обычно так подписывают
Serjio
а почему тогда ругается?
Andy
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/memory-types.html
Denis
iram быстрая область памяти
Serjio
чем чревато,если убрать это из кода? (другого способа избавиться от ошибки пока не нашел)
Denis
медленне быдут обрабатываться прерывания
Denis
убирать не надо
Andy
Будет падать при промахе кэша
Denis
лвайпи прерывания у меня сидят в драм области и всё вроде нормально
Denis
а SPI могут быть проблемы
Serjio
слишком сложно. по гуглу нашел такое
ICACHE_FLASH_ATTR
Serjio
похоже по смыслу то же самое?
Serjio
http://www.count-zero.ru/2019/esp_open_sdk/
void ICACHE_FLASH_ATTR user_init()
{
// init gpio subsytem
gpio_init();
// configure UART TXD to be GPIO1, set as output
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
gpio_output_set(0, 0, (1 << LED), 0);
for(;;){
dummy_loop(600000);
gpio_output_set(0, (1 << LED), 0, 0);
dummy_loop(600000);
gpio_output_set((1 << LED), 0, 0, 0);
}
}
Здесь функция user_init() - это функция которая по умолчанию вызывается первой при старте прошивки. Атрибут ICACHE_FLASH_ATTR указывает, что функция должна выполняться из флеш-памяти. При атрибуте IRAM_ATTR, функция будет выполняться из оперативной памяти. Все обработчики прерываний должны иметь атрибут IARM_ATTR.
офигенно. в user_init нету такого, есть другое. IRAM или IARM? ))
Denis
у вас наверно просто синт ошибка гдето
Serjio
нет. в смысле видимо у моего сборщика оно как-то иначе называется?
Serjio
вот еще нашел. в free-rtos видимо portTICK_RATE_MS - то же самое, что в esp-open-rtos portTICK_PERIOD_MS
Serjio
а, не на ICACHE_FLASH_ATTR тоже ругается
Denis
под каким сдк собрать пытаетесь
Andy
Это вы откуда эту древность откопали, она вроде как лет 5 уже не развивается :) Используйте frtos от вендора
Serjio
видимо, действительно ошибся с выбором)
v1ct0r
Позвольте вопрос...
Прошивка хранит настройки в еепром. Есть некие дефолтные значения, оформленные в бинарник.
Задача: при заливке определить, есть ли внешний еепром, если да - льём в него. Если нет, то во встроенный...
Как определить адреса?
Serjio
SDK
esp-open-sdk - тоже зря?
Serjio
вроде бы собралось. остается подключить экранчик, проверить.
а откуда правильно брать rtos от вендора? гитхаб?
Serjio
наверное отсюда?
https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/macos-setup.html
Serjio
странно, почему я сразу это не нашел.
Slava
v1ct0r
Slava
v1ct0r
I2c сканером
Боюсь показаться дибилом, но первый раз слышу...
Slava
Slava
https://robotchip.ru/i2c-skaner-na-arduino/
Slava
v1ct0r
Ну или иного иснтрумента для заливки прошивки
Denis
вебфрэймбуфер тесты
Serjio
ставлю ртос от эспрессифа. впечатлился тулзе под названием менюконфиг
Denis
а ты её из под шелла вызывал
Denis
или VSC плагин?
Serjio
из шелла
Serjio
что за плагин? я в макоси
Кir
https://platformio.org/platformio-ide
Serjio
а, да ну её. VIsualStudioCode, да
Serjio
выбешивает
Denis
Кir
выбешивает
вопрос привычки, мне VS Code с плагинами кажется более удобным
Serjio
вечера хватило поковыряться
Serjio
зато готового примера готового сервера как будто не нашел)
и как подключать в качестве клиента к имеющейся сети - пока тоже
Denis
ESP8266_RTOS_SDK/examples/protocols/http_server/
Denis
ESP8266_RTOS_SDK/examples/common_components/protocol_examples_common/connect.c
Denis
общий для всех примеров
Serjio
угу, спасибо!
Serjio
хм.
поставил, загрузил пример - сразу собралось и залилось, но видимо, не для моего экрана... буду сравнивать исходники что ли для разных диагоналей