summaryrefslogtreecommitdiff
path: root/examples/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'examples/kernel')
-rw-r--r--examples/kernel/cpuusage.c8
-rw-r--r--examples/kernel/event_simple.c8
-rw-r--r--examples/kernel/heap_malloc.c9
-rw-r--r--examples/kernel/heap_realloc.c9
-rw-r--r--examples/kernel/mbox_send_wait.c9
-rw-r--r--examples/kernel/mbox_simple.c9
-rw-r--r--examples/kernel/memp_simple.c9
-rw-r--r--examples/kernel/messageq_simple.c9
-rwxr-xr-xexamples/kernel/mutex_priority.c9
-rw-r--r--examples/kernel/mutex_simple.c7
-rw-r--r--examples/kernel/semaphore_buffer_worker.c9
-rw-r--r--examples/kernel/semaphore_dynamic.c9
-rw-r--r--examples/kernel/semaphore_priority.c9
-rw-r--r--examples/kernel/semaphore_producer_consumer.c9
-rw-r--r--examples/kernel/semaphore_static.c9
-rw-r--r--examples/kernel/tc_comm.c9
-rw-r--r--examples/kernel/tc_comm.h11
-rw-r--r--examples/kernel/tc_sample.c9
-rw-r--r--examples/kernel/thread_delay.c9
-rw-r--r--examples/kernel/thread_delete.c9
-rw-r--r--examples/kernel/thread_detach.c9
-rw-r--r--examples/kernel/thread_dynamic.c9
-rw-r--r--examples/kernel/thread_dynamic_simple.c9
-rw-r--r--examples/kernel/thread_priority.c9
-rw-r--r--examples/kernel/thread_resume.c9
-rw-r--r--examples/kernel/thread_same_priority.c9
-rw-r--r--examples/kernel/thread_static.c9
-rw-r--r--examples/kernel/thread_static_simple.c9
-rw-r--r--examples/kernel/thread_suspend.c9
-rw-r--r--examples/kernel/thread_yield.c8
-rw-r--r--examples/kernel/timer_control.c11
-rw-r--r--examples/kernel/timer_dynamic.c9
-rw-r--r--examples/kernel/timer_static.c9
-rw-r--r--examples/kernel/timer_stop_self.c9
-rw-r--r--examples/kernel/timer_timeout.c75
35 files changed, 343 insertions, 37 deletions
diff --git a/examples/kernel/cpuusage.c b/examples/kernel/cpuusage.c
index 490061ddb7..5f9d480139 100644
--- a/examples/kernel/cpuusage.c
+++ b/examples/kernel/cpuusage.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
#include <rtthread.h>
#include <rthw.h>
diff --git a/examples/kernel/event_simple.c b/examples/kernel/event_simple.c
index e377e721bb..d2a2948fc7 100644
--- a/examples/kernel/event_simple.c
+++ b/examples/kernel/event_simple.c
@@ -1,4 +1,12 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+/*
* 程序清单:事件例程
*
* 这个程序会创建3个动态线程及初始化一个静态事件对象
diff --git a/examples/kernel/heap_malloc.c b/examples/kernel/heap_malloc.c
index 271202ad8f..e2fa4511e7 100644
--- a/examples/kernel/heap_malloc.c
+++ b/examples/kernel/heap_malloc.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/heap_realloc.c b/examples/kernel/heap_realloc.c
index bc7b56a999..ab603c5d8d 100644
--- a/examples/kernel/heap_realloc.c
+++ b/examples/kernel/heap_realloc.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/mbox_send_wait.c b/examples/kernel/mbox_send_wait.c
index 86513fcb13..67f358ecea 100644
--- a/examples/kernel/mbox_send_wait.c
+++ b/examples/kernel/mbox_send_wait.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:邮箱例程_发送阻塞
*
* 这个程序用来测试邮箱发送时候的阻塞情况。
diff --git a/examples/kernel/mbox_simple.c b/examples/kernel/mbox_simple.c
index 5d588decb3..3f39bc0016 100644
--- a/examples/kernel/mbox_simple.c
+++ b/examples/kernel/mbox_simple.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:邮箱例程
*
* 这个程序会创建2个动态线程,一个静态的邮箱对象,其中一个线程往邮箱中发送邮件,
diff --git a/examples/kernel/memp_simple.c b/examples/kernel/memp_simple.c
index ab8f3b94ed..055db41912 100644
--- a/examples/kernel/memp_simple.c
+++ b/examples/kernel/memp_simple.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:内存池例程
*
* 这个程序会创建一个静态的内存池对象,2个动态线程。两个线程会试图分别从内存池中获得
diff --git a/examples/kernel/messageq_simple.c b/examples/kernel/messageq_simple.c
index 51b371f59c..62504bebb7 100644
--- a/examples/kernel/messageq_simple.c
+++ b/examples/kernel/messageq_simple.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:消息队列例程
*
* 这个程序会创建3个动态线程,一个线程会从消息队列中收取消息;一个线程会定时给消
diff --git a/examples/kernel/mutex_priority.c b/examples/kernel/mutex_priority.c
index f647fc4039..c1db934157 100755
--- a/examples/kernel/mutex_priority.c
+++ b/examples/kernel/mutex_priority.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 创建7个进程,tid20、tid21、tid22、tid23、tid24、tid25、tid26、tid27、tid28、tid29
* 各任务优先级分别为20、21、22、23、24、25、26、27、28、29,
* 其中tid26最先获得锁,tid22不需要使用到互斥锁,其他所有进程均需要使用互斥锁,
diff --git a/examples/kernel/mutex_simple.c b/examples/kernel/mutex_simple.c
index afbab3a3e1..4f6c5d7d28 100644
--- a/examples/kernel/mutex_simple.c
+++ b/examples/kernel/mutex_simple.c
@@ -1,5 +1,10 @@
/*
- * 程序清单:
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
*/
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/semaphore_buffer_worker.c b/examples/kernel/semaphore_buffer_worker.c
index db3285c74b..5e4723b417 100644
--- a/examples/kernel/semaphore_buffer_worker.c
+++ b/examples/kernel/semaphore_buffer_worker.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:信号量实现生产者消费者间的互斥
*
* 在这个程序中,会创建两个线程,一个是生成者线程worker一个是消费者线程thread
diff --git a/examples/kernel/semaphore_dynamic.c b/examples/kernel/semaphore_dynamic.c
index dc088e6e44..564d73c496 100644
--- a/examples/kernel/semaphore_dynamic.c
+++ b/examples/kernel/semaphore_dynamic.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:动态信号量
*
* 这个例子中将创建一个动态信号量(初始值为0 )及一个动态线程,在这个动态线程中
diff --git a/examples/kernel/semaphore_priority.c b/examples/kernel/semaphore_priority.c
index d6e3ce3914..7e37a826cb 100644
--- a/examples/kernel/semaphore_priority.c
+++ b/examples/kernel/semaphore_priority.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/semaphore_producer_consumer.c b/examples/kernel/semaphore_producer_consumer.c
index a240cfa8b2..b6f996ff57 100644
--- a/examples/kernel/semaphore_producer_consumer.c
+++ b/examples/kernel/semaphore_producer_consumer.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:生产者消费者例子
*
* 这个例子中将创建两个线程用于实现生产者消费者问题
diff --git a/examples/kernel/semaphore_static.c b/examples/kernel/semaphore_static.c
index cb199886a4..641b0bc7c9 100644
--- a/examples/kernel/semaphore_static.c
+++ b/examples/kernel/semaphore_static.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:静态信号量
*
* 这个例子中将创建一个静态信号量(初始值为0 )及一个静态线程,在这个静态线程中
diff --git a/examples/kernel/tc_comm.c b/examples/kernel/tc_comm.c
index f6493389a6..7153412aa0 100644
--- a/examples/kernel/tc_comm.c
+++ b/examples/kernel/tc_comm.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include "tc_comm.h"
#ifdef RT_USING_FINSH
#include <finsh.h>
diff --git a/examples/kernel/tc_comm.h b/examples/kernel/tc_comm.h
index aee1fec2d2..17dd8eb924 100644
--- a/examples/kernel/tc_comm.h
+++ b/examples/kernel/tc_comm.h
@@ -1,7 +1,16 @@
+
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
#ifndef __TC_COMM_H__
#define __TC_COMM_H__
-/*
+/*
* RT-Thread TestCase
*
*/
diff --git a/examples/kernel/tc_sample.c b/examples/kernel/tc_sample.c
index 212875b716..272edc0e39 100644
--- a/examples/kernel/tc_sample.c
+++ b/examples/kernel/tc_sample.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_delay.c b/examples/kernel/thread_delay.c
index f9404d704c..50740e2c8f 100644
--- a/examples/kernel/thread_delay.c
+++ b/examples/kernel/thread_delay.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_delete.c b/examples/kernel/thread_delete.c
index 72eb4ec008..924a823f35 100644
--- a/examples/kernel/thread_delete.c
+++ b/examples/kernel/thread_delete.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:删除线程
*
* 这个例子会创建两个线程,在一个线程中删除另外一个线程。
diff --git a/examples/kernel/thread_detach.c b/examples/kernel/thread_detach.c
index 9370f212e1..d0d72d017b 100644
--- a/examples/kernel/thread_detach.c
+++ b/examples/kernel/thread_detach.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:线程脱离
*
* 这个例子会创建两个线程,在其中一个线程中执行对另一个线程的脱离。
diff --git a/examples/kernel/thread_dynamic.c b/examples/kernel/thread_dynamic.c
index 0afb7f8f84..35c67c02fc 100644
--- a/examples/kernel/thread_dynamic.c
+++ b/examples/kernel/thread_dynamic.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_dynamic_simple.c b/examples/kernel/thread_dynamic_simple.c
index 28944b1f34..dc378a6696 100644
--- a/examples/kernel/thread_dynamic_simple.c
+++ b/examples/kernel/thread_dynamic_simple.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:动态线程
*
* 这个程序会初始化2个动态线程,它们拥有共同的入口函数,但参数不相同
diff --git a/examples/kernel/thread_priority.c b/examples/kernel/thread_priority.c
index 0045b0e578..abf45bbe07 100644
--- a/examples/kernel/thread_priority.c
+++ b/examples/kernel/thread_priority.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_resume.c b/examples/kernel/thread_resume.c
index cea814616f..e776466326 100644
--- a/examples/kernel/thread_resume.c
+++ b/examples/kernel/thread_resume.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:唤醒线程
*
* 这个例子中将创建两个动态线程,低优先级线程将挂起自身,然后
diff --git a/examples/kernel/thread_same_priority.c b/examples/kernel/thread_same_priority.c
index c7da2087a0..a238e24932 100644
--- a/examples/kernel/thread_same_priority.c
+++ b/examples/kernel/thread_same_priority.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_static.c b/examples/kernel/thread_static.c
index 3033f2cda1..9234255679 100644
--- a/examples/kernel/thread_static.c
+++ b/examples/kernel/thread_static.c
@@ -1,3 +1,12 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/thread_static_simple.c b/examples/kernel/thread_static_simple.c
index d9e3ff6f61..e0021d2c5f 100644
--- a/examples/kernel/thread_static_simple.c
+++ b/examples/kernel/thread_static_simple.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:静态线程
*
* 这个程序会初始化2个静态线程,它们拥有共同的入口函数,但参数不相同
diff --git a/examples/kernel/thread_suspend.c b/examples/kernel/thread_suspend.c
index 947cc3cbf6..2219c7b8d6 100644
--- a/examples/kernel/thread_suspend.c
+++ b/examples/kernel/thread_suspend.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:挂起线程
*
* 这个例子中将创建两个动态线程,高优先级线程将在一定时刻后挂起低优先级线程。
diff --git a/examples/kernel/thread_yield.c b/examples/kernel/thread_yield.c
index 4ed6b90e2a..97e57ba841 100644
--- a/examples/kernel/thread_yield.c
+++ b/examples/kernel/thread_yield.c
@@ -1,6 +1,12 @@
/*
- * 程序清单:
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
*/
+
#include <rtthread.h>
#include "tc_comm.h"
diff --git a/examples/kernel/timer_control.c b/examples/kernel/timer_control.c
index 9fcb0d4c4d..c92d558d5c 100644
--- a/examples/kernel/timer_control.c
+++ b/examples/kernel/timer_control.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:动态定时器例程
*
* 这个例程会创建1个动态周期型定时器对象,然后控制它进行定时时间长度的更改。
@@ -14,7 +23,7 @@ static rt_uint8_t count;
static void timeout1(void* parameter)
{
rt_tick_t timeout = 50;
-
+
rt_kprintf("periodic timer is timeout\n");
count ++;
diff --git a/examples/kernel/timer_dynamic.c b/examples/kernel/timer_dynamic.c
index 1260d50c09..35d7b845dd 100644
--- a/examples/kernel/timer_dynamic.c
+++ b/examples/kernel/timer_dynamic.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:动态定时器例程
*
* 这个例程会创建两个动态定时器对象,一个是单次定时,一个是周期性的定时
diff --git a/examples/kernel/timer_static.c b/examples/kernel/timer_static.c
index 884927bbc3..1523869b9a 100644
--- a/examples/kernel/timer_static.c
+++ b/examples/kernel/timer_static.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:定时器例程
*
* 这个程序会初始化2个静态定时器,一个是单次定时,一个是周期性的定时
diff --git a/examples/kernel/timer_stop_self.c b/examples/kernel/timer_stop_self.c
index 38ec9c441b..584bc4128e 100644
--- a/examples/kernel/timer_stop_self.c
+++ b/examples/kernel/timer_stop_self.c
@@ -1,4 +1,13 @@
/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
* 程序清单:动态定时器例程
*
* 这个例程会创建1个动态周期型定时器对象
diff --git a/examples/kernel/timer_timeout.c b/examples/kernel/timer_timeout.c
index d1a7099e2e..40bbbf2831 100644
--- a/examples/kernel/timer_timeout.c
+++ b/examples/kernel/timer_timeout.c
@@ -1,21 +1,30 @@
/*
- * �����嵥����Ϣ��������
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
- * �������ᴴ��3����̬�̣߳�һ���̻߳����Ϣ��������ȡ��Ϣ��һ���̻߳ᶨʱ����
- * Ϣ���з�����Ϣ��һ���̻߳ᶨʱ����Ϣ���з��ͽ�����Ϣ��
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ *
+ */
+
+/*
+ * 程序清单:消息队列例程
+ *
+ * 这个程序会创建3个动态线程,一个线程会从消息队列中收取消息;一个线程会定时给消
+ * 息队列发送消息;一个线程会定时给消息队列发送紧急消息。
*/
#include <rtthread.h>
#include "tc_comm.h"
-/* ָ���߳̿��ƿ��ָ�� */
+/* 指向线程控制块的指针 */
static rt_thread_t tid = RT_NULL;
-/* ��Ϣ���п��ƿ� */
+/* 消息队列控制块 */
static struct rt_messagequeue mq;
-/* ��Ϣ�������õ��ķ�����Ϣ���ڴ�� */
+/* 消息队列中用到的放置消息的内存池 */
static char msg_pool[2048];
-/* ��ʱ���Ŀ��ƿ� */
+/* 定时器的控制块 */
static struct rt_timer timer;
static rt_uint16_t no = 0;
static void timer_timeout(void* parameter)
@@ -27,24 +36,24 @@ static void timer_timeout(void* parameter)
rt_mq_send(&mq, &buf[0], length);
}
-/* �߳���ں��� */
+/* 线程入口函数 */
static void thread_entry(void* parameter)
{
char buf[64];
rt_err_t result;
- /* ��ʼ����ʱ�� */
- rt_timer_init(&timer, "timer", /* ��ʱ�������� timer1 */
- timer_timeout, /* ��ʱʱ�ص��Ĵ������� */
- RT_NULL, /* ��ʱ��������ڲ��� */
- 1, /* ��ʱ���ȣ���OS TickΪ��λ����1��OS Tick */
- RT_TIMER_FLAG_PERIODIC); /* �����Զ�ʱ�� */
+ /* 初始化定时器 */
+ rt_timer_init(&timer, "timer", /* 定时器名字是 timer1 */
+ timer_timeout, /* 超时时回调的处理函数 */
+ RT_NULL, /* 超时函数的入口参数 */
+ 1, /* 定时长度,以OS Tick为单位,即1个OS Tick */
+ RT_TIMER_FLAG_PERIODIC); /* 周期性定时器 */
while (1)
{
rt_memset(&buf[0], 0, sizeof(buf));
- /* ����Ϣ�����н�����Ϣ */
+ /* 从消息队列中接收消息 */
result = rt_mq_recv(&mq, &buf[0], sizeof(buf), 1);
if (result == RT_EOK)
{
@@ -59,16 +68,16 @@ static void thread_entry(void* parameter)
int timer_timeout_init()
{
- /* ��ʼ����Ϣ���� */
- rt_mq_init(&mq, "mqt",
- &msg_pool[0], /* �ڴ��ָ��msg_pool */
- 128 - sizeof(void*), /* ÿ����Ϣ�Ĵ�С�� 128 - void* */
- sizeof(msg_pool), /* �ڴ�صĴ�С��msg_pool�Ĵ�С */
- RT_IPC_FLAG_FIFO); /* ����ж���̵߳ȴ������������ȵõ��ķ���������Ϣ */
+ /* 初始化消息队列 */
+ rt_mq_init(&mq, "mqt",
+ &msg_pool[0], /* 内存池指向msg_pool */
+ 128 - sizeof(void*), /* 每个消息的大小是 128 - void* */
+ sizeof(msg_pool), /* 内存池的大小是msg_pool的大小 */
+ RT_IPC_FLAG_FIFO); /* 如果有多个线程等待,按照先来先得到的方法分配消息 */
- /* �����߳� */
+ /* 创建线程 */
tid = rt_thread_create("t",
- thread_entry, RT_NULL, /* �߳������thread_entry, ��ڲ�����RT_NULL */
+ thread_entry, RT_NULL, /* 线程入口是thread_entry, 入口参数是RT_NULL */
THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
if (tid != RT_NULL)
rt_thread_startup(tid);
@@ -81,38 +90,38 @@ int timer_timeout_init()
#ifdef RT_USING_TC
static void _tc_cleanup()
{
- /* �����������������󣬽������л��������̣߳�����Ӧ�ж� */
+ /* 调度器上锁,上锁后,将不再切换到其他线程,仅响应中断 */
rt_enter_critical();
- /* ɾ���߳� */
+ /* 删除线程 */
if (tid != RT_NULL && tid->stat != RT_THREAD_CLOSE)
rt_thread_delete(tid);
- /* ִ����Ϣ���ж������� */
+ /* 执行消息队列对象脱离 */
rt_mq_detach(&mq);
- /* ִ�ж�ʱ������ */
+ /* 执行定时器脱离 */
rt_timer_detach(&timer);
- /* ���������� */
+ /* 调度器解锁 */
rt_exit_critical();
- /* ����TestCase״̬ */
+ /* 设置TestCase状态 */
tc_done(TC_STAT_PASSED);
}
int _tc_timer_timeout()
{
- /* ����TestCase�����ص����� */
+ /* 设置TestCase清理回调函数 */
tc_cleanup(_tc_cleanup);
timer_timeout_init();
- /* ����TestCase���е��ʱ�� */
+ /* 返回TestCase运行的最长时间 */
return 100;
}
-/* ����������finsh shell�� */
+/* 输出函数命令到finsh shell中 */
FINSH_FUNCTION_EXPORT(_tc_timer_timeout, a thread timer testcase);
#else
-/* �û�Ӧ����� */
+/* 用户应用入口 */
int rt_application_init()
{
timer_timeout_init();