Ruscat
@Ruscat
начинающий DIYщик

Ошибка с ESP32?

После успешной загрузки скетча в мониторе порта появляется вот такая катавасия:
A6      : 0x3ffb8adc  A7      : 0x00000030  A8      : 0x3ffb21c0  A9      : 0x3ffb20e0  
A10     : 0x0000692c  A11     : 0x00001864  A12     : 0x00000005  A13     : 0x3ffb21dc  
A14     : 0x00000000  A15     : 0x3ffc2c3c  SAR     : 0x0000001a  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x0000000f  LBEG    : 0x400875d0  LEND    : 0x400875db  LCOUNT  : 0x00000000  


Backtrace: 0x4008ee12:0x3ffb1fc0 0x4008f165:0x3ffb1fe0 0x4008eb89:0x3ffb2000 0x4008ecc0:0x3ffb2020 0x4008361a:0x3ffb2040 0x40083412:0x3ffb2070 0x400e9f99:0x3ffb20c0 0x400eaf70:0x3ffb20e0 0x400d2ea7:0x3ffb21c0 0x400d2152:0x3ffb2210 0x400d1aea:0x3ffb2240 0x400d7e32:0x3ffb2270 0x4008ce16:0x3ffb2290




ELF file SHA256: ce481e980bc7043c

Rebooting...
���`�B��Χh�	�l<*�� !�����Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Что это значит и можно ли это как-то исправить?
на всякий случай код:
#include <SPI.h>
#include <SD.h>
#define MOSI 13
#define MISO 12
#define SCK 14 
const int chipSelect = 16;

void setup() {
    Serial.begin(9600);
    pinMode(4,OUTPUT);
    SPI.begin(SCK, MISO, MOSI);
    if (!SD.begin(chipSelect)) {
        Serial.println("Card failed, or not present");
        digitalWrite(4,HIGH);

        return;
    }
    // строка, которую мы запишем в файл
    String dataString = "OK";

    // открываем файл, в который будет записана строка
    File dataFile = SD.open("test.txt", FILE_WRITE);

    if (dataFile) {
        // записываем строку в файл
        dataFile.println(dataString);
        dataFile.close();
        Serial.println("Success!");
    } else {
        // выводим ошибку если не удалось открыть файл
        Serial.println("error opening file");
    }
}

void loop() {
}
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Что это значит

подозреваю, что вот эта часть: ���`�B��Χh� �l<*�� !����� -- это вывод скетча на 9600. Откуда LoadProhibited -- непонятно.

можно ли это как-то исправить?

только разобравшись, что происходит. idf.py monitor обычно декодирует стек трейс и выводит соответствующие строчки исходников, можно начать отсюда.
Ответ написан
@mordo445
Обложи код отладочными сообщениями в терминал, надо выяснить на каком моменте, на вызове какой функции контроллер падает.
На моем опыте библиотека SPI довольно капризна, и контроллер падал 1. когда запускалась связь с неработающим устройством. 2. Когда не было устройства на шине. 3. Когда на шине было устройство, а инициализация не проводилась.
И самое главное 4. когда библиотека SPI была не совместима с версией ядра и другими библиотеками, на это я тоже довольно много времени потратил.
Ответ написан
Ruscat
@Ruscat Автор вопроса
начинающий DIYщик
Я так понимаю, дело было в плате. По своей глупости я сжёг программатор которым прошивал ESP32CAM, поэтому пришлось заказывать новую плату. На ней этот пердёж в монитор порта не повторился.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы