|
69 | 69 | // MicroPython runs as a task under FreeRTOS |
70 | 70 | #define MP_TASK_PRIORITY (CONFIG_MICROPY_TASK_PRIORITY) |
71 | 71 | #define MP_TASK_STACK_SIZE (CONFIG_MICROPY_STACK_SIZE * 1024) |
72 | | - |
| 72 | +#define TAG "MP" |
73 | 73 | int vprintf_null(const char *format, va_list ap) { |
74 | 74 | // do nothing: this is used as a log target during raw repl mode |
75 | 75 | return 0; |
@@ -100,26 +100,29 @@ void mp_task(void *pvParameter) { |
100 | 100 | machine_init(); |
101 | 101 |
|
102 | 102 | // TODO: CONFIG_SPIRAM_SUPPORT is for 3.3 compatibility, remove after move to 4.0. |
103 | | - #if CONFIG_ESP32_SPIRAM_SUPPORT || CONFIG_SPIRAM_SUPPORT |
| 103 | + #if CONFIG_ESP32_SPIRAM_SUPPORT |
104 | 104 | // Try to use the entire external SPIRAM directly for the heap |
105 | | - size_t mp_task_heap_size; |
106 | | - void *mp_task_heap = (void *)0x3f800000; |
| 105 | + size_t mp_task_heap_size = 0x00; |
| 106 | + void *mp_task_heap = (void *)0x00; |
| 107 | + ESP_LOGI(TAG, "SPIRAM: %d\n", esp_spiram_get_chip_size()); |
| 108 | + ESP_LOGI(TAG, "Max free: %d\n", heap_caps_get_largest_free_block(MALLOC_CAP_SPIRAM)); |
107 | 109 | switch (esp_spiram_get_chip_size()) { |
108 | 110 | case ESP_SPIRAM_SIZE_16MBITS: |
109 | 111 | mp_task_heap_size = 2 * 1024 * 1024; |
| 112 | + mp_task_heap = heap_caps_malloc(mp_task_heap_size, MALLOC_CAP_SPIRAM); |
110 | 113 | break; |
111 | 114 | case ESP_SPIRAM_SIZE_32MBITS: |
112 | 115 | case ESP_SPIRAM_SIZE_64MBITS: |
113 | | - mp_task_heap_size = 4 * 1024 * 1024; |
| 116 | + mp_task_heap_size = heap_caps_get_largest_free_block(MALLOC_CAP_SPIRAM); |
114 | 117 | mp_task_heap = heap_caps_malloc(mp_task_heap_size, MALLOC_CAP_SPIRAM); |
115 | 118 | break; |
116 | 119 | default: |
117 | 120 | // No SPIRAM, fallback to normal allocation |
118 | 121 | mp_task_heap_size = heap_caps_get_largest_free_block(MALLOC_CAP_8BIT); |
119 | 122 | mp_task_heap = malloc(mp_task_heap_size); |
120 | | - break; |
121 | 123 | } |
122 | | - |
| 124 | + ESP_LOGI(TAG, "Heap adress: %p\n", mp_task_heap); |
| 125 | + ESP_LOGI(TAG, "Heap size: %d\n", mp_task_heap_size); |
123 | 126 | #endif |
124 | 127 |
|
125 | 128 | soft_reset: |
|
0 commit comments