Commit Graph

779 Commits

Author SHA1 Message Date
Bernard Xiong da7751c044
Merge pull request #3129 from jesven/fix_same_prio
修正相同优先级任务切换太频繁的问题
2019-11-12 22:47:18 +08:00
Bernard Xiong 6fca4a7722 [Kernel] Fix the signal issue when the context switch is triggered but not immediately handled. 2019-11-12 21:23:56 +08:00
shaojinchun cdaf8c65ca 修正rt_thread_delete在特定点被切走后不能回来继续执行的问题 2019-11-12 16:02:24 +08:00
shaojinchun e03ac83ad3 将yield状态置于tcb的stat位域中 2019-11-05 08:41:38 +08:00
shaojinchun 9a38bba168 使can_yield成员的赋值更好理解 2019-10-12 11:57:27 +08:00
shaojinchun b53bd79783 同步单核时的同优先级切换问题 2019-10-12 11:52:08 +08:00
shaojinchun 234af6aaa2 修正相同优先级任务切换太频繁的问题 2019-10-12 10:51:47 +08:00
Bernard Xiong 413fcba30a
Merge pull request #3108 from enkiller/master
[kernel][ipc] 修复创建0长度的消息队列宕机问题
2019-09-29 09:28:30 +08:00
Bernard Xiong 71311b73ae [Kernel] Fix the wrong indentation 2019-09-28 12:26:48 +08:00
Bernard Xiong 5cd6509296 [Kernel] cleanup code of spinlock in SMP Kernel 2019-09-28 11:56:03 +08:00
shaojinchun cb07e5fb24 开放spinlock相关函数 2019-09-27 14:38:33 +08:00
tangyuxin 255825835e [kernel][ipc] 修复创建0长度的消息队列宕机问题 2019-09-27 14:21:52 +08:00
tangyuxin e4671d2916 [kernel][ipc] add send wait support for message queue 2019-09-19 10:10:02 +08:00
Bernard Xiong ae7a33c27c
Merge pull request #3077 from jesven/fix_mempool
修正rt_mp_free有可能唤醒一个错误任务指针的问题
2019-09-17 14:11:14 +08:00
shaojinchun ae1fdc70f0 修正rt_mp_free有可能唤醒一个错误任务指针的问题 2019-09-16 16:55:40 +08:00
yangjie e7cb38c9c3 [src]解除组件初始化与使用user main的依赖 2019-09-11 12:01:24 +08:00
LinJieqiang d16d78c53e fix spelling mistake for "RT_IDEL_HOOK_LIST_SIZE" 2019-09-05 08:33:12 +08:00
iglencao 37de4d6054 Create IPC.ipch
这里注释应该由semaphore改为mutex
2019-08-10 22:45:00 +08:00
tyustli 85a9f5add9 fix bug in Thread.cpp/Thread.h/components.c files 2019-07-27 17:33:36 +08:00
tangyuxin 6a170ddbe4 [src][idle] 修复一处编译警告 2019-07-13 09:30:23 +08:00
tangyuxin df3a9e573f [src][irq] 添加 WEAK 修饰,中断嵌套数可由外部提供。 2019-07-12 11:15:20 +08:00
tyx c8e27adf1f [src][ipc]完善 message queue 相关定义 2019-07-09 21:34:56 +08:00
guozhanxin 5e6f852cbe [src/mempool.c] add parameter check.|添加参数检查。 2019-07-01 12:56:12 +08:00
tyustli d8eb0cfc1e fix kernel and framework no cast type error 2019-06-18 20:09:19 +08:00
Bernard Xiong 3463a756d9 [kernel] skip warning when disable debug. 2019-06-07 22:44:24 +08:00
armink 6408aac04a Update the version number to 4.0.2 2019-05-17 13:49:32 +08:00
HubretXie edccf1c07d
Update kservice.c
修复rt_kprintf输出long long类型数据问题
2019-05-16 10:24:54 +08:00
shaojinchun 8dd2a07d45 去除scheduler.c的_get_highest_priority_thread函数中重复判断 2019-05-11 13:51:50 +08:00
shaojinchun 057c7da3a3 修改signal模块默认log级别 2019-05-11 09:37:39 +08:00
shaojinchun c5249157d7 增加signal的状态位说明及一处代码修改,以防止编译警告 2019-05-11 09:35:26 +08:00
shaojinchun 737d58fbb9 修正_get_highest_priority_thread中对“是否只有idle可运行”判断位置的问题 2019-05-11 09:35:17 +08:00
shaojinchun 6cdfb2ac92 fix signal code 2019-05-11 09:34:26 +08:00
Bernard Xiong 2bf9ba0675
Merge pull request #2661 from BernardXiong/pre-release_v4.0.1
Pre-release for v4.0.1
2019-05-09 12:57:47 +08:00
Bernard Xiong 43c1236ec9 [Kernel] code cleanup for indentation. 2019-05-09 08:57:24 +08:00
Bernard Xiong 4127cc13bf [Kernel] Move the ++/-- operator outside of condition. 2019-05-09 08:48:38 +08:00
EvalZero c57f2370ad [components][pm]improve low power management components 2019-05-06 18:17:55 +08:00
shaojinchun 7bcee9bcb1 semaphore结构中value仍改为uint16_t,加入对其设置范围的检测,加入对齐变量 2019-04-24 09:14:00 +08:00
yangjie ce51a27f87 [src/components.c]remove the repetitive rt_hw_interrupt_disable() function before rtthread_startup() 2019-04-15 17:56:19 +08:00
armink fa4d4ab7cf Update all of debug log definition to DBG_TAG and DBG_LVL. 2019-04-12 10:18:57 +08:00
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
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