Explorar el Código

1、内存监测改为监测系统可用内存,阈值为50MB

guohui hace 2 años
padre
commit
a9e278a79f
Se han modificado 4 ficheros con 18 adiciones y 8 borrados
  1. 14 5
      pro/src/main.c
  2. 2 1
      pro/src/sys.c
  3. 1 1
      pro/src/sys.h
  4. 1 1
      pub

+ 14 - 5
pro/src/main.c

@@ -3,21 +3,30 @@
 #include "sys.h"
 #include "thread.h"
 
+//#define MEM_DEBUG
+
+#ifdef MEM_DEBUG
+    #define MEM_THRD        177
+    #define MEM_PERIOD      1
+#else
+    #define MEM_THRD        50
+    #define MEM_PERIOD      60
+#endif
 
-#define MEM_THRD  20
 int main(int argc,char* argv[])
 {
     uint32_t cnt=0;
-    int freeMB;
+    int avaMB;
     
     sys_init();
     _global_device_manage_init(&__globalDeviceManage);
 
     while(1) {
         cnt++;
-        if(cnt%60==0) {
-            freeMB = sys_mem_get_free_MB();
-            if(freeMB<MEM_THRD) {
+        if(cnt%MEM_PERIOD==0) {
+            avaMB = sys_mem_get_available_MB();
+            printf("___@@@___ available:  %dMB, threshold: %dMB\n", avaMB, MEM_THRD);
+            if(avaMB<MEM_THRD) {
                 printf("___$$$___ free mem less than %dMB, reboot now ...\n", MEM_THRD);
                 sys_reboot();
             }

+ 2 - 1
pro/src/sys.c

@@ -1048,7 +1048,7 @@ int sys_mem_enough(uint32_t len)
 }
 
 
-int sys_mem_get_free_MB(void)
+int sys_mem_get_available_MB(void)
 {
     int value=0;
     char buff[32];
@@ -1060,6 +1060,7 @@ int sys_mem_get_free_MB(void)
 
     fscanf(fp, "MemTotal: %s kB\n", buff);
     fscanf(fp, "MemFree: %s kB\n", buff);
+    fscanf(fp, "MemAvailable: %s kB\n", buff);
     value = atol(buff)/1024;
     fclose(fp);
 

+ 1 - 1
pro/src/sys.h

@@ -22,7 +22,7 @@ int sys_reboot(void);
 int sys_set_factory(void);
 
 int sys_mem_enough(uint32_t len);
-int sys_mem_get_free_MB(void);
+int sys_mem_get_available_MB(void);
 int sys_is_running(char *prog);
 int sys_get_path(char *path, char *name);
 int sys_get_net(NetworkInfo_t *para, int ipVersion);

+ 1 - 1
pub

@@ -5,7 +5,7 @@
 #PRJ="PRJ_ITK_AC_I3_O1"
 #PRJ="PRJ_LITECH_AC_I1_O1"
 #PRJ="PRJ_LITECH_AC_I3_O1"
-PRJ="PRJ_ANDERSON"
+#PRJ="PRJ_ANDERSON"
 #PRJ="PRJ_USASL_AC_I3_O1"
 #PRJ="PRJ_USASL_AC_I3_O3"
 #PRJ="PRJ_HYPERTEC"