189 похожих чатов

А по шагам там что ? краш сразу при перерходе

даже без входа в функцию?

15 ответов

16 просмотров

дебага нет, невозможно на рабочей машине реализовать из-за ряда причин, а краш лог такой : uru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled. Memory dump at 0x400e41cc: 000000f0 0c006136 0020c008 0x400e41cc: __cxa_guard_dummy at C:/esp32_idf/esp-idf-v4.4/components/cxx/cxx_guards.cpp:219 Core 1 register dump: PC : 0x400e41d0 PS : 0x00000035 A0 : 0x400841bc A1 : 0x3ffb71a0 0x400e41d0: test_func at C:\eclipse-workspace\ipc_isr_test\build/../main/main.c:36 0x400841bc: extended_ipc_isr_asm at C:\eclipse-workspace\ipc_isr_test\build/../main/asm_funcs.S:82 A2 : 0x3ffb6144 A3 : 0x3ff000e8 A4 : 0x00000000 A5 : 0x00000001 A6 : 0x00000002 A7 : 0x00000003 A8 : 0x00000003 A9 : 0x00000006 A10 : 0x00000003 A11 : 0x00000025 A12 : 0x00060820 A13 : 0x00060823 A14 : 0x00000001 A15 : 0x00000001 SAR : 0x0000001d EXCCAUSE: 0x00000000 EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000 Backtrace:0x400e41cd:0x3ffb71a00x400841b9:0x3ffb71c0 0x40086486:0x3ffb71e0 0x400879f1:0x3ffb7200 0x400e41cd: __cxa_guard_dummy at ??:? 0x400841b9: extended_ipc_isr_asm at C:\eclipse-workspace\ipc_isr_test\build/../main/asm_funcs.S:80 0x40086486: prvIdleTask at C:/esp32_idf/esp-idf-v4.4/components/freertos/tasks.c:3974 (discriminator 1)

Александр Шестаков
дебага нет, невозможно на рабочей машине реализова...

сорри, коллеги. но я узнал всредневзвешенного embedded погромиста в РФ.

Alexey Roslyakov
сорри, коллеги. но я узнал всредневзвешенного embe...

И он почётнее смехотехника, между прочим)

Alexey Roslyakov
сорри, коллеги. но я узнал всредневзвешенного embe...

эээээ..... а можно для тех кто в танке, а это хорошо или плохо ? =)

Александр Шестаков
из прерывания

То, что вы пытаетесь сделать CALL из прерывания и всё крашится, я понял. Я спрашиваю, в любом другом месте этот вызов работает?

Konstantin Zo
То, что вы пытаетесь сделать CALL из прерывания и ...

если запускать из main то работает , в теле функции inline void IRAM_ATTR test_func(void){ volatile int i =0; i++; }

Александр Шестаков
если запускать из main то работает , в теле функци...

Нет, в виде asm. Вы же на ассемблере вызов делаете.

Konstantin Zo
Нет, в виде asm. Вы же на ассемблере вызов делаете...

в виде asm не видел, вопрос именно в том , а можно ли вызвать функции на СИ из прерывания на asm-е?

Александр Шестаков
в виде asm не видел, вопрос именно в том , а можно...

Ну ответ - можно. Но у вас же не работает. Поэтому я спрашиваю, что вы делали чтобы проверить, что ваш asm работает верно. Не знаю, что имеется ввиду под Illegal Instruction. С ESP как-то не знаком близко. Но я ковырял бы в таком порядке: 1. Посмотрел disasm моего мейна, нашёл там вызов нужной функции. 2. Сделал в мейне конструкцию "asm" или как она там в их компиляторе. Чтобы из мейна на ассемблере сделать тот же вызов. Убедился, что это работает. 3. Пихал бы это уже в прерывание и боролся там.

Konstantin Zo
Ну ответ - можно. Но у вас же не работает. Поэтому...

я пока что экспериментирую с готовым кодом , который работает , и внутри одной из asm функций вызываю call

Александр Шестаков
я пока что экспериментирую с готовым кодом , котор...

Я за свою жизнь единожды делал вызов Си-кода из ассемблера. Это был вызов мейна). А из мейна, как говорится, не возвращаются. Как там оно работает, когда вы возвращаете значение - вопрос. Об этом должен знать компилятор. Я мб гоню, т.к. я не сварщик, но возврат обычного инта будет лежать где-то на регистрах. Но кто занимается предварительным сохранением контекста - вызывающий или вызываемая функция - я не знаю. Т.е. я допускаю, что у вас при возврате бьётся содержимое регистров, которое необходимо внутри цикла, из которого вызов совершался. Пусть меня поправят те кто в теме.

Konstantin Zo
Я за свою жизнь единожды делал вызов Си-кода из ас...

сохраняет вызываемый что ему надо. и всегда можно посмотреть код ассемблерный для С кода. и скопировать его себе

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта