Răsfoiți Sursa

【删除】对于 Finsh 组件的依赖。

Signed-off-by: armink <armink.ztl@gmail.com>
armink 7 ani în urmă
părinte
comite
7e765044bb
4 a modificat fișierele cu 13 adăugiri și 7 ștergeri
  1. 5 0
      port/modrtthread.c
  2. 1 3
      port/moduos_file.c
  3. 6 2
      port/mpthreadport.c
  4. 1 2
      port/mpy_main.c

+ 5 - 0
port/modrtthread.c

@@ -50,8 +50,13 @@ STATIC mp_obj_t mod_current_tid(void) {
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_current_tid_obj, mod_current_tid);
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_current_tid_obj, mod_current_tid);
 
 
 STATIC mp_obj_t mod_stacks_analyze(void) {
 STATIC mp_obj_t mod_stacks_analyze(void) {
+#ifdef RT_USING_FINSH
     extern long list_thread(void);
     extern long list_thread(void);
     list_thread();
     list_thread();
+#else
+    rt_kprintf("Not available when FINSH module disable\n");
+#endif
+
     return mp_const_none;
     return mp_const_none;
 }
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_stacks_analyze_obj, mod_stacks_analyze);
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_stacks_analyze_obj, mod_stacks_analyze);

+ 1 - 3
port/moduos_file.c

@@ -161,8 +161,6 @@ mp_obj_t mp_posix_mkdir(mp_obj_t path_in) {
 MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_mkdir_obj, mp_posix_mkdir);
 MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_mkdir_obj, mp_posix_mkdir);
 
 
 mp_obj_t mp_posix_remove(uint n_args, const mp_obj_t *arg) {
 mp_obj_t mp_posix_remove(uint n_args, const mp_obj_t *arg) {
-    extern void rm(const char *filename);
-
     int index;
     int index;
     if (n_args == 0) {
     if (n_args == 0) {
         rt_kprintf("Usage: rm FILE...\n");
         rt_kprintf("Usage: rm FILE...\n");
@@ -171,7 +169,7 @@ mp_obj_t mp_posix_remove(uint n_args, const mp_obj_t *arg) {
     }
     }
     for (index = 0; index < n_args; index++) {
     for (index = 0; index < n_args; index++) {
         //rt_kprintf("Remove %s.\n", mp_obj_str_get_str(arg[index]));
         //rt_kprintf("Remove %s.\n", mp_obj_str_get_str(arg[index]));
-        rm(mp_obj_str_get_str(arg[index]));
+        unlink(mp_obj_str_get_str(arg[index]));
     }
     }
     // TODO  recursive deletion
     // TODO  recursive deletion
     return mp_const_none;
     return mp_const_none;

+ 6 - 2
port/mpthreadport.c

@@ -38,7 +38,6 @@
 
 
 #define MP_THREAD_MIN_STACK_SIZE                 (4 * 1024)
 #define MP_THREAD_MIN_STACK_SIZE                 (4 * 1024)
 #define MP_THREAD_DEFAULT_STACK_SIZE             (MP_THREAD_MIN_STACK_SIZE + 1024)
 #define MP_THREAD_DEFAULT_STACK_SIZE             (MP_THREAD_MIN_STACK_SIZE + 1024)
-#define MP_THREAD_PRIORITY                       (FINSH_THREAD_PRIORITY - 1)
 
 
 #define MP_THREAD_STATUS_READY                   0
 #define MP_THREAD_STATUS_READY                   0
 #define MP_THREAD_STATUS_RUNNING                 1
 #define MP_THREAD_STATUS_RUNNING                 1
@@ -160,12 +159,17 @@ void mp_thread_create_ex(void *(*entry)(void*), void *arg, size_t *stack_size, i
 
 
 void mp_thread_create(void *(*entry)(void*), void *arg, size_t *stack_size) {
 void mp_thread_create(void *(*entry)(void*), void *arg, size_t *stack_size) {
     static uint8_t count = 0;
     static uint8_t count = 0;
+    int priority = rt_thread_self()->current_priority;
     char name[RT_NAME_MAX];
     char name[RT_NAME_MAX];
 
 
+    if (priority > 0) {
+        priority --;
+    }
+
     /* build name */
     /* build name */
     rt_snprintf(name, sizeof(name), "mp%02d", count++);
     rt_snprintf(name, sizeof(name), "mp%02d", count++);
 
 
-    mp_thread_create_ex(entry, arg, stack_size, MP_THREAD_PRIORITY, name);
+    mp_thread_create_ex(entry, arg, stack_size, priority, name);
 }
 }
 
 
 void mp_thread_finish(void) {
 void mp_thread_finish(void) {

+ 1 - 2
port/mpy_main.c

@@ -29,7 +29,6 @@
 #include <string.h>
 #include <string.h>
 
 
 #include <rtthread.h>
 #include <rtthread.h>
-#include <shell.h>
 
 
 #ifdef RT_USING_DFS
 #ifdef RT_USING_DFS
 #include <dfs_posix.h>
 #include <dfs_posix.h>
@@ -78,7 +77,7 @@ void mpy_main(const char *filename) {
 
 
     mp_stack_set_top(stack_top);
     mp_stack_set_top(stack_top);
     // Make MicroPython's stack limit somewhat smaller than full stack available
     // Make MicroPython's stack limit somewhat smaller than full stack available
-    mp_stack_set_limit(FINSH_THREAD_STACK_SIZE - 1024);
+    mp_stack_set_limit(rt_thread_self()->stack_size - 1024);
 
 
 #if MICROPY_ENABLE_GC
 #if MICROPY_ENABLE_GC
     heap = rt_malloc(MICROPY_HEAP_SIZE);
     heap = rt_malloc(MICROPY_HEAP_SIZE);