emlslxl
2340408e3c
fix code style
2018-02-24 16:10:44 +08:00
parai
74622c6ed3
Fix issue when loading *.o when do internal function call
...
Fox example for the below example code:
#include <stdio.h>
void goodBye(void)
{
printf("Good Bye!\n");
}
int main(int argc, char* argv[])
{
printf("Hello World!\n");
goodBye();
return 0;
}
2018-02-08 20:19:10 +08:00
Bernard Xiong
55e2fabbc5
[kernel] lock scheduler when cleanup thread
2018-02-07 19:55:35 +08:00
Bernard Xiong
1f37c1a497
[Kernel] Fix the object find issue when enable MODULE
2018-01-25 17:46:59 +08:00
BernardXiong
992e10ae08
[Kernel] fix the compiling warning.
2017-12-31 14:45:16 +08:00
Bernard Xiong
e2d88e433e
[Kernel] fix the object container initialization issue
2017-12-25 20:55:20 +08:00
Bernard Xiong
8bb0a1a151
[Kernel] Fix the module object initialization issue
2017-12-24 09:33:47 +08:00
Bernard Xiong
8ff8436fcd
[Kernel] Add device_create/destroy api
2017-12-24 00:06:29 +08:00
Bernard Xiong
5326bd55a5
[Kernel] Add memory trace for small memory management
2017-12-22 14:36:35 +08:00
Bernard Xiong
2f409c85f1
[Kernel] Use rt_object_get_information to get object chain
2017-12-12 07:36:37 +08:00
bernard
ae7237dc53
[BSP] Fix the WIN32 compiling issue.
...
rename _errno to __rt_errno for conflict in WIN32.
2017-11-30 23:56:52 +08:00
Bernard Xiong
7bc87e4ae8
[Kconfig] Rename all of KConfig files to 'Kconfig'
2017-11-30 20:12:53 +08:00
weety
c8e64a629a
[kernel] Fixed module issue.
2017-11-23 11:29:02 +08:00
bernard
21cf0919b4
[Kernel] Update Kconfig to fix memory heap option.
2017-11-13 16:31:05 +08:00
bernard
bbe6425f94
[KConfig] Update Kconfig
...
1. Change the type of RT_DEBUG_THREAD to int;
2. Add Kconfig of VBUS.
2017-11-03 21:08:00 +08:00
ArdaFu
7706316a89
[src]Add missing key RT_USING_INTERRUPT_INFO
2017-11-03 11:11:43 +08:00
flyingcys
f6b71172b5
fix rt_memcpy buf in RT_USING_TINY_SIZE enable
2017-11-02 11:12:55 +08:00
bernard
c733086354
[Kernel] Fix sem_release twice issue in slab.
2017-10-31 11:38:28 +08:00
armink
7a99641c71
[Kernel] Fix a bug on rt_schedule().
2017-10-18 19:15:29 +08:00
bernard
8a38307e2c
[libc] Add RT_USING_POSIX macro.
...
1. Add macro check in rtdebug.h;
2. Use RT_USING_POSIX for poll/select, stdin etc.
3. Split dfs_posix.h to dfs_posix.h, dfs_poll.h and dfs_select.h;
2017-10-17 22:27:06 +08:00
bernard
b27c7e4826
[Kernel] Add signal implementation.
...
1. Add signal implementation;
2. Change the 'rt_uint8_t' of cmd to 'int';
2017-10-15 22:31:53 +08:00
bernard
326d405c26
[Kconfig] Use 256 as the default stack size for idle thread.
2017-10-09 15:13:19 +08:00
SummerGift
01aa54de2f
[添加]:添加IDLE_THREAD_STACK_SIZE设置。空闲进程栈大小。
2017-10-09 14:22:09 +08:00
SummerGift
75b1c0fbae
[错误]:RT_DEBUG_INIT不能是bool型
...
和一些使用这个宏的components起了冲突,无法编译通过。
2017-09-30 16:47:06 +08:00
bernard
cccff34fca
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
2017-09-29 10:23:56 +08:00
bernard
e9a77b513f
[Kernel] mutex can be used before scheduler startup.
2017-09-29 10:23:49 +08:00
geniusgogo
2aae989f40
Merge branch 'master' into RT_MACRO
2017-09-18 16:27:20 +08:00
xieyangrun
6b06cb83e3
rename WEAK to RT_WEAK
2017-09-18 11:32:13 +08:00
emlslxl
e521decf2e
根据documentation/coding_style_cn.txt约定 对内核src和include目录下的文件代码进行格式化
2017-09-15 11:02:24 +08:00
parai
2957cf6f52
x86: bring up share object module on i386 machine
...
1. upddate kernel module to support i386
2. update libdl to support open *.so by absolute path
3. new test case bsp/x86/src/hello.c to test i386 module feature
Signed-off-by: parai <parai@foxmail.com>
2017-08-20 20:24:07 +08:00
armink
a7e7b3dc02
[Kernel] Fix rt_realloc issue when new size is 0.
2017-08-14 16:09:54 +08:00
Yohozzy
07514c0d0a
fix the end of module symbol bug when using iar compiler
2017-08-06 01:01:47 +08:00
tanek liang
dcfaa9a909
[kernel] fix incompatible type error for "__rt_ffs()"
2017-07-29 14:20:08 +08:00
Bernard Xiong
b9a718b80c
Update components.c
2017-07-24 08:56:49 +08:00
tanek liang
2448b69d02
[kernel] rename RT_TINY_SIZE to RT_USING_TINY_SIZE
2017-07-24 00:28:15 +08:00
tanek liang
d835d91ae8
[kernel] use the macro definition instead of the user main thread
2017-07-24 00:23:35 +08:00
Bernard Xiong
1f0081e796
[Kernel] Fix typo
2017-06-26 09:16:19 +08:00
Bernard Xiong
8437c049e6
[Kernel] Fix the number_mask initialization issue in TCB.
2017-06-15 23:30:18 +08:00
bernard
279fac7cbb
[Kernel] Change RT_USING_IDLE_HOOK as simple definition.
2017-06-07 09:24:22 +08:00
bernard
53f042b44b
Add module feature in KConfig.
2017-06-06 18:21:47 +08:00
geniusgogo
05052127c3
Update idle.c
2017-05-23 11:04:22 +08:00
geniusgogo
3c14a8867d
Update idle.c
2017-05-22 23:53:55 +08:00
geniusgogo
662f619cf6
Update idle.c
2017-05-16 10:42:29 +08:00
xieyangrun
e05186dd95
separate idle hook
2017-05-16 10:02:19 +08:00
朱天龙 (Armink)
c3c26baf6f
Update kservice.c
...
Update year info from 2016 to 2017
2017-04-14 14:55:35 +08:00
armink
2d593a22b7
[Kernel] Fix thread delete and thread detach bug. #712
2017-04-10 09:53:45 +08:00
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
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