Commit Graph

690 Commits

Author SHA1 Message Date
Bernard Xiong 7d2471c423
Merge pull request #2544 from BernardXiong/disable_color
[Kernel] Disable color log in default
2019-04-06 10:48:41 +08:00
Bernard Xiong 0366eb13ac [Kernel] Fix the critical issue when scheduler not start 2019-04-04 10:58:24 +08:00
Bernard Xiong d517389e52 [Kernel] Fix the critical issue under smp 2019-04-04 10:06:28 +08:00
BernardXiong 84407ef186 [Kernel] Disable color log in default 2019-04-04 01:11:11 +00:00
Bernard Xiong 25186f3e19
Merge pull request #2511 from BernardXiong/fix_object
[WIP][Kernel] Add object re-initialization check.
2019-04-03 13:26:51 +08:00
Bernard Xiong 4d3b4abfeb [Kernel] To check object re-initialization in the list 2019-04-02 17:33:07 +08:00
yangjie a7f4f120dd [src][Kconfig]Open soft_timer by default 2019-04-01 17:10:41 +08:00
Bernard Xiong 437b0da91e
Merge pull request #2518 from ErnestChen1/master
[src/clock.c] avoid warning
2019-03-27 20:37:07 +08:00
Ernest Chen aa3295d7f0 [src/clock.c] avoid warning 2019-03-27 19:50:40 +08:00
BernardXiong 50a97669cf [Kernel] Add object re-initialization check. 2019-03-26 13:49:18 +00:00
BernardXiong fd9835e4f4 [Kernel] Fix the bsp external config name 2019-03-26 05:08:24 +00:00
BernardXiong 1487a4f732 [Kernel] Support ARCH data types definitions 2019-03-26 01:03:39 +00:00
MurphyZhao 0f673df08a [src/kservice.c] 修复 rt_vsnprintf 格式化后宽度不正确的问题
[src/kservice.c] 修复 rt_vsnprintf 处理 size 和 buf 为 0 极端情况的 bug (对 0 地址写入)

