Bernard Xiong
b1f1536688
[kernel] Add thread_inited_hook.
2017-04-09 19:12:53 +08:00
Bernard Xiong
033d254c4d
[tools] rename KConfig menu name
2017-01-31 13:22:25 +00:00
Bernard Xiong
a1e5a3b309
[Kernel] Fix the Kconfig filename
2017-01-31 10:15:54 +00:00
bernard
2ce7382534
[Kernel] Add rt_kputs routine.
2017-01-31 13:18:20 +08:00
bernard
d692001fd5
[tools] Add KConfig files.
2017-01-31 11:54:12 +08:00
Bluebear233
689f316100
Update components.c
...
修正断言错误
2017-01-02 19:52:00 +08:00
Bluebear233
0d43ebffe1
Update components.c
...
修正断言错误
2017-01-02 19:43:55 +08:00
Bluebear233
8d7686179c
Update components.c
2017-01-01 20:23:27 +08:00
Bluebear233
6c1d60f987
Update components.c
2017-01-01 19:24:52 +08:00
dogandog
20fb863ddf
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:19:46 +08:00
dogandog
2bfacd85ae
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:18:38 +08:00
dogandog
beb005e20d
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:17:36 +08:00
dogandog
70d34bce3c
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:16:07 +08:00
dogandog
ed7088024d
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:15:10 +08:00
dogandog
91fb7ee1d6
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:13:58 +08:00
dogandog
aff68a36cd
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:12:39 +08:00
dogandog
3e249d2169
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:11:38 +08:00
dogandog
4c9bd71f22
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:10:26 +08:00
dogandog
50393389ff
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:08:35 +08:00
dogandog
c314417e0b
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:07:12 +08:00
dogandog
b54e72275a
Correct comments about doxygen format
...
chang /*@{*/ to /**@{*/ and /*@}*/ to /**@}*/
2016-08-19 10:05:00 +08:00
zhangjun
65ac4a0810
增加rt_strnlen,lua采用单独的线程
2016-08-12 22:14:07 +08:00
ArdaFu
189e9b9632
[Kernel] add new hooks for support trace componment.
2016-08-09 11:29:11 +08:00
Jason Pan
e4b138f810
Fix type size for 16bit cpu
2016-08-01 19:06:34 +08:00
Aubr.Cool
99e1b0d29b
[src] scheduler update stackcheck
2016-06-02 09:30:34 +08:00
weety
62e770f9de
Fixed 64KB stack size limit.
2016-05-31 20:39:33 +08:00
Bernard Xiong
c8c4d2edcf
[Kernel] Update year information in version info.
2016-04-18 13:58:01 +08:00
Bernard Xiong
49b1172b8d
[Kernel] change rt_thread_exit() as a global function.
2016-04-05 14:40:49 +08:00
Bernard Xiong
daf488ca77
fix the open_flag initialization issue.
2016-04-02 14:42:38 +08:00
pathletboy
63c51fbfc8
Sorry, fix missed, related #590 .
2015-11-23 16:10:49 +08:00
pathletboy
78c9ddef86
fix code indent.
2015-11-23 13:23:55 +08:00
pathletboy
30cbe3cc3e
add document.
2015-11-22 15:55:19 +08:00
pathletboy
5b03e37ae1
allow parameter "recved" can be null in function "rt_event_recv"
2015-11-21 20:55:41 +08:00
Bernard Xiong
c7bd0aca21
[Kernel] Add rti_board_start to replace rti_start.
2015-11-09 15:25:48 +08:00
yuanbin
5968121332
Thread: Make comments in more accurate way
2015-10-23 21:54:40 +08:00
Bernard Xiong
730592df19
[Kernel] mark the free mem block with HEAP_MAGIC.
2015-09-24 21:07:54 +08:00
Bernard Xiong
d0dcdd11fe
[Kernel] Export more symbols for module.
2015-09-24 20:59:00 +08:00
GalaIO
b886340e67
open and then get the new device
...
in rt_console_set_device, open new device first and get the new device to _console_device.
我在编写程序时,在device驱动中打印log,但是使用rt_kprintf时,如果_console_device存在非空,那就执行驱动的write函数,但是这是device还没有初始化成功,但是已经提前给_console_device赋值,导致了程序无故fault,以上述修改可避开这样的矛盾。
2015-09-10 22:59:51 +08:00
Bernard Xiong
266496cef3
[Kernel] Use rt_assert_handler() function to handle assertion.
2015-08-03 16:07:30 +08:00
Bernard Xiong
abd19b8dd7
[Kernel] More better support for module.
2015-08-03 16:02:24 +08:00
Bernard Xiong
db73a31ec8
[Kernel] Fix compiling warning.
2015-08-03 16:02:02 +08:00
Bernard Xiong
783753d943
[Kernel] export more symbols.
2015-08-03 16:01:50 +08:00
ardafu
9201cbc29b
[Kernel Init] Add support to use RT_USING_USER_MAIN with IAR
2015-07-29 09:58:26 +08:00
armink
892eac2cce
[kservice]add hook for RT_ASSERT
2015-06-11 10:59:25 +08:00
prife
1b1908b35d
[kservice] fix rt_strcmp/strncmp/strlen prototype
2015-05-20 20:40:57 +08:00
pangwei
be7b8421a5
[Kernel]when the macro of RT_USING_COMPONENTS_INIT is not open ,then remove the source of components.c from the project.
...
Signed-off-by: pangwei <271372443@qq.com>
2015-05-20 15:21:29 +08:00
Bernard Xiong
2d27251d21
[Kernel] fix the Keil MDK compiling warning.
2015-05-18 18:09:16 +08:00
Bernard Xiong
90e95eca54
[Kernel] Rename init.c to components.c in kernel to avoid same file name issue.
2015-05-04 20:38:22 +08:00
Bernard Xiong
9339c2d96e
[Kernel] Fix main() issue in Keil MDK
2015-04-24 11:48:24 +08:00
Grissiom
b3214ed45f
SConscript: fix LINKFLAGS over-written
...
Fix a regression on 62a0172d11
.
2015-04-14 18:34:09 +08:00
Grissiom
54f8b19e12
SConscript: fix the `--keep` parameter for Keil
...
The old `--keep` parameter for Keil is wrong. RTFM of Keil and get it
right.
2015-04-14 18:22:46 +08:00
Bernard Xiong
4b838caaf8
Merge remote-tracking branch 'upstream/master'
2015-04-10 06:34:02 +00:00
Grissiom
2d3b2f1e94
memheap: check the USED bit in rt_memheap_free
...
This will ease the debugging of double-free bug.
2015-04-08 16:39:50 +08:00
Bernard Xiong
655054b1c5
[Kernel] Use main function in the Keil MDK
2015-04-03 14:27:56 +00:00
Bernard.Xiong
62a0172d11
[Kernel] Fix the system initialization link issue
2015-03-22 09:06:48 +08:00
Bernard Xiong
fbd620a7f4
[Kernel] Move the components initailzation to the kernel
2015-02-25 10:50:21 +08:00
Bernard Xiong
b83b1ee53d
[Kernel] Change the copyright date information
2015-01-21 14:19:01 +08:00
Grissiom
f8c171d5ad
memheap: check against over written in rt_memheap_free
2015-01-16 11:41:20 +08:00
Grissiom
57b5c74a71
rt_kprintf: force the open_flag to be RT_DEVICE_FLAG_STREAM
...
Commit a6251a439e
changed the serial device to check open_flag
instead of flag. So we should change the rt_kprintf counterpart as well.
2015-01-04 19:43:33 +08:00
Grissiom
c045281ee2
object: fix module name testing
2014-12-24 12:10:00 +08:00
Grissiom
4bb6c8cf0c
module: add !__CC_ARM when test __GNUC__
...
ARMCC will define __GNUC__ in "GNU mode"(with --gnu command line
option). So iff __GNUC__ && !__CC_ARM is GCC.
2014-12-01 18:54:55 +08:00
Grissiom
8615e2c8e5
kernel/timer: change row_lvl to unsigned
...
Use signed int as array index is unsecure.
2014-10-14 16:00:42 +08:00
Bernard Xiong
bd6b39cace
Update device.c
2014-09-19 14:29:03 +08:00
bernard
3b5c2e2f9f
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
2014-09-11 12:55:18 +08:00
bernard
1f3ea02c5a
[Kernel] Use stream mode to open console device.
2014-09-11 12:54:05 +08:00
bernard
b23de95ff4
[Kernel] comments clean up.
2014-09-11 12:51:52 +08:00
bernard
ab786679c7
[Kernel] comments clean up.
2014-09-11 12:50:41 +08:00
Grissiom
d4133990b0
kernel/idle: fix rt_thread_idle_excute in high optimization level
...
The rt_list_isempty has prototype of "int rt_list_isempty(const rt_list_t *l)".
So the compiler has a good reason that the rt_thread_defunct list does
not change within rt_thread_idle_excute thus optimize the "while" loop
into a "if".
So add the volatile qualifier when test against the rt_thread_defunc list.
2014-09-02 17:21:31 +08:00
tcz717
c0629b342e
fix:comment spelling mistake
...
relation=>relocation
2014-08-24 23:46:31 +08:00
Grissiom
b8bf6bef76
kernel: mempool: fix race condition in rt_mp_alloc
...
When thread wake up from waiting for memory, there is a chance that
there is no memory available in high pressure. So use a loop to check
again. Otherwise, there will be a NULL reference.
2014-08-20 10:16:04 +08:00
bernard
33fed1b167
[Kernel] Better documentation for doxygen.
2014-07-21 06:29:15 +08:00
bernard
4e2a6cc361
[Kernel] The rt_object_find routine can support to find an object inside a module. The usage is: rt_object_find("module_name/object_name").
2014-07-21 06:28:43 +08:00
Grissiom
30d68a515c
src/timer: fix a compile warning
2014-07-16 22:05:02 +08:00
bernard
7a7e3002c8
[Kernel] system does not lock scheduler when invoking soft-timer timeout function.
2014-07-12 15:59:45 +08:00
bernard
1e7b089494
[Kernel] Remove rt_device_init_all implemetation.
2014-07-10 13:34:52 +08:00
bernard
a1766b6c71
Add WEAK definition;
2014-06-26 14:47:53 +08:00
Grissiom
dc366ecf7a
device: only increase the ref_count when device is truly opened
2014-06-18 11:16:21 +08:00
Grissiom
a78e42a7c8
[mempool] reset the thread->error before suspending thread
...
Time out result and other errors is recorded in thread->error. Dirty
error will screw up the error handling code after the thread has been
wake up.
2014-04-16 10:59:33 +08:00
bernard
8bd3e6f6dc
[Kernel] Change command line to const parameter and add system() function.
2014-04-02 14:05:15 +08:00
bernard
dbcb4a1ccf
[Kernel] declare more APIs in module
2014-03-11 15:44:35 +08:00
bernard
898e0d2f3f
[Kernel] stop thread timer when suspend a thread
2014-03-11 14:19:24 +08:00
bernard
31446eab4c
[Kernel] application module can support arguments
2014-01-11 16:33:31 +08:00
Grissiom
04f432f47b
kernel: let rt_thread_idle_excute loop until there is no dead thread
...
Out side world is difficult to tell whethere there is dead thread
remaining. If rt_thread_idle_excute only do one cleanup, it's hard to
finish cleanups outside the idle thread. So let is loop and do all the
cleanups in one call.
2013-12-21 11:31:40 +08:00
Grissiom
408ac34bc2
kernel: add rt_critical_level that return the lock count of scheduler
...
Out side world may be interested in whether the scheduler is locked or
not. Provide an API to tell that.
2013-12-21 11:27:26 +08:00
Grissiom
6d9e793388
kernel: timer: fix compiling bug in d59aa279c3
2013-10-19 21:07:14 +08:00
Bernard Xiong
3eac58ce8e
Merge pull request #173 from grissiom/new-timer
...
kernel: use skip list to implement timer list
2013-10-17 15:44:20 -07:00
Bernard Xiong
c29ff6b0ac
Merge pull request #161 from aozima/pulls
...
make sure the device is in STREAM mode when used by rt_kprintf.
2013-10-17 15:43:56 -07:00
Grissiom
b72001fcac
kernel: mutex could only be released in thread context
...
Mutex has the idea of ownership, only the thread which owns the mutex
can release it. So rt_mutex_release could only be called in thread
context. Add a debug guard to it.
2013-10-14 09:50:18 +08:00
Grissiom
d59aa279c3
kernel: use skip list to implement timer list
...
Skip list is a "random" data structure that in high possibilities it
would get O(log(N)) time complexity in inserting while the old list get
O(N). Forthermore, when set RT_TIMER_SKIP_LIST_LEVEL to 1, it will just
the same as the old double linked list, both in time and space
complexity.
Benchmarks shows that when RT_TIMER_SKIP_LIST_LEVEL is 3, the average
time of random insertion of new timer is about 2 times faster than the
old timer when there are 100 timers and 3 times faster when there are
200 timers.
However, it restores the deprecated funcion rt_system_timer_init. BSPs
must invoke it upon system startup.
2013-10-12 22:48:29 +08:00
Grissiom
6f71308ef5
kernel: add RT_DEBUG_IN_THREAD_CONTEXT
...
In thread context means: 1) the scheduler has been started; 2) not in
interrupt context. It is more stronger than RT_DEBUG_NOT_IN_INTERRUPT.
With this commit, you will catch the error on situations like taking
mutex before scheduling instead of crashing on NULL pointer reference.
2013-10-11 22:51:38 +08:00
aozima
cad12ee14e
update rt_kprintf: make sure the device is in STREAM mode when used by rt_kprintf.
2013-09-24 15:29:08 +08:00
Grissiom
7b0a3afdf9
kservice: export vsnprintf as rt_vsnprintf
...
vsnprintf is a common string function that could be used in many places.
Using both vsnprintf in libc and vsnprintf in the RTT could make a
bigger image. Moreover, if newlib is not enabled when compiling with
GCC, referencing vsnprintf will lead to link error:
.../arm-none-eabi/lib/armv7-ar/thumb/softfp/libc.a(lib_a-sbrkr.o):
In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
collect2: error: ld returned 1 exit status
Using rt_vsnprintf could avoid such problem.
2013-09-23 11:34:13 +08:00
Grissiom
c465bc2c2e
rt_event_recv: add a check on the option flag
...
Either RT_EVENT_FLAG_AND or RT_EVENT_FLAG_OR should be set in the option
flag. If none of them is present, the waiting thread will never be
resumed.
2013-09-14 13:12:23 +08:00
Grissiom
ad17bc2908
fix debug output of scheduler
...
When print the thread names, we should use "%.*s" instead of bare "%s".
2013-08-19 10:08:11 +08:00
bernard
b96b35613f
add mount table
2013-07-22 07:46:10 +08:00
Grissiom
c3a39444da
memheap: dont alloc/memcpy when there is next node is enough for realloc
...
When realloc a bigger space and the next node is free and big enough, we
should directly relocate the next node instead of doing alloc/memcpy.
The new method not only faster in this cases, it would avoid memory
fragment as well.
2013-07-15 11:47:55 +08:00
Bernard Xiong
2c33678aac
fix the memory block splitting issue
2013-07-11 16:20:28 +08:00
Grissiom
7bcce9e87f
device: add ref_count support
...
This is a simple work around to the current device stack design. A
ref_count could let different modules to open/close the same device
independently without interfere others in some degree.
But there is still some data shared between the modules, like flag,
open_flag and user_data. Moreover, it won't yield an error if A open a
device, and B read from it before open it in B. Maybe alloc a new handle
in rt_device_open will be the ultimate solution. But that is much bigger
change and we may leave it to future development.
2013-07-09 15:44:55 +08:00
yiyue.fang
86db9ed965
reformat the coding style
...
convert Tabs to spaces
2013-06-29 10:00:14 +08:00
Bernard Xiong
79392bb082
Embedded GPLv2 license.
2013-06-24 17:06:09 +08:00