Commit Graph

92 Commits

Author SHA1 Message Date
Shell e25fc8b511
[libcpu/arm64] add C11 atomic ticket spinlock (#8882)
* [libcpu/arm64] add C11 atomic ticket spinlock

Replace the former implementation of flag-based spinlock which is unfair

Besides, C11 atomic implementation is more readable (it's C anyway),
and maintainable. Cause toolchain can use their builtin optimization and
tune for different micro-architectures. For example armv8.5 introduces a
better instruction. The compiler can help with that when it knows your
target platform in support of it.

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

* fixup: RT_CPUS_NR

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-16 15:45:12 +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
wdfk-prog d8dcc05174 [mem] Remove useless code And Update mem documentation 2024-04-18 20:04:15 -04: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
Shell f6fce5f8d7 [kservice] MT-safe output support (kprintf/kputs)
Signed-off-by: Shell <smokewood@qq.com>
2024-01-16 00:59:18 +08:00
Shell e7880a9713 [kernel] support for hook list
Signed-off-by: Shell <smokewood@qq.com>
2024-01-02 19:42:46 +08:00
geniusgogo 6b22a0a2b7
dfsv2 code tidy. (#8374) 2023-12-16 18:06:47 +08:00
Shell c2036e769a
[smart] fixup of lwp recycling and mm varea (#8206)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2023-11-02 20:23:11 +08:00
zan319 f79ae29c70
[serial_v2]串口设备框架serial_v2在utest下的testcases补充 (#8079) 2023-10-27 09: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
Shell fb78a71020
[smart] replace varea pgmgr and fixup of dfs mmap (#8184)
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-10-25 14:59:48 +08:00
zms123456 a39da9cb59
[components][mm]添加预留内存支持 (#8025) 2023-10-14 14:10:57 +08:00
Shell a300cef2a8 [smart] split out part of lwp_new() to lwp_create()
Prev implementation of lwp_new() including the create of lwp object
and the pid allocation. But not every lwp object need a pid.
So this patch split out the business of lwp_new() to improve the
maintainability.

Signed-off-by: Shell <smokewood@qq.com>
2023-10-11 08:48:06 +08:00
zhkag 82debed3ae [utest] 更改线程栈的大小,避免栈异常 2023-09-26 18:08:28 +08:00
wangyuqiang 3592bdea0d [utest] 添加 signal 依赖项 2023-09-25 14:38:40 +08:00
zhkag d75090dd16
[utest] 更改 thread_tc 线程栈的大小,避免 64 位机器导致的栈异常 (#8057) 2023-09-20 13:15:32 +08:00
zhkag 0b9a808cca
[posix]修复消息队列返回长度异常 (#8014) 2023-09-08 18:15:03 +08:00
Shell d862816a51
[components/mm] add unmap page API (#7834)
Signed-off-by: Shell <smokewood@qq.com>
2023-08-16 15:38:59 +08:00
Shell acfa74f078
[libcpu/arm] fix race condition with ldrex,strex (#7842)
Signed-off-by: Shell <smokewood@qq.com>
2023-07-25 14:07:44 +08:00
zhkag e65509a58e
[src][components][include]消息队列支持优先级 (#7382) 2023-06-26 00:06:06 -04:00
goldengrandpa 139d2b9fb9
[testcases]增加volatile解决优化等级高的情况下,测试不通过的问题 (#7717) 2023-06-25 13:53:22 -04:00
zhkag 33f550cb65
[Kernel] message 可以返回消息的实际大小 (#7709) 2023-06-21 18:22:42 +08:00
zhangyan 511bafb807
[testcase] correct the file names in sconscirpt 2023-06-19 17:38:05 -04:00
zhangyan 1758de1be1
testcase 修改 (#7688) 2023-06-18 21:40:02 +08:00
shandianchengzi a294d7da9a
[HUST CSE][example] fix some typo bugs about 'sucess' and others. (#7528) 2023-05-18 10:42:44 -04:00
Liu Haoyi efc3ced31d
[HUST CSE][examples]Fix undefined behavior 'fclose(NULL)' (#7513) 2023-05-16 17:55:18 -04:00
chiehwarm b1415c4fc8
[HUST CSE] fix fgets_tc.c (#7503)
这个文件里存在使用fopen函数后没有关闭文件fclose的问题,而且stream=NULL时是不需要fclose的
2023-05-14 23:51:30 -04:00
连琦 9a77eedd89
[HUST CSE][utest] fix the sizeof incorrect calculation
atoi_tc.c中的"sizeof(test_data[0])" 和atol_tc.c中的"sizeof(test_data1[0]"错误,小于实际数组中的数据个数
2023-05-14 00:01:44 -04:00
goldengrandpa 97b9af70df
[testcase][thread_tc]修复高优化等级时thread测试用例死循环的问题 (#7483) 2023-05-12 11:00:35 +08:00
LostCivilization 9a432c7413
[HUST CSE][utest] fix the NULL pointer error 2023-05-01 00:45:16 -04:00
LostCivilization 106f635552
[HUST CSE] 判断条件冗余 (#7430) 2023-05-01 07:38:25 +08:00
Z-Xiaoyuan f5f5bc96f8 [examples]Fixed an issue where fclose was not used after using fopen 2023-04-29 00:56:50 -04:00
Chef003 06829534e1 [HUST CSE]fix closing the same file twice 2023-04-21 23:03:34 +01:00
Yaochenger 38eb3fc40f
[utest][atomic]添加返回值测试 (#7124)
* [utest][atomic]添加返回值测试
2023-03-30 11:06:21 +08:00
Shell eec78d9f5d
[rt-smart] testcase & improvements for memory management (#7099)
* [utest/mm] add testcase for create/init
format codes of create/init in components/mm

* [libcpu/aarch64] fix user stack check routine

* [kservice] export API for utest

* [utest/mm] testcase for aspace_map
format & modify the files under components/mm related with aspace_map

* [lwp/user_mm] add user_map_varea for mmap feature

* [mm] rename rt_mm_fault_try_fix to rt_aspace_fault_try_fix

* [utest/mm] testcase for synchronization

* [mm] modify unmap api to improve throughput

* [utest/mm] testcases for cache and varea map

* [format] remove extra space

* [utest/mm] fix testcase problem in header

* [lwp] extend map_user_varea with a flag

* [utest/mm] testcase for lwp_map_user_varea

* [libcpu/arm/cortex-a] fix kernel space layout

* [utest/mm] adjust for armv7 arch
2023-03-30 08:25:15 +08:00
Yaochenger de4f237482
[atomic]添加arm与risc-v下的常用原子操作函数 (#7053)
* Update Kconfig
* Update trap_gcc.S
* Update bsp/hifive1/drivers/SConscript

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
* Update SConscript
* [atomic]提交一份arm与risc-v架构下的常用原子操作函数
* 修改变量类型
* 更新rtatomic.h与atomic_port.c
* 更新rt-thread\libcpu\arm\common\atomic_port.c
* 更新include/rtatomic.h与libcpu/arm/common/SConscript
* 更新include/rtatomic.h
* 修正格式与Kconfig
* 修正格式与文件结构

* 规范文件格式与文件重命名
* 添加测试用例与CI
* 添加函数声明
* 修改virt64/SConscript 添加atomic_riscv.c
  * 1.规范代码风格
  * 2.添加RISC-V64原子指令支持 解决在RV64下编译器将32-bit运算结果扩展为64-bit 导致判断错误
* 添加C11标准库原子操作测试

---------

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2023-03-23 20:06:50 +08:00
Meco Man 0f461e870c [errno code][-RT_ERROR] fix that use RT_ERROR without - 2023-03-20 00:06:16 -04:00
guozhanxin 03bcd0701c [ci] fix build error. 2023-02-13 10:56:17 +08:00
guozhanxin ba5c63e65d add rtsmart ci 2023-02-13 10:56:17 +08:00
Meco Man 9bc68d26a4 format Kconfig and sconscript 2023-01-08 22:52:13 -05:00
Man, Jianting (Meco) 99bdf978d7
[rtdef] use lower-case to define attributes (#6728)
* [rtdef] rename RT_WEAK attribute as rt_weak

* [rtdef] rename RT_USED attribute as rt_used

* [rtdef] rename RT_SECTION attribute as rt_section

* [rtdef] rename ALIGN attribute as rt_align

* [legacy] add RT_USED ALIGN RT_SECTION RT_WEAK as legacy support
2022-12-11 13:12:03 -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
zhkag cf221f45d7 修复 riscv64 messagequeue_tc 报错 2022-11-29 21:08:22 -05:00
fan.ji b1beed20ae expand mq test stack size to fix overstack problem during utest.
Signed-off-by: fan.ji <fan.ji@weiheng-tech.com>
2022-10-27 21:11:49 -04:00
fan.ji dff06ff603 fix test_thread_yield fail bug in multiple utest loop case.
Signed-off-by: fan.ji <fan.ji@weiheng-tech.com>
2022-10-27 21:10:43 -04:00
guozhanxin 74912a6bee [ci] Test with time slice off by default 2022-08-16 12:33:50 -04:00
guozhanxin f6ac38a19b [utestcases] add timeslice_test 2022-08-16 00:07:33 -04:00
xiangxistu b39210dea3
[add] posix testcase frame. (#6127) 2022-07-04 10:20:04 +08:00
Meco Man f27110decd [utest] fix a bug 2022-07-01 11:39:28 +08:00