Signed-off-by: MurphyZhao <d2014zjt@163.com>
2019-03-25 16:50:13 +08:00
Bernard Xiong efd8b404a3
Merge pull request #2480 from HubertXie/master
【修复】修复ms转tick时计算溢出问题
2019-03-23 06:25:27 +08:00
ZYH 163772fb67 fix slab at 64bits CPU 2019-03-20 15:11:52 +08:00
HubretXie 348bd83b08
【修复】修复计算中间值溢出问题
rt_tick_from_millisecond
当入参较大时,计算中间值会出现溢出情况,导致转换结果出错
2019-03-20 14:54:17 +08:00
armink 3e4a93cc91 Delete the unused '--keep' link flag when used RT_USED marco. 2019-03-12 11:40:53 +08:00
Bernard Xiong 6a12704bc6
Merge pull request #2412 from armink/fix_ulog
Update the ulog
2019-03-10 13:04:25 +08:00
liruncong 39673cf4f6 [src]消除参数传递警告(warning: passing argument 1 of 'zoneindex' from incompatible pointer type [-Wincompatible-pointer-types]) 2019-03-10 10:54:54 +08:00
armink b2c338970f [kservice] Update the rt_strnlen function. 2019-03-09 15:46:56 +08:00
Bernard Xiong 4028aa1eba
Merge pull request #2397 from lgnq/master
Update clock.c
2019-03-07 21:14:23 +08:00
lgnq 308065a9a2 Update clock.c
function rt_timer_check(void) is already decleared in rtthread.h
2019-03-07 16:30:53 +08:00
armink 8fa6c1d9cd Remove dbg_enter and dbg_exit macro. 2019-03-06 18:02:29 +08:00
armink 0d7ba79219 Remove the DBG_COLOR and DBG_ENABLE definition. 2019-03-06 17:54:30 +08:00
Bernard Xiong f9f7e6c520 [ptherad] Fix pthread_exit issue
When pthread invokes pthread_exit, it just detach self.
2019-02-14 13:45:25 +08:00
Bernard Xiong 7383269905 [Kernel] Code cleanup for compiling warning. 2019-02-12 14:33:45 +08:00
Bernard Xiong 25988d30d9 [Kernel] Add thread detach for system thread 2019-02-07 23:49:46 +08:00
armink 791c2c89cf [kservice] Update the rt_show_version info to 2019. 2019-01-28 20:12:44 +08:00
armink 9133dde430 [Kconfig] Update the version number to 4.0.1 2019-01-28 20:11:45 +08:00
Bernard Xiong 7aede1befb
Merge pull request #2245 from zhaojuntao/fix-sprintf
[src][kservice.c] 修复 snprintf 中 `print_number` 函数错误解析 `%.0d` format 的问题
2019-01-25 10:29:24 +08:00
Bernard Xiong 69994ca210 [Kernel] Fix rt_schedule_insert_thread issue
When suspend current thread and then enable interrupt, it's possible resume "the current thread" immediately and insert to ready queue. The rt_schedule_insert_thread should change  the status of "current thread" to RUNNING statue.
2019-01-24 09:30:30 +08:00
MurphyZhao 5c76d3d516 [src][kservice.c] 修复 snprintf 中 `print_number` 函数错误解析 `.0` format 的问题
Signed-off-by: MurphyZhao <d2014zjt@163.com>
2019-01-21 19:28:44 +08:00
Bernard Xiong de624c52c1 [Kernel] Enable RUNNING status in thread. 2019-01-13 11:23:08 +08:00
Bernard Xiong d266d681a1 [kernel] Fix the 64bit issue for idle thread cpu binding. 2018-12-24 09:07:56 +08:00
Bernard Xiong 58be04b693 [kernel] format scheduler log. 2018-12-19 20:10:18 +08:00
Bernard Xiong a74a3031f0
Merge pull request #2081 from jesven/sync_smp_skeleton
Sync smp skeleton
2018-12-18 14:02:04 +08:00
shaojinchun eff767a074 remove rt_hw_mb define
sync smp skeleton
2018-12-17 11:02:09 +08:00
zhaohengbo 10d00ff41c reduce change 2018-12-15 20:27:38 +08:00
zhaohengbo afcd8b4521 fix some bug when stack grows upward 2018-12-15 11:20:24 +08:00
Bernard Xiong f9f959f33e [Kernel] Fix the thread->sp data type issue. 2018-12-14 22:46:34 +08:00
Bernard Xiong 1f37de29c4 Fix the value width issue under 32/64 bit arch. 2018-12-13 14:54:26 +08:00
shaojinchun b3e1507bcf 1 RT_THREAD_CTRL_BIND_CPU define to 4
2 RTM_EXPORT(rt_cpus_lock_status_restore)
3 sync ARCH_CPU_STACK_GROWS_UPWARD in _rt_scheduler_stack_check()
2018-12-12 09:36:39 +08:00
Bernard Xiong 2a7d814f77 [libcpu] Add unified RISC-V libcpu porting. 2018-12-08 10:41:38 +08:00
armink a0243d7795 Add RTT version number on Kconfig file. 2018-11-27 13:47:03 +08:00
shaojinchun 94a2e751a5 修正idle.c中一处宏定义位置 2018-11-22 22:06:02 +08:00
shaojinchun fc6bc1ad39 Add smp support to RT-Thread 4.0 2018-11-22 18:16:47 +08:00
Bernard Xiong 46dae3f35f
Merge branch 'master' into dev-4.0.x 2018-11-20 23:13:45 +08:00
guozhanxin d343c6578a [kernel]Change 'rt_timer_timeout_hook' function to 'rt_timer_enter_hook' and add 'rt_timer_exit_hook' hook function. 2018-11-13 11:32:15 +08:00
Bernard Xiong 00a655ac1c [Kernel] Add ARCH_CPU_STACK_GROWS_UPWARD option 2018-11-11 15:56:02 +08:00
geniusgogo cca6e38758 Merge branch 'master' into fix_kconfig 2018-11-10 10:47:21 +08:00
geniusgogo 379451c081 code indent 2018-11-10 10:45:36 +08:00
Bernard Xiong d1c177f48b [Kernel] Fix typo. 2018-11-09 09:17:43 +08:00
geniusgogo 1b8d7b3557 fixed Kconfig IDLE hook config 2018-11-08 22:25:47 +08:00
armink 83b7b763b7 The dbg_log API is DISCARDED. Change all dbg_log to LOG_X. 2018-11-02 10:20:30 +08:00
Bernard Xiong b31888de49 [Kernel] Fix the rt_memset/memcpy issue under 64bit ARCH. 2018-11-01 09:09:54 +08:00
Bernard Xiong 432210809d [Kernel] Fix the data type issue in kservice.c 2018-10-31 21:32:34 +08:00
Bernard Xiong 484afe9d2c [Kernel] Add 64bit CPU support. 2018-10-26 06:35:42 +08:00
armink cc0f5ca1cd [kernel][mem] Improve some ISR check range. 2018-10-23 16:03:17 +08:00
Bernard Xiong ff08faf605 [Kernel] Adjust the copyright information 2018-09-25 11:06:07 +08:00
Bernard Xiong b98a0ba804 [Kernel] Add ARMCC 6.x support. 2018-09-23 12:08:44 +08:00
Bernard Xiong 41f7f2c284 [Kernel] Update to Apache License v2.0
Update license for RT-Thread kernel.
2018-09-14 22:37:43 +08:00
Bernard Xiong d74d5801c8
Merge pull request #1751 from RT-Thread/feature_libdl
[Kernel] move module to libc/libdl.
2018-08-31 18:41:16 +08:00
Bernard Xiong efe4523132 [Kernel] move module tolibc/libdl. 2018-08-30 20:27:45 +08:00
Bernard Xiong 60f3d61acd [Kernel] Fix the compiling warning 2018-08-29 02:35:51 +01:00
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