ESP32 andauern reset

Gast #7002561
Lesenswert?

Hallo,
ich habe drei ESP32, mit denen ich ESP-NOW implementieren möchte.
Zunächst einen Master. Allerdings resettet sich der ESP immer, seitdem 
ich einen Task hinzugefügt habe.
main.c:
1
void app_main(void)
2
{
3
    static const char *TAG = "main";
4

5
    //Get the derived MAC address for each network interface
6
    uint8_t macAddr[6] = {0};;
7
    ESP_ERROR_CHECK_WITHOUT_ABORT(esp_read_mac(&macAddr[0], ESP_MAC_WIFI_STA));
8
    ESP_LOGI("WIFI_STA MAC", "0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x",
9
             macAddr[0], macAddr[1], macAddr[2],
10
             macAddr[3], macAddr[4], macAddr[5]);
11

12
    ESP_LOGI(TAG, "Starting program");
13
    //Initialize NVS
14
    esp_err_t ret = nvs_flash_init();
15
    if((ret == ESP_ERR_NVS_NO_FREE_PAGES) || (ret == ESP_ERR_NVS_NEW_VERSION_FOUND))
16
    {
17
      ESP_ERROR_CHECK(nvs_flash_erase());
18
      ret = nvs_flash_init();
19
    }
20
    ESP_ERROR_CHECK(ret);
21
    ESP_LOGI(TAG, "Done nvs_flash_init");
22

23
    ESP_LOGI(TAG, "Starting Tasks");
24

25
    initMasterTask();
26

27
    while(1)
28
    {
29
        vTaskDelay(2000 / portTICK_PERIOD_MS);
30
    }
31
}

