Commit Graph

52 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
wdfk-prog d8dcc05174 [mem] Remove useless code And Update mem documentation 2024-04-18 20:04:15 -04: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
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
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 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
goldengrandpa 97b9af70df
[testcase][thread_tc]修复高优化等级时thread测试用例死循环的问题 (#7483) 2023-05-12 11:00:35 +08:00
LostCivilization 106f635552
[HUST CSE] 判断条件冗余 (#7430) 2023-05-01 07:38:25 +08:00
Yaochenger 38eb3fc40f
[utest][atomic]添加返回值测试 (#7124)
* [utest][atomic]添加返回值测试
2023-03-30 11:06:21 +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
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
Meco Man f27110decd [utest] fix a bug 2022-07-01 11:39:28 +08:00
Yang sheng eb2fc60207
[bsp] Make all warnings into errors with qemu-vexpress-a9 qemu-virt64… (#5785)
* [bsp] Make all warnings into errors with qemu-vexpress-a9 qemu-virt64-aarch64 and stm32f411-st-nucleo.
* [RTC] Fix compile errors
2022-04-09 00:39:00 +08:00
Meco Man 0c35b803fa [utestcases] add dependence RT_USING_UTESTCASES 2022-02-14 10:14:12 +08:00
geniusgogo 658b2c1027 fix 32bit & 64bit value to pointer interconvert. 2022-01-28 11:35:10 +08:00
Meco Man c8dcf7cc68 [libc]rename group name 2021-12-30 01:27:25 +08:00
Tangyuxin d724eed9fc
分离内存分配接口与内存分配算法 (#5175)
* [kernel][mem] Multiple instances of small memory allocation algorithm

* [kernel][mem] Change small memory management algorithm memory header flag

* [kernel][mem] Fix assertion problem

* [kernel][slab] Multiple instances of slab memory management algorithm

* [kernel][memheap] Remove rt_malloc/rt_free/rt_realloc and other related memory interfaces

* [kernel][mem] Clean up memory space of small memory management objects

* [kernel][kservice] Add memory application interface and thread protection interface

* [kernel][kservice] Fix function return value problem

* [kernel][memheap] Optimize memheaptrace print

* [kernel][memheap] Support best mode

* [kernel][memory] Remove semaphore lock

* [kernel][memheap] Add locked flag

* [kernel][memory] Support malloc memory in interrupt

* [kernel][memheap] Add 'memheapcheck' cmd

* [kernel][mem] Fix failure to request full memory

* [kernel][memheap] Fix compilation warning

* [kernel][mem] Fix mem realloc ASSERT

* [examples][testcases] Add small mem testcase

* [examples][mem_tc] Modify test memory size

* [examples][testcases] Add slab memory management algorithm test case

* [examples][testcases] fix small memory management algorithm test case

* [kernel][memory] Adjusting memory allocation algorithm object definition and interface

* [kernel][memory] Fix compilation warning

* [examples][utest] Fix mem test case

* [examples][utest] fix slab test case

* [utest][testcases] Shorten test time

* [kernel][memory] Formatting code

* [examples][utest] Adjust test run time

* [examples][utest] Formatting code

* [bsp] update all rtconfig.h
2021-12-16 16:23:58 +08:00
Meco Man df9a23c534 [mutex] use RT_IPC_FLAG_PRIO to replace RT_IPC_FLAG_FIFO 2021-11-17 15:57:15 -05:00
mazhiyuan 3aab8c54ca format thread_tc.c 2021-10-11 13:55:17 +08:00
mazhiyuan c3465dfab7 add thread testcase 2021-10-11 13:47:26 +08:00
liukangcc bf94a69afd [add] mailbox testcase. 2021-09-09 10:27:48 +08:00
tyustli 0b55a75211
[fix] change chinese comment to english and fix some wrong character 2021-09-08 12:25:16 +08:00
tyustli f4abcef96f [add] utest kernel mutex_tc.c file 2021-09-06 15:30:08 +08:00
guozhanxin 389077897e [add] signal testcases 2021-09-04 18:04:57 +08:00
Sherman 7c24a01979 [utestcase] 添加 message queue 测试用例 2021-09-02 17:43:58 +08:00
guozhanxin 0ab5affee9 【utestcase】修复 timer_tc.c 延时函数使用错误的问题 2021-08-24 17:07:46 +08:00
tyustli e24e625c5d
【修改】删除代码中的多余空格 2021-08-23 18:45:18 +08:00
tyustli 0596a98c80 [add]kernel timer testcase 2021-08-23 12:37:54 +08:00
supperthomas b4a46f8bbe add the interrupt disable 2021-08-19 21:47:19 +08:00
supperthomas 39353f5c14 fix the space 2021-08-19 20:49:12 +08:00
supperthomas 210ff3c9df fix the space 2021-08-19 20:49:12 +08:00
supperthomas c8d73a76ce add the utest of irq 2021-08-19 20:49:08 +08:00
liukangcc f8c12d0f21 [add] event test case. 2021-08-19 08:50:14 +08:00