浏览代码

fix compiling issue when RT_USING_HEAP is not defined.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1149 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong 14 年之前
父节点
当前提交
30967678b1
共有 3 个文件被更改,包括 8 次插入9 次删除
  1. 2 4
      src/idle.c
  2. 6 2
      src/scheduler.c
  3. 0 3
      src/thread.c

+ 2 - 4
src/idle.c

@@ -27,9 +27,7 @@ static struct rt_thread idle;
 ALIGN(RT_ALIGN_SIZE)
 static rt_uint8_t rt_thread_stack[IDLE_THREAD_STACK_SIZE];
 
-#ifdef RT_USING_HEAP
 extern rt_list_t rt_thread_defunct;
-#endif
 
 #ifdef RT_USING_HOOK
 /**
@@ -60,7 +58,6 @@ void rt_thread_idle_sethook(void (*hook)())
  */
 void rt_thread_idle_excute(void)
 {
-#ifdef RT_USING_HEAP
 	/* check the defunct thread list */
 	if (!rt_list_isempty(&rt_thread_defunct))
 	{
@@ -113,6 +110,7 @@ void rt_thread_idle_excute(void)
 		/* enable interrupt */
 		rt_hw_interrupt_enable(lock);
 
+#ifdef RT_USING_HEAP
 #ifdef RT_USING_MODULE
 		/* the thread belongs to an application module */
 		if(thread->flags & RT_OBJECT_FLAG_MODULE)
@@ -138,8 +136,8 @@ void rt_thread_idle_excute(void)
 		/* unload module */
 		if(module->nref == 0) 	rt_module_unload(module);
 #endif
-	}
 #endif
+	}
 }
 
 static void rt_thread_idle_entry(void* parameter)

+ 6 - 2
src/scheduler.c

@@ -48,9 +48,7 @@ rt_uint8_t rt_thread_ready_table[32];
 rt_uint32_t rt_thread_ready_priority_group;
 #endif
 
-#ifdef RT_USING_HEAP
 rt_list_t rt_thread_defunct;
-#endif
 
 const rt_uint8_t rt_lowest_bitmap[] =
 {
@@ -106,6 +104,12 @@ static void _rt_scheduler_stack_check(struct rt_thread* thread)
         rt_uint32_t level;
 
         rt_kprintf("thread:%s stack overflow\n", thread->name);
+		#ifdef RT_USING_FINSH
+		{
+			extern long list_thread(void);
+			list_thread();
+		}
+		#endif
         level = rt_hw_interrupt_disable();
         while (level);
     }

+ 0 - 3
src/thread.c

@@ -31,10 +31,7 @@
 extern rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX];
 extern struct rt_thread* rt_current_thread;
 extern rt_uint8_t rt_current_priority;
-
-#ifdef RT_USING_HEAP
 extern rt_list_t rt_thread_defunct;
-#endif
 
 static void rt_thread_exit(void);
 void rt_thread_timeout(void* parameter);