master.c:
1
static void onDataSent(const uint8_t *mac_addr, esp_now_send_status_t status)
2
{
3
  ESP_LOGI(TAG, "Last Packet Send Status:\t%s", (status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail"));
4
}
5

6

7
static void masterTask(void* pvParameters)
8
{
9
    esp_err_t result;
10
    message_ts message_s;
11

12
    ESP_LOGI(TAG, "starting task");
13

14
    esp_now_peer_info_t peerInfo;
15

16
    ESP_LOGI(TAG, "esp_now_init()");
17
    ESP_ERROR_CHECK(esp_now_init());
18

19
    ESP_LOGI(TAG, "register onDataSent");
20
    esp_now_register_send_cb(onDataSent);
21

22
    memcpy(peerInfo.peer_addr, broadcastAddress, 6);
23
    peerInfo.channel = 0;
24
    peerInfo.encrypt = false;
25

26
    ESP_LOGI(TAG, "esp_now_add_peer");
27
    ESP_ERROR_CHECK(esp_now_add_peer(&peerInfo));
28
    message_s.id = 0x01u;
29
    message_s.x = 1u;
30
    message_s.y = 0u;
31

32
    while(1)
33
    {
34
        ESP_LOGI(TAG, "sendData");
35
        result = esp_now_send(broadcastAddress, (uint8_t*)&message_s, sizeof(message_s));
36
        message_s.x++;
37
        message_s.y--;
38
        vTaskDelay(2000 / portTICK_PERIOD_MS);
39
    }
40
}
41

42

43
void initMasterTask(void)
44
{
45
    xTaskCreate(masterTask, "masterTask", 100000, (void*)1, tskIDLE_PRIORITY, NULL);
46
}

im LOG kann ich sehen
1
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
2
configsip: 0, SPIWP:0xee
3
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
4
mode:DIO, clock div:2
5
load:0x3fff0030,len:4
6
load:0x3fff0034,len:7056
7
ho 0 tail 12 room 4
8
load:0x40078000,len:13212
9
load:0x40080400,len:4568
10
entry 0x400806f4
11
I (30) boot: ESP-IDF v4.2-dirty 2nd stage bootloader
12
I (30) boot: compile time 10:15:36
13
I (31) boot: chip revision: 1
14
I (34) boot_comm: chip revision: 1, min. bootloader chip revision: 0
15
I (41) boot.esp32: SPI Speed      : 40MHz
16
I (45) boot.esp32: SPI Mode       : DIO
17
I (50) boot.esp32: SPI Flash Size : 2MB
18
I (54) boot: Enabling RNG early entropy source...
19
I (60) boot: Partition Table:
20
I (63) boot: ## Label            Usage          Type ST Offset   Length
21
I (71) boot:  0 nvs              WiFi data        01 02 00009000 00006000
22
I (78) boot:  1 phy_init         RF data          01 01 0000f000 00001000
23
I (86) boot:  2 factory          factory app      00 00 00010000 00100000
24
I (93) boot: End of partition table
25
I (97) boot_comm: chip revision: 1, min. application chip revision: 0
26
I (104) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x097bc ( 38844) map
27
I (128) esp_image: segment 1: paddr=0x000197e4 vaddr=0x3ffb0000 size=0x021e0 (  8672) load
28
I (132) esp_image: segment 2: paddr=0x0001b9cc vaddr=0x40080000 size=0x00404 (  1028) load
29
I (135) esp_image: segment 3: paddr=0x0001bdd8 vaddr=0x40080404 size=0x04240 ( 16960) load
30
I (151) esp_image: segment 4: paddr=0x00020020 vaddr=0x400d0020 size=0x18970 (100720) map
31
I (191) esp_image: segment 5: paddr=0x00038998 vaddr=0x40084644 size=0x067a0 ( 26528) load
32
I (209) boot: Loaded app from partition at offset 0x10000
33
I (209) boot: Disabling RNG early entropy source...
34
I (210) cpu_start: Pro cpu up.
35
I (213) cpu_start: Application information:
36
I (218) cpu_start: Project name:     empty
37
I (223) cpu_start: App version:      cf459c5-dirty
38
I (228) cpu_start: Compile time:     Mar 13 2022 11:15:43
39
I (234) cpu_start: ELF file SHA256:  853443c441f6a1ce...
40
I (240) cpu_start: ESP-IDF:          v4.2-dirty
41
I (246) cpu_start: Starting app cpu, entry point is 0x400816cc
42
I (0) cpu_start: App cpu up.
43
I (256) heap_init: Initializing. RAM available for dynamic allocation:
44
I (263) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
45
I (269) heap_init: At 3FFB3F70 len 0002C090 (176 KiB): DRAM
46
I (275) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
47
I (282) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
48
I (288) heap_init: At 4008ADE4 len 0001521C (84 KiB): IRAM
49
I (294) cpu_start: Pro cpu start user code
50
I (313) spi_flash: detected chip: generic
51
I (313) spi_flash: flash io: dio
52
W (313) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
53
I (324) cpu_start: Starting scheduler on PRO CPU.
54
I (0) cpu_start: Starting scheduler on APP CPU.
55
I (334) system_api: Base MAC address is not set
56
I (344) system_api: read default base MAC address from EFUSE
57
I (344) WIFI_STA MAC: 0x8c, 0xaa, 0xb5, 0x8b, 0x25, 0x50
58
I (354) main: Starting program
59
I (394) main: Done nvs_flash_init
60
I (394) main: Starting Tasks
61
I (404) master: starting task
62
I (404) master: esp_now_init()
63
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
64

65
Core  0 register dump:
66
PC      : 0x400d74c0  PS      : 0x00060030  A0      : 0x800d2f83  A1      : 0x3ffd06c0
67
A2      : 0x00000000  A3      : 0x3ffb1428  A4      : 0x3ffb2a28  A5      : 0x00000194
68
A6      : 0x3f403004  A7      : 0x00000000  A8      : 0x80088390  A9      : 0x3ffd0660
69
A10     : 0x00000000  A11     : 0x00000005  A12     : 0x3f403068  A13     : 0x0000001f
70
A14     : 0x00000001  A15     : 0x00000001  SAR     : 0x00000004  EXCCAUSE: 0x0000001c
71
EXCVADDR: 0x0000003c  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffffe
72

73
Backtrace:0x400d74bd:0x3ffd06c0 0x400d2f80:0x3ffd06e0 0x40084e01:0x3ffd0730
74

75

76
ELF file SHA256: 853443c441f6a1ce
77

78
Rebooting...
79
ets Jun  8 2016 00:22:57
80

81
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
82
configsip: 0, SPIWP:0xee
Allerdings bekomme ich auch einen reset, wenn ich alle esp 
funktionalitäten im masterTask auskommentiere.
Gast #7002637
Lesenswert?

Wifi initialisieren hat das Problme behoben.
Des weiteren funktioniert es (bei mir) nicht
1
    memcpy(peerInfo.peer_addr, broadcastAddress, 6);
2
    peerInfo.channel = 0;
3
    peerInfo.encrypt = false;
4
    ESP_LOGI(TAG, "esp_now_add_peer");
5
    ESP_ERROR_CHECK(esp_now_add_peer(&peerInfo));

als ich peerInfo ebenfalls als const definiert habe ging auch dies.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren