Commit Graph

626 Commits

Author SHA1 Message Date
yangjie 4a43d3cdae [src][timer.c]:modify -RT_EOK to RT_EOK 2018-08-23 15:57:45 +08:00
hichard_ren@yeah.net bbb879717c add config main thread priority 2018-07-31 17:05:01 +08:00
heyuanjie c79fbd373f [lwp]给thread添加lwp成员 2018-07-30 11:12:12 +08:00
liang yongxiang 39d0236194 [kernel] add all RT_DEBUG_* options macro to menuconfig 2018-07-17 20:15:02 +08:00
Bernard Xiong 6964d623aa [Kernel] Add strdup for armcc 2018-07-15 16:03:40 +08:00
Bernard Xiong b0dbdf4289
Merge pull request #1621 from armink/fix_idle_hook
[idle] Add idle hook list.
2018-07-14 15:20:59 +08:00
armink d37c289b56 [kernel][idle] Improve rt_thread_idle_sethook and rt_thread_idle_delhook code. 2018-07-14 14:04:08 +08:00
Bernard Xiong 1758f5773e
Merge pull request #1617 from armink/fix_rtdbg
Fix rtdbg
2018-07-14 06:46:50 +08:00
armink e9c165034e [kernel][idle] Add idle hook list. 2018-07-13 10:02:27 +08:00
liang yongxiang d645525a0b [kernel] add assert to module object 2018-07-11 18:31:01 +08:00
liang yongxiang 9945ced57b [kernel] add assert to thread object 2018-07-11 18:16:39 +08:00
liang yongxiang f706131fc6 [kernel] add assert to ipc object 2018-07-11 18:02:54 +08:00
liang yongxiang 2bbf98e5ed [kernel] add assert to timer object 2018-07-11 18:02:51 +08:00
liang yongxiang 0509af9319 [kernel] add assert to memheap object 2018-07-11 18:02:25 +08:00
liang yongxiang ade8822352 [kernel] add assert to mempool object 2018-07-11 15:00:10 +08:00
liang yongxiang 5213fd0e95 [kernel] splite rt_device_unregister() and rt_device_destroy(), add assert to device object 2018-07-11 14:58:59 +08:00
liang yongxiang 7b984c2f54 [kernel] add rt_object_get_type() function who return type of object without static flag 2018-07-11 14:48:32 +08:00
liang yongxiang c5ed45237e [kernel] reset type when object delete or detach 2018-07-11 14:46:35 +08:00
armink 6cd8658dad [rtdbg] Change all DBG_SECTION_NAME to new format. 2018-07-11 10:23:19 +08:00
Bernard Xiong ef132f3c94 [Kernel] clean code for indentation. 2018-06-26 11:57:20 +08:00
Bernard Xiong a1a56ce1d1 [Kernel] Add flag in wait queue and fix wakeup issue. 2018-06-26 11:19:38 +08:00
Bernard Xiong df64a297ab [Kernel] Remove memory ops when SLAB and module enable 2018-06-10 18:46:11 +08:00
Bernard Xiong 884fb70fe9 [Kernel] Add device ops feature. 2018-06-10 17:59:17 +08:00
Bernard Xiong 682da9b249 [Kernel] Remove object container in module feature. 2018-06-10 17:56:02 +08:00
guozhanxin d44790c8f9 [src/ipc.c]adjust rt_event_send() hook function position|调整rt_event_send()钩子函数位置 2018-05-18 19:59:30 +08:00
Bernard Xiong 6ac213d622 Add GCC version detection.
Add cconfig.h file for different version of GCC, which is automatically
detected and generated by scons script.
2018-05-14 21:37:11 +08:00
heyuanjie 93afe69c90 添加mdelay接口 2018-05-12 12:08:47 +08:00
Bernard Xiong 3c31567f14 [kernel] Fix vstart_addr issue in module. 2018-04-25 23:25:49 +08:00
liang yongxiang 8dc8382277 [kernel] fixed signed/unsigned mismatch warning 2018-04-09 12:05:49 +08:00
liang yongxiang b09445cbfe [Kernel][memheap] fix rt_realloc bugs
- missing free old memory after malloc new
- free memory when new size is zero
2018-03-28 10:19:32 +08:00
朱天龙 (Armink) 4e54df820b
[kservice] Update show version year info to 2018. 2018-03-02 08:11:17 +08:00
BernardXiong 38b9ed3118 [Kernel] add sigwait implementation 2018-03-01 13:36:22 +08:00
skawu 2357842f59
没用使用RT_USING_HEAP宏时,增加一条语句用于消除此警告
没用使用RT_USING_HEAP宏时,components.c文件第211行会报警告,增加一条语句用于消除此警告(使用四个空格代替TAB)
2018-02-28 22:53:47 +08:00
714826565 d4d22d34d3 没用使用RT_USING_HEAP宏时,components.c文件第211行会报警告,增加一条语句用于消除此警告 2018-02-28 16:04:30 +08:00
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
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
dzzxzz@gmail.com f19d8aa591 change the return type of function rt_object_is_systemobject()
using rt_bool_t instead of rt_err_t

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2150 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-02 09:20:19 +00:00
dzzxzz@gmail.com 907bb8c7fd unify coding style in timer.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2149 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-02 08:40:29 +00:00
dzzxzz@gmail.com 7b6828b2b5 don't include the file while RTT don't define
ex. if RT_USING_MEMHEAP isn't defined, then memheap.c won't be included

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2148 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-02 07:45:48 +00:00
bernard.xiong@gmail.com 3ad6f43ff3 Added VisualDSP++ Compiler support.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2137 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-30 06:50:06 +00:00
bernard.xiong@gmail.com d82a8cce21 fixed module unload issue; code cleanup for timer.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2119 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-16 06:18:58 +00:00
dzzxzz@gmail.com 1641c9db4f add memory heap object in module
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2113 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-07 06:23:30 +00:00
bernard.xiong@gmail.com b14044212b remove soft timer tick increase
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2108 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-05 01:45:17 +00:00
bernard.xiong@gmail.com 87195cf84e Added memory heap object implementation; Added RT_LIST_OBJECT_INIT macro.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2046 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:52:56 +00:00
bernard.xiong@gmail.com 8061067343 cleanup code comments and deprecate rt_system_timer_init function.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2045 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:51:34 +00:00
bernard.xiong@gmail.com 00548d27a1 cleanup code comments.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2044 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:50:28 +00:00
bernard.xiong@gmail.com da93de9ddf fixed memmove issue, report by luoyuncong.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2043 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:49:49 +00:00
qiuyiuestc@gmail.com ffa1c57e10 eliminate compile warning in module.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2037 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-13 14:06:33 +00:00
bernard.xiong@gmail.com 9975b31d63 fix align issue in rt_mp_init and rt_mp_create function.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2007 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-23 07:26:38 +00:00
bernard.xiong@gmail.com 0f519b6721 move src\kservice.h to include\rtservice.h.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2005 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-22 06:11:44 +00:00
bernard.xiong@gmail.com b6c1ebf423 add RT_PRINTF_PRECISION in kservice.c; fix re-schedule issue in IPC control function.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2003 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-22 05:57:54 +00:00