Эх сурвалжийг харах

update: 云编译的PSRAM使用单独的小节,并要求用户主动选择PSRAM大小

芯片无法判断psram大小
Wendal Chen 1 жил өмнө
parent
commit
a35800d910

+ 7 - 0
app/port/luat_conf_bsp.h

@@ -412,8 +412,15 @@
 #endif
 #endif
 
+#ifndef LUAT_USE_PSRAM
+#if defined(LUAT_USE_PSRAM_1M) || defined(LUAT_USE_PSRAM_2M) || defined(LUAT_USE_PSRAM_4M) || defined(LUAT_USE_PSRAM_8M)
+#define LUAT_USE_PSRAM 1
+#endif
 #endif
 
 #ifdef LUAT_USE_SOFT_UART
 #undef LUAT_USE_SOFT_UART
 #endif
+
+#endif
+

+ 14 - 19
app/port/luat_malloc_air101.c

@@ -68,7 +68,15 @@ extern luat_profiler_mem_t profiler_memregs[];
 
 extern uint32_t __ram_end;
 #ifdef LUAT_USE_PSRAM
-size_t psram_size = 0;
+#ifdef LUAT_USE_PSRAM_1M
+const size_t psram_size = 1 * 1024 * 1024;
+#elif defined(LUAT_USE_PSRAM_2M)
+const size_t psram_size = 2 * 1024 * 1024;
+#elif defined(LUAT_USE_PSRAM_4M)
+const size_t psram_size = 4 * 1024 * 1024;
+#else
+const size_t psram_size = 8 * 1024 * 1024;
+#endif
 size_t psram_lua_size = 0;
 size_t psram_sys_size = 0;
 #include "luat_bget.h"
@@ -89,27 +97,14 @@ void luat_heap_init(void) {
 #endif
 
 #ifdef LUAT_USE_PSRAM
-	const char test[] = {0xAA, 0xBB, 0xCC, 0xDD};
 	char* psram_ptr = (void*)0x30010000;
-	// LLOGD("check psram ...");
-    for (size_t i = 0; i <= 16; i++)
-    {
-        psram_size = i * 512 * 1024;
-        memcpy(psram_ptr + psram_size + 128 * 1024, test, 4);
-        if (memcmp(psram_ptr + psram_size + 128 * 1024, test, 4)) {
-            break;
-        }
-    }
-    if (psram_size <= 512 * 1024) {
-        psram_size = 0;
-    }
     LLOGD("PSRAM size %dkb", psram_size / 1024);
 	if (psram_size == 0) {
-		LLOGE("psram is enable, but can't access!!");
-        #if (LUAT_HEAP_P1_SIZE > 0)
-            heap_ext = tls_mem_alloc(LUAT_HEAP_P1_SIZE);
-            bpool((void*)heap_ext, LUAT_HEAP_P1_SIZE);
-        #endif
+		// LLOGE("psram is enable, but can't access!!");
+        // #if (LUAT_HEAP_P1_SIZE > 0)
+        //     heap_ext = tls_mem_alloc(LUAT_HEAP_P1_SIZE);
+        //     bpool((void*)heap_ext, LUAT_HEAP_P1_SIZE);
+        // #endif
 	}
 	else {
 		// LLOGD("psram is ok");

+ 50 - 7
cloudbuild/air101.meta.json

@@ -180,13 +180,6 @@
                         "fsize": 272760,
                         "dft": false
                     },
-                    {
-                        "name": "psram",
-                        "content": "外挂PSRAM(必须焊上psram芯片才能使用)",
-                        "rsize": 588,
-                        "fsize": 271940,
-                        "dft": false
-                    },
                     {
                         "name": "lcdseg",
                         "content": "段码屏(段式屏)",
@@ -642,6 +635,56 @@
                     }
                 ]
             },
