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

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

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

15 ответов

2 просмотра

дебага нет, невозможно на рабочей машине реализовать из-за ряда причин, а краш лог такой : 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
Я за свою жизнь единожды делал вызов Си-кода из ас...

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

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта