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

【添加】软件包示例文件

Signed-off-by: chenyong <chenyong@rt-thread.com>
chenyong 5 жил өмнө
parent
commit
1ed63bee6b
4 өөрчлөгдсөн 91 нэмэгдсэн , 2 устгасан
  1. 2 0
      README.md
  2. 3 0
      SConscript
  3. 84 0
      samples/logmgr_sample.c
  4. 2 2
      src/logmgr.c

+ 2 - 0
README.md

@@ -43,6 +43,7 @@ RT-Thread online packages
         [*]     kernel running log support
         [*]     system load monitor log support
         [*]     system memory log support
+        [ ]   Enable samples
             Version (latest)  --->
 ```
 
@@ -57,6 +58,7 @@ RT-Thread online packages
   - **kernel running log support**:开启系统异常后系统运行日志打印
   - **system load monitor log support**:开启系统异常系统负荷监视器打印
   - **system memory log support**:开启系统异常后系统内存相关信息日志打印
+- **Enable samples**:开启示例文件
 
 ## 3、使用说明
 

+ 3 - 0
SConscript

@@ -6,6 +6,9 @@ cwd = GetCurrentDir()
 src = Glob('src/*.c')
 CPPPATH = [cwd + '/inc']
 
+if GetDepend(['LOGMGR_USING_SAMPLES']):
+    src += Glob('samples/*.c')
+
 group = DefineGroup('logmgr', src, depend = ['PKG_USING_LOGMGR'], CPPPATH = CPPPATH)
 
 Return('group')

+ 84 - 0
samples/logmgr_sample.c

@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-01-13     ChenYong     first version
+ */
+
+#include <string.h>
+
+#include <rtthread.h>
+#include <logmgr.h>
+
+static int logmgr_test(int argc, char **argv)
+{
+    volatile int * SCB_CCR = (volatile int *) 0xE000ED14; // SCB->CCR
+    static rt_bool_t is_init = RT_FALSE;
+    int x, y, z;
+
+    if (argc < 2)
+    {
+        rt_kprintf("Please input 'logmgr_test <INIT|DIVBYZERO|UNALIGNED|ASSERT>' \n");
+        return -1;
+    }
+
+    if (!strcmp(argv[1], "INIT"))
+    {
+        /* logmgr initialized */
+        logmgr_init();
+        is_init = RT_TRUE;
+    }
+    else
+    {
+        if (is_init == RT_FALSE)
+        {
+            rt_kprintf("logmgr is not initialized, please input 'logmgr_test INIT'\n");
+            return -1;
+        }
+
+        if (!strcmp(argv[1], "DIVBYZERO"))
+        {
+            *SCB_CCR |= (1 << 4); /* bit4: DIV_0_TRP. */
+            x = 10;
+            y = rt_strlen("");
+            z = x / y;
+            rt_kprintf("z:%d\n", z);
+
+            return 0;
+        }
+        else if (!strcmp(argv[1], "UNALIGNED"))
+        {
+            volatile int * p;
+            volatile int value;
+            *SCB_CCR |= (1 << 3); /* bit3: UNALIGN_TRP. */
+
+            p = (int *) 0x00;
+            value = *p;
+            rt_kprintf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
+
+            p = (int *) 0x04;
+            value = *p;
+            rt_kprintf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
+
+            p = (int *) 0x03;
+            value = *p;
+            rt_kprintf("addr:0x%02X value:0x%08X\r\n", (int) p, value);
+
+            return 0;
+        }
+        else if (!strcmp(argv[1], "ASSERT"))
+        {
+            char *p = RT_NULL;
+            RT_ASSERT(p);
+        }
+    }
+
+    return 0;
+}
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+MSH_CMD_EXPORT(logmgr_test, logmgr feature test);
+#endif

+ 2 - 2
src/logmgr.c

@@ -11,7 +11,7 @@
 #include <rtthread.h>
 #include <logmgr.h>
 
-#ifdef PKG_USING_ULOG_FILE
+#ifdef LOGMGR_USING_ULOG_FILE
 #include <ulog_file.h>
 #endif
 
@@ -32,7 +32,7 @@ int logmgr_init(void)
         return -1;
     }
 
-#ifdef PKG_USING_ULOG_FILE
+#ifdef LOGMGR_USING_ULOG_FILE
     ulog_file_backend_init();
 #endif
 #ifdef LOGMGR_USING_ABORT