+            {
+                "icon": "zmdi-puzzle-piece",
+                "name": "@param",
+                "content": "PSRAM配置项",
+                "rsize": 0,
+                "children" : [
+                    {
+                        "name": "@psram_comments",
+                        "content": "使用PSRAM功能,必须焊上psram芯片才能使用,否则必死机. 开发板没有自带PSRAM芯片!!!",
+                        "rsize": 588,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram",
+                        "content": "开启PSRAM功能, 请确保已经焊好PSRAM芯片, 并选择正确的PSRAM大小, 芯片不具有判断PSRAM大小的能力",
+                        "rsize": 1024,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_1m",
+                        "content": "外挂PSRAM芯片为1M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_2m",
+                        "content": "外挂PSRAM芯片为2M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_4m",
+                        "content": "外挂PSRAM芯片为4M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_8m",
+                        "content": "外挂PSRAM芯片为8M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    }
+                ]
+            },
             {
                 "icon": "zmdi-puzzle-piece",
                 "name": "@EXT5",

+ 50 - 7
cloudbuild/air103.meta.json

@@ -180,13 +180,6 @@
                         "fsize": 272760,
                         "dft": false
                     },
-                    {
-                        "name": "psram",
-                        "content": "外挂PSRAM(必须焊上psram芯片才能使用)",
-                        "rsize": 588,
-                        "fsize": 271940,
-                        "dft": false
-                    },
                     {
                         "name": "lcdseg",
                         "content": "段码屏(段式屏)",
@@ -292,6 +285,56 @@
                     }
                 ]
             },
+            {
+                "icon": "zmdi-puzzle-piece",
+                "name": "@param",
+                "content": "PSRAM配置项",
+                "rsize": 0,
+                "children" : [
+                    {
+                        "name": "@psram_comments",
+                        "content": "使用PSRAM功能,必须焊上psram芯片才能使用,否则必死机. 开发板没有自带PSRAM芯片!!!",
+                        "rsize": 588,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram",
+                        "content": "开启PSRAM功能, 请确保已经焊好PSRAM芯片, 并选择正确的PSRAM大小, 芯片不具有判断PSRAM大小的能力",
+                        "rsize": 1024,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_1m",
+                        "content": "外挂PSRAM芯片为1M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_2m",
+                        "content": "外挂PSRAM芯片为2M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_4m",
+                        "content": "外挂PSRAM芯片为4M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_8m",
+                        "content": "外挂PSRAM芯片为8M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    }
+                ]
+            },
             {
                 "icon": "zmdi-input-composite",
                 "name": "@NETWORKS",

+ 50 - 7
cloudbuild/air601.meta.json

@@ -303,13 +303,6 @@
                         "fsize": 272760,
                         "dft": false
                     },
-                    {
-                        "name": "psram",
-                        "content": "外挂PSRAM(必须焊上psram芯片才能使用)",
-                        "rsize": 588,
-                        "fsize": 271940,
-                        "dft": false
-                    },
                     {
                         "name": "lcdseg",
                         "content": "段码屏(段式屏)",
@@ -415,6 +408,56 @@
                     }
                 ]
             },
+            {
+                "icon": "zmdi-puzzle-piece",
+                "name": "@param",
+                "content": "PSRAM配置项",
+                "rsize": 0,
+                "children" : [
+                    {
+                        "name": "@psram_comments",
+                        "content": "使用PSRAM功能,必须焊上psram芯片才能使用,否则必死机. 开发板没有自带PSRAM芯片!!!",
+                        "rsize": 588,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram",
+                        "content": "开启PSRAM功能, 请确保已经焊好PSRAM芯片, 并选择正确的PSRAM大小, 芯片不具有判断PSRAM大小的能力",
+                        "rsize": 1024,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_1m",
+                        "content": "外挂PSRAM芯片为1M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_2m",
+                        "content": "外挂PSRAM芯片为2M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_4m",
+                        "content": "外挂PSRAM芯片为4M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    },
+                    {
+                        "name": "psram_8m",
+                        "content": "外挂PSRAM芯片为8M字节",
+                        "rsize": 0,
+                        "fsize": 271940,
+                        "dft": false
+                    }
+                ]
+            },
             {
                 "icon": "zmdi-card-sd",
                 "name": "@LIB",