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
Bernard Xiong
b23dd15990
Update kservice.c
2013-06-24 00:09:52 +08:00
Bernard Xiong
98c8a23e94
Add component initialization.
2013-06-23 07:48:42 +08:00
Bernard Xiong
d80a471680
Fix the memheap_realloc issue
2013-06-03 06:44:35 +08:00
Bernard Xiong
4afdf44da2
add RT_KERNEL_MALLOC/FREE
2013-04-25 14:22:07 +08:00
Bernard Xiong
608bf2cb3d
add rt_memheap_realloc function
2013-04-17 22:09:48 +08:00
yiyue.fang
bdeb0e501f
update the version information
...
2006 - 2013 Copyright by rt-thread team
2013-04-10 03:58:33 +08:00
Bernard Xiong
1abaa0492d
implement __rt_ffs in kernel service library
2013-03-23 11:27:29 +08:00
Grissiom
0001344105
more deterministic on timer
...
If two timer will timeout at the same tick, the one started later will
be called later. I've tested the patch on simulator and it _seems_ OK.
Reported-by: xdzy on the forum and delin17 <delin17@qq.com>
2013-01-17 16:13:01 +08:00
Bernard Xiong
72782e9203
convert end of line
2013-01-08 05:05:02 -08:00
dzzxzz@gmail.com
965c25d3a4
fixed the coding style in memheap.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2569 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-30 16:11:12 +00:00
bernard.xiong@gmail.com
975610477e
Add RT_USING_MEMHEAP_AS_HEAP feature: system can use "heap" memheap as system default memory heap.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2554 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-29 12:29:03 +00:00
dzzxzz@gmail.com
4952adb4f0
fixed coding style in src/slab.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2527 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 09:24:41 +00:00
dzzxzz@gmail.com
ff65841125
fixed coding style in src/scheduler.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2526 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 09:17:21 +00:00
dzzxzz@gmail.com
dec45642fb
fixed coding style in src/mempool.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2525 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 09:10:39 +00:00
dzzxzz@gmail.com
dc5a16861a
fixed coding style in src/memheap.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2524 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 08:35:19 +00:00
dzzxzz@gmail.com
07ea5e8fec
fixed coding style in src/mem.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2523 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 08:27:29 +00:00
dzzxzz@gmail.com
55f1cb72b6
fixed coding style in kservice.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2522 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 08:23:12 +00:00
dzzxzz@gmail.com
a6b4440643
fixed the coding style in object.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2521 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 06:45:56 +00:00
dzzxzz@gmail.com
1cffb60ce0
fixed the coding style in ipc.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2520 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 06:45:34 +00:00
bernard.xiong
cb496872b3
return RT_EOK if the device interface not exist.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2519 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-25 01:44:23 +00:00
bernard.xiong@gmail.com
0094caa850
fix rt_kprintf issue, which found by Grissiom.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2507 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-22 08:57:26 +00:00
dzzxzz@gmail.com
6346ab09d8
fixed the coding style in thread.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2506 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-21 08:58:17 +00:00
dzzxzz@gmail.com
6bb7cc6015
fixed the coding style in thread.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2505 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-21 08:48:30 +00:00
dzzxzz@gmail.com
ec623a851e
fixed the coding style in irq.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2504 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-21 03:33:25 +00:00
dzzxzz@gmail.com
9f348578e7
fixed the coding style in idle.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2503 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-20 07:55:05 +00:00
dzzxzz@gmail.com
7e159dfb76
fixed the coding style in device.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2502 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-20 07:48:59 +00:00
dzzxzz@gmail.com
a810c1ae73
convert the tabs to spaces in clock.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2501 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-20 07:34:48 +00:00
dzzxzz@gmail.com
0e40d55d9f
fixed the coding style of RT_DEBUG_LOG
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2500 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-20 07:25:19 +00:00
dzzxzz@gmail.com
eef72f68de
fixed the coding style
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2493 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-18 08:34:46 +00:00
bernard.xiong@gmail.com
ea4082b791
fix the next timeout issue in soft timer
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2484 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-15 02:17:17 +00:00
dzzxzz@gmail.com
7151de3e2d
fixed a compiling error related to RT_DEBUG_LOG and fixed the coding style in module.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2473 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-09 23:53:46 +00:00
bernard.xiong@gmail.com
ee11663d87
remove rt_current_module and user can use rt_module_unload to remove a module.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2458 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-28 14:24:22 +00:00
bernard.xiong@gmail.com
0cdbd69d56
fix IAR compiler error.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2434 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-23 02:41:44 +00:00
bernard.xiong@gmail.com
ffbd0a1673
using RT_DEBUG_LOG instead of rt_kprintf.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2432 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-23 02:34:06 +00:00
dzzxzz@gmail.com
871951930b
correct the file name in the comment, and fixed the coding style
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2430 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-22 08:42:54 +00:00
dzzxzz@gmail.com
5334925454
fixed the coding style in device.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2386 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-03 07:27:53 +00:00
bernard.xiong@gmail.com
1c425607c3
fixed mutex issue in memheap; fixed compiling issue in kservice.c when COMPILER is not defined; add finsh for win32 porting.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2365 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-22 03:12:21 +00:00
bernard.xiong@gmail.com
e737514f86
add device check in register function, which is provided by Rob <rdent@iinet.net.au>.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2355 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-19 22:44:34 +00:00
bernard.xiong@gmail.com
15b3271d5d
Fixed timer control issue.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2323 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-08 06:07:52 +00:00
dzzxzz@gmail.com
700b16c52b
adjust the coding style in src/ipc.c
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2302 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-24 03:01:48 +00:00
dzzxzz@gmail.com
4d4c33680a
update /src/SConscript
...
rtm.c is not exist any more
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2293 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-20 03:17:26 +00:00
qiuyiuestc@gmail.com
a73abdccf5
split export symbols from rtm.c to each file
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2263 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-08-27 01:21:57 +00:00
qiuyiuestc@gmail.com
907e1703e6
change module priority;
...
strip module name from loaded path;
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2262 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-08-27 01:19:04 +00:00
dzzxzz@gmail.com
f7aadffcde
there is no need to type cast for "object"
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2242 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-08-01 01:23:55 +00:00
qiuyiuestc@gmail.com
a3aacbd385
fix section copy bug && format code style
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2236 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-28 02:57:02 +00:00
chaos.proton@gmail.com
1fc6491671
port rtm.c to new RTGUI application interface
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2229 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-22 11:45:28 +00:00
bernard.xiong@gmail.com
c2868be90d
add the alignment display for signed integer
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2220 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-18 13:38:50 +00:00
qiuyiuestc@gmail.com
ae3c1800d4
solve the symbol conflict problem for ART project;
...
the symbols in rtm.c would be scatted to different files in the near future.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2217 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-12 22:39:12 +00:00
qiuyiuestc@gmail.com
41520b0723
fix module delete fail problem when met undefined symbols.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2216 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-11 00:08:41 +00:00
bernard.xiong@gmail.com
25268ad23d
Add more symbols export for application module.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2205 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-06 11:20:53 +00:00
qiuyiuestc@gmail.com
216ce608d1
fix compile warning.
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2180 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-25 00:45:44 +00:00
dzzxzz@gmail.com
25a5353e66
fixed spelling error
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2175 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-18 12:21:03 +00:00
dzzxzz@gmail.com
07b910be8f
fixed compiling error related to rtgui in mini2440 branch
...
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2155 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-08 08:13:44 +00:00
dzzxzz@gmail.com
4b670b0862
delete Line 33 in thread.c, the variable isn't used at all.
...
extern rt_uint8_t rt_current_priority;
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2153 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-04 06:10:58 +00:00
dzzxzz@gmail.com
43f2bfc013
add a new command list_memheap() into finsh
...
and unify the coding style in memheap.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2151 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-03 06:16:30 +00:00