Commit Graph

57 Commits

Author SHA1 Message Date
Shell c451dce820 feat: add ISR safe completion API
Since the completion is used to sync with ISR mostly, we should set the
default semantic to ISR-safe. So most user will be happy and don't see
any weird behavior in their codes.

Changes:
- Added `rt_completion_wait_noisr` and
  `rt_completion_wait_flags_noisr` functions in `completion.h`,
  `completion_comm.c`, `completion_mp.c`, and `completion_up.c`.
- The new APIs allow waiting for completions in non-ISR contexts
  while ensuring thread context safety.
- Existing documentation and comments were updated to clarify
  usage contexts and emphasize restrictions on ISR usage.

Signed-off-by: Shell <smokewood@qq.com>
2024-08-19 10:39:15 +08:00
wdfk-prog f61c7085f7 [components][ringbuffer]修复编译错误 2024-06-24 10:55:16 +08:00
Shell 48bd0e49f2
[ipc] support of lockless rt_completion (#8887)
* [ipc] lockless rt_completion implementation

The new rt_completion implemented by lockless algorithm can improve timer resolution for up to ~12%, compare to sem IPC.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: error

* remove useless changes

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-08 09:25:57 +08:00
Yuqiang Wang c6d20e47ac [bsp][renesas] Add HMI rw007 initialization configuration by default 2024-04-13 13:32:30 +08:00
Shell 83e95bdff4
sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell 71560bafb5
🎯 Sync smart & scheduler codes (#8537)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-02-23 17:49:15 +08:00
Meco Man 6cc63626d7 fix some -Wmissing-prototypes warnings 2024-01-02 21:25:26 +08:00
xqyjlj 3283f54c7a
🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: Shell <smokewood@qq.com>
2023-10-25 20:31:25 +08:00
Meco Man bfe9fd3c13 [drivers/ipc] fix the recursive including if legacy enabled 2023-07-28 22:17:40 -04:00
7YZ7 501b22aabe
[HUST CSE] Fix many abnormal symbols in annotations and format code 2023-04-17 22:26:23 -04:00
螺丝松掉的人 20459ec4d3
[ringbuffer] ringbuffer size boost to 32bit (#6915)
* ringbuffer size boost to 32bit
* 添加ringbuffer测试demo
related: #682
----
Co-authored-by: Zxy <1308465141@qq.com>
Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2023-02-08 22:55:52 -05:00
guo ecf2d82159
sync branch rt-smart. (#6641)
* Synchronize the code of the rt mart branch to the master branch.
  * TTY device
  * Add lwP code from rt-smart
  * Add vnode in DFS, but DFS will be re-write for rt-smart
  * There are three libcpu for rt-smart:
    * arm/cortex-a, arm/aarch64
    * riscv64

Co-authored-by: Rbb666 <zhangbingru@rt-thread.com>
Co-authored-by: zhkag <zhkag@foxmail.com>
2022-12-03 12:07:44 +08:00
Tangyuxin a4829b1c00
[fix] Fix simulator compilation warnings (#6438)
* [fix] Fix simulator compilation warnings

* Update bsp/simulator/rtconfig_project.h

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2022-09-20 10:31:11 -04:00
Man, Jianting (Meco) fb941e6d8d
[fingbuffer] fix a typo (#6075) 2022-06-17 18:46:46 +08:00
tyx b80f581562 [compilers] Fix c/c++ compilation warnings and errors 2022-04-06 10:27:38 +08:00
guo b2e2ab28e5
[update] Fix some spelling mistakes. (#5738) 2022-03-29 21:29:08 +08:00
Man, Jianting (Meco) 91ea28a625
[pipe.h] 移除多余的头文件,防止形成头文件递归包含 (#5621) 2022-03-02 18:45:19 +08:00
Meco Man 8bf5a28528 [workqueue] 增加rt_work_urgent 2022-01-20 20:58:46 +08:00
Meco Man 36cbc1fd2f [workqueue] time参数改为ticks,防止误解单位为ms 2022-01-20 20:58:46 +08:00
guo fb7b9f4fb4
Merge pull request #5318 from enkiller/1201
[components][src] Optimize interrupt disable time
2021-12-21 17:40:59 +08:00
Meco Man 7ff976dab3 [posix] [pipe] add IPC for POSIX and add pipe for it 2021-12-14 06:12:04 +08:00
tangyuxin 5128a27c43 [components][src] Optimize interrupt disable time 2021-12-01 14:19:25 +08:00
Meco Man e538c5aa70 [workqueue] rename rt_workqueue_critical_work as rt_workqueue_urgent_work 2021-10-20 15:48:07 -04:00
malongwei 5fb6cb8b41 修复ringblk_buf在不使用动态内存时报错的问题 2021-09-01 19:58:23 +08:00
Jackistang 3de03a072e 修改 ringbuffer 和 workqueue 注释的语法 2021-08-18 09:44:52 +08:00
Jackistang 6173c9d7d5 fix comments error in ringbuffer and workqueue. 2021-08-17 22:44:29 +08:00
Jackistang 99de1a6220 format code 2021-08-14 14:32:58 +08:00
Jackistang 1b7468979f [ringbuffer] 添加 ringbuffer 的接口注释 2021-08-14 13:47:05 +08:00
Jackistang 0b4603d581 [workqueue] 添加了 workqueue 接口的注释 2021-08-14 11:10:43 +08:00
Meco Man 94ed55f34d [workqueue] remove rt_delayed_work_init() 2021-08-01 17:26:01 +08:00
Meco Man a8ed7b7769 [workqueue] 将rt_work_sys_workqueue_init函数私有化 2021-07-22 18:24:56 +08:00
liuduanfei ec1f22b87d 添加 rt_workqueue_critical_work 声明 2021-05-28 17:32:01 +08:00
Meco Man 3c05a4e719 [compoenets] auto & manual formatted 2021-03-08 18:19:04 +08:00
tangyuxin 83692a54c4 【workqueue】添加函数声明
rt_err_t rt_workqueue_cancel_all_work(struct rt_workqueue *queue);
2021-02-07 11:14:59 +08:00
tangyuxin d6b44ca52e [workqueue] 支持取消延时工作任务 2021-02-06 20:08:31 +08:00
Meco Man a233495718 Typo: rt_data_queue_peak() in dataqueue 2020-12-31 16:02:42 +08:00
malongwei d6c8b46dad add 'rt_ringbuffer_peak' API 2020-11-22 14:20:02 +08:00
qiyongzhong0 44baf269f7 fix bug of dataqueue 2020-09-18 09:33:34 +08:00
yangjie 1d7b34f471 [components][dataqueue]修改is_init为magic数 2020-04-08 11:05:37 +08:00
yangjie dfcd38b74d [components][dataqueue]add rt_data_queue_deinit 2020-04-07 17:36:56 +08:00
tangyuxin badd211457 [components][drivers][ipc] 完善工作队列,增强稳定性
1. 可直接提交延时任务, 无需额外调用延时初始化
2. 修复延时任务 PENDING 时,取消任务会递归调用的问题
2019-08-05 14:18:15 +08:00
tangyuxin 91345d62af [components][drivers][ipc] 初始化工作对象所有成员 2019-04-28 14:31:57 +08:00
EvalZero 83b6260b3f [components][workqueue]improve delayed work for reinit. 2019-04-22 11:43:45 +08:00
Bernard Xiong 2c8fb7022e
Merge pull request #2526 from BernardXiong/fix_pipe
[libc] Fix the unamed pipe close issue
2019-04-01 18:10:44 +08:00
Bernard Xiong ff00378728 [libc] Fix the unamed pipe close issue 2019-03-31 15:21:49 +08:00
EvalZero c7ccb4f532 [components][drivers][workqueue] add system default workqueue and delayed work. 2019-03-30 14:29:30 +08:00
armink 74232f2de4 [DeviceDriver][rbb] Add some comments and rt_rbb_blk_size/rt_rbb_blk_buf API.
Signed-off-by: armink <armink.ztl@gmail.com>
2018-11-22 18:08:12 +08:00
Bernard Xiong e158d48de0 [license] Fix the bad license replace. 2018-10-15 00:50:04 +08:00
Bernard Xiong 2c0640a178 [license] Change license to Apache. 2018-10-14 19:37:18 +08:00
armink dff8a2c513 [DeviceDriver] Add rbb (ring block buffer) data structure. 2018-09-12 08:59:58 +08:00