Просмотр исходного кода

update: air640w使用mcu模式时, Lua内存扩展到128k

Wendal Chen 5 лет назад
Родитель
Сommit
e270f95a5a
1 измененных файлов с 16 добавлено и 1 удалено
  1. 16 1
      luat/rtt/luat_malloc_rtt.c

+ 16 - 1
luat/rtt/luat_malloc_rtt.c

@@ -5,9 +5,18 @@
 
 #include "bget.h"
 
+#define ALI8 __attribute__ ((aligned (8)))
+
 #ifdef BSP_USING_WM_LIBRARIES
     #define LUAT_HEAP_SIZE 64*1024
     #define W600_HEAP_ADDR 0x20028000
+    #ifdef RT_USING_WIFI
+
+    #else
+    #define W600_MUC_HEAP_SIZE (64*1024)
+    ALI8 static char w600_mcu_heap[W600_MUC_HEAP_SIZE]; // MCU模式下, rtt起码剩余140kb内存, 用64kb不过分吧
+
+    #endif
 #else
     #ifndef LUAT_HEAP_SIZE
         #ifdef SOC_FAMILY_STM32
@@ -16,11 +25,17 @@
             #define LUAT_HEAP_SIZE 128*1024
         #endif
     #endif
-static char luavm_buff[LUAT_HEAP_SIZE] = {0};
+    ALI8 static char luavm_buff[LUAT_HEAP_SIZE] = {0};
 #endif
 
 static int rtt_mem_init() {
     #ifdef BSP_USING_WM_LIBRARIES
+    #ifdef RT_USING_WIFI
+        // nothing
+    #else
+        // MUC heap 
+        bpool(w600_mcu_heap, W600_MUC_HEAP_SIZE);
+    #endif
     void *ptr = W600_HEAP_ADDR;
     #else
     char *ptr = (char*)luavm_buff;