Commit Graph

605 Commits

Author SHA1 Message Date
Shell cc157baf23
[kernel] fixup of data racing accessing percpu objects (#8475)
Signed-off-by: Shell <smokewood@qq.com>
2024-01-09 23:09:49 +08:00
xqyjlj 6b6d39d716
feat: delete thread ref (#8456) 2024-01-05 17:03:55 +08:00
Shell e7880a9713 [kernel] support for hook list
Signed-off-by: Shell <smokewood@qq.com>
2024-01-02 19:42:46 +08:00
Shell 3a7903b799 [kernel] Add hook for malloc services
Including the patch for memory allocation, testsuites and fixups of
static analysis.

Signed-off-by: Shell <smokewood@qq.com>
2024-01-02 19:42:46 +08:00
Meco Man 20fb70ba15 [rtdef] remove legacy code 2023-12-25 10:50:43 +08:00
xqyjlj e31fa93423
feat: spinlock should lock sched (#8360) 2023-12-22 11:15:18 +08:00
geniusgogo 3dfafcd1d9
add semaphore max value control. (#8390) 2023-12-21 10:31:27 +08:00
xqyjlj 0541b39d61 feat(rtdef.h): add rt_always_inline 2023-12-21 01:00:59 +08:00
Meco Man 005828eba7 [nano] rt-thread susport nano option 2023-11-30 11:39:34 +08:00
Meco Man 873fd76b2f [libc] add RT_USING_INTERNAL_LIBC_ONLY macro
This option is for RT-Thread Nano version.
If select this option, it will not compile components/libc
folder and only use tool chain internal libc. Normally, the
tool chain internal is only cover ISO standard (e.g. armcc),
but some tool chains' internal libc will cover more than
ISO standard (e.g. newlib).
2023-11-21 23:22:55 -05:00
geniusgogo 9acebb07dc
fix rt_channel lock. (#8244) 2023-11-10 21:37:07 +08:00
Meco Man 589641258e [debug] rename RT_DEBUGING_INIT as RT_DEBUGING_AUTO_INIT 2023-11-10 05:24:33 -05:00
yanghuang b51a3420b0 [kernel] 解决rt_slist_for_each_entry宏不能正常遍历slist链表中元素的问题
因rt_slist_for_each_entry宏不能正常调用,在实际开发中去循环再调用rt_slist_entry很不简洁,所以修改了rt_slist_for_each_entry宏中关于链表next的判空处理。目前相关代码在GD32系统的MCU上均能正常工作,相关应用也在生产产品中经过验证。
2023-11-06 10:03:04 +08:00
Meco Man bb8667e13b
[rtdef] add comment for RT_USING_LIBC_ISO_ONLY (#8229) 2023-11-06 09:53:02 +08:00
tangzz98 acc66c5479
实现MPU抽象层 (#8080)
- 为RT-Thread设计MPU抽象层,支持ARMV7-M,ARMV8-M架构,让用户使用MPU检测栈溢出等内存问题,实现线程内存隔离
- 在components/mp目录下提供通用的API,libcpu目录下提供各处理器架构的具体实现
- 在STM32U575 NUCLEO, STM32H75 NUCLEO开发板测试通过
2023-10-30 08:24:55 -04:00
Supper Thomas 65623777d5
[action] Doxygen ci fix (#8191) 2023-10-29 13:12:29 -04:00
Shell eafb04e011
[ctime] fixup of data racing (#8187)
Signed-off-by: Shell <smokewood@qq.com>
2023-10-26 13:56:27 +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
蒙蒙plus 6459495726
[rtdef] remove duplicated rt_device_t defination 2023-10-22 02:08:45 -04:00
Shell 70a8d1d465
[kservice] improve backtrace service in kernel (#8144)
Signed-off-by: Shell <smokewood@qq.com>
2023-10-21 20:14:45 +08:00
geniusgogo 552b5406b5
restore smp macro define. (#8151) 2023-10-20 13:25:47 +08:00
zms123456 d01dd05a0c
[kernel][dm]适配新的设备驱动模型 (#8075) 2023-10-18 20:50:30 +08:00
geniusgogo ecd29fda60
Sync dfs lwp (#8123) 2023-10-17 13:07:59 +08:00
Shell 4158c8e88e
[smart] Replace irq disable/enable codes in futex (#7941)
Signed-off-by: Shell <smokewood@qq.com>
2023-10-14 13:07:45 +08:00
Z8MAN8 220222a387 change version number to v5.1.0 2023-10-11 08:48:29 +08:00
guozhanxin 227ea54d9d Update version number to 5.0.2 2023-10-08 11:21:00 +08:00
Meco Man f6083af2cb [rtdef] attach RT_ETRAP errno
this code will not be used in here, but will be used in other user apps

related:
8e6f9cf1be
ecf2d82159
2023-09-20 01:31:08 -04:00
Meco Man 8e6f9cf1be [rtdef] support POSIX compatible errno 2023-09-19 23:02:43 -04:00
Meco Man 35231eb116 [kernel] fix interruptible typo 2023-09-19 00:45:02 -04:00
Meco Man 746f527fac [rtdef] adjust RT_USING_SIGNALS defination 2023-09-18 22:41:28 -04:00
Meco Man 2935e386bb [rtdef] add RT_USING_LIBC_ISO_ONLY macro 2023-09-18 09:01:15 -04:00
zhkag 0b9a808cca
[posix]修复消息队列返回长度异常 (#8014) 2023-09-08 18:15:03 +08:00
Meco Man 5f948690c9 [rtdef] rename RT_CTASSERT to RT_STATIC_ASSERT 2023-09-06 22:21:22 -04:00
geniusgogo 4d20416b2f
update components & lwp. (#7888) 2023-08-07 12:22:14 -04:00
Meco Man c1cc1332e9 [debug] fix the error when disable RT_USING_DEBUG 2023-07-26 23:14:54 -04: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
Man, Jianting (Meco) aee1bd532e
clean up rtthread.h (#7843) 2023-07-23 06:19:34 +08:00
Man, Jianting (Meco) 244b903e5d
[debug] 整理debug宏并增加RT_DEBUGING_CONTEXT (#7805) 2023-07-22 10:36:42 +08:00
Shell 58e0ddf287
[component/lwp] support more feature of signal from IEEE Std 1003.1-2017 (#7828)
Signed-off-by: Shell <smokewood@qq.com>
2023-07-20 00:02:41 +08:00
ErikChanHub 2f5e4ac27e
【dd2.0】Support the Core API for dd2.0 (#7791) 2023-07-13 14:49:35 +08:00
wusongjie 3b7e46de7e AArch64: support hardware atomic
Support aarch64 rt_hw_atomic_* api.
Add atomic implemente by rt_atomic api:
    rt_atomic_dec_and_test
    rt_atomic_fetch_add_unless
    rt_atomic_add_unless
    rt_atomic_inc_not_zero

Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-07-05 13:38:29 +08:00
Shicheng Chu 2da019234e
[include][dbg]update: delete rtdebug.h (#7759) 2023-07-01 08:41:02 -04:00
zhkag bce92ed724
[atomic]修复bsp/simulator vs2019编译下 atomic 两个volatile的问题 (#7736) 2023-06-30 00:05:22 +08:00
Shicheng Chu e2c031643c
[include][dbg]update: no longer use RT_DEBUG_LOG in rtdebug.h (#7750) 2023-06-29 11:24:25 -04:00
zhkag e65509a58e
[src][components][include]消息队列支持优先级 (#7382) 2023-06-26 00:06:06 -04:00
guo 8d2072de55
[kernel]add api rt_hw_interrupt_is_disabled (#7706) 2023-06-21 22:42:50 +08:00
zhkag 33f550cb65
[Kernel] message 可以返回消息的实际大小 (#7709) 2023-06-21 18:22:42 +08:00
wdfk-prog 780806feb4 [rtdef] RT_IS_ALIGN marco add a null address exclusive 2023-06-11 11:41:50 -04:00
wangqinglin 0c29bed30f 内核Kconfig增加AMP选项, api:rt_hw_cpu_id和 RT_USING_SMP宏解耦,增加rt_hw_ipi_send对RT_USING_AMP的依赖 2023-06-11 07:08:53 +08:00
zhkag 522ac86bd9 [atomic] 头文件循环引用导致未定义 2023-06-09 23:12:18 -04:00
Meco Man 9522ef8486 [rtdef] add RT_IS_ALIGN macro 2023-06-09 22:48:22 -04:00
Bernard Xiong 4b4c3c85f2
[atomic] add stdc atomic detection. (#7536) 2023-05-20 23:41:29 +08:00
Fan Yang 48557de148
[include][src] Add API to get object name and thread name (#7507)
Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>
2023-05-17 17:40:18 +08:00
dejavudwh e12c2f9306
[Better style] Unify the function declaration and definition paramete… (#7432) 2023-05-01 07:35:03 +08:00
geniusgogo 5bbcb5dc79
fix tmpfs spinlock error. (#7216) 2023-04-12 13:12:27 +08:00
Shicheng Chu 93f3cb30e4
[kernel] 将rt_thread结构体改为显式继承rt_object (#7131) 2023-04-04 09:06:27 -04:00
褚仕成 d7ef1d1b4e change version number to v5.0.1 2023-04-02 02:30:24 -04:00
褚仕成 696bd91f42 change version number to v5.1.0 2023-04-01 02:15:50 -04:00
xqyjlj 157dc0959c feat(components): add uname support 2023-03-31 10:56:37 +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
Shell 18a14cc935
[rt-smart] move sys_cacheflush to lwp_syscall.c (#7048)
* [syscall] move sys_cacheflush to lwp_syscall.c

* [syscall] improve assertion

* [format] rename to rt_ctassert

* [debug] modified ct assertion on mm_page.c
2023-03-17 15:11:38 +08:00
Shell fcc01a617d
[rt-smart] Fix return value in syscall (#7045)
* [timer] fix sys return value to avoid outdated errno

* [rtdef] add wrap to stringify

* [syscall] return value in rt errno should be recycle immediately after call to posix layer

* [syscall] return type of syscall should be long
errno should be recycle immediately after call to rt posix layer to avoid
outdated value

* [format] move prototype to header file

* [fix] futex definition conflict
2023-03-13 19:09:34 +08:00
jonas aaba21c938 [fix]避免字符设备特殊控制指令和通用控制指令冲突 2023-02-21 23:43:37 -05:00
wangxiaoyao 484a0d602e [fixup] add cache maintenance ops;
fix bugs on cache maintenance when starting user app
2023-02-21 08:48:49 +08:00
Meco Man f58d3c5200 rt_device_write/read return data type as rt_ssize_t
rt_ssize_t can give negative error code, which follows the unix style correctly
2023-02-07 21:43:57 -05:00
tuduweb 9fbf63441e
[doxygen] Fix some warnings in doxygen (#6899) 2023-02-02 21:00:58 -05:00
bin 4d6ceffcab [doxygen] Fix some comments in rtservice.h 2023-02-01 22:31:57 -05:00
螺丝松掉的人 3a5d1c17a1
Add the comment of number_mask (#6873) 2023-01-21 22:47:05 +08:00
Shell 7450ef6c4d
[rt-smart] kernel virtual memory management layer (#6809)
synchronize virtual memory system works.
adding kernel virtual memory management layer for page-based MMU enabled architecture
porting libcpu MMU codes
porting lwp memory related codes
2023-01-08 21:08:55 -05:00
bernard 79b93c2199 [dbg] add dlog macro 2023-01-05 21:36:24 +08:00
Man, Jianting (Meco) 061af7b092
[kenel] add static name for rt_object (#6422)
增加静态object 名字,用户可以根据内存实际使用情况决定使用动态还是静态。适用于资源极度受限的情况下使用。该功能在RT-Thread完整版本中不常用,主要用于RT-Thread Nano,以缩减对内存的占用。由于没有动态拼接支持,在静态名字下,空闲线程的名字在多核时将命名成相同的名字。
2022-12-20 22:36:32 -05:00
guo 68ca9f07a6
[rt-smart] 弱化 RT_USING_LWP,使用 RT_USING_SMART 作为宏配置 (#6740)
* [dfs] sync cromfs

* [rt-smart]Weaken RT_USING_LWP, use RT_USING_SMART as macro configuration

* [format] fix some format issue.
2022-12-16 18:38:28 +08: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
Shell e991be9c51
[smart][risc-v/libcpu] port rv64 cpu code (#6704)
* [risc-v/libcpu] porting Smart & RTOS
* [fix] rv64 plic
* [risc-v/rv64] remove macro in rtdef
2022-12-10 22:16:42 +08: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
Man, Jianting (Meco) bdd663a33f
[libc][musl] support arm-linux-musleabi toolchain
目前基本功能已经可以在QEMU上跑起来,但是pthread和内核signal选中会报冲突。先合并一版本,后续解决这些问题。
2022-11-22 21:40:50 -05:00
Bernard Xiong 79e298147b
Merge pull request #6523 from BernardXiong/nested_mutex
[Kernel] Add nested mutex feature
2022-11-06 08:59:12 +08:00
Man, Jianting (Meco) c06c4075f2
Update rtdef.h 2022-10-25 23:45:25 -04:00
Man, Jianting (Meco) 055267f049
[compiler] 增加SConscript依赖标志 AddDepend (#6534)
* [compiler] 增加SConscript依赖标志 AddDepend

* RT_USING_NEWLIB->RT_USING_NEWLIBC RT_USING_ARM_LIBC->RT_USING_ARMLIBC

* 删除过时的板载测试例程

* [gd32] 移除无用的反汇编文件

* [bsp]移除老旧bsp中对RT_USING_NEWLIBC的手动宏定义
2022-10-25 00:01:37 -04:00
Yunjie Gu 8fa9fde43a
[bsp][c28x] add support to not disable global interrupt in context-switch to enable zero-latency isr for critical interrupts. 2022-10-19 23:41:13 -04:00
Bernard Xiong 6823a5110b [Kernel] Add prioceiling feature in mutex 2022-10-16 17:58:51 +08:00
Bernard Xiong 34c77da153 [Kernel] Add nested mutex feature 2022-10-15 16:19:13 +08:00
Meco Man 981e721c3b [kernel] add rt_ssize_t data structure 2022-09-16 17:26:07 +08:00
lpy ba4ffc2094
A comment has been added (#6398) 2022-09-09 10:52:02 -04:00
Meco Man ce16945cba [kernel][version] 采用新的版本宏定义
版本控制规范:https://semver.org/

目前的版本子号不是很规范,其中RT_VERSION甚至和VS那边造成了冲突
```c
/* RT-Thread version information */
#define RT_VERSION                      4L              /**< major version number */
#define RT_SUBVERSION                   1L              /**< minor version number */
#define RT_REVISION                     1L              /**< revise version number */
```

参考ESP32:
```c
/** Major version number (X.x.x) */
#define ESP_ARDUINO_VERSION_MAJOR   2
/** Minor version number (x.X.x) */
#define ESP_ARDUINO_VERSION_MINOR   0
/** Patch version number (x.x.X) */
#define ESP_ARDUINO_VERSION_PATCH   3
```

建议改成:
```c
/* Major version number (X.x.x) */
#define RT_VERSION_MAJOR   4
/* Minor version number (x.X.x) */
#define RT_VERSION_MINOR   2
/* Patch version number (x.x.X) */
#define RT_VERSION_PATCH   0
```
2022-09-07 10:11:45 -04:00
YuQi b11cb41ae7
tms320f28379d fix init (#6343)
解决 tms320f28379d bsp 启动的问题。主要改动如下。

修正context.s中汇编代码错误。在旧版的代码中,操作数为32位而汇编命令却使用了针对16位数据的命令MOV,导致程序在某些情况无法正常启动线程。
由于C28x的平台下,SP只支持16bit寻址,所以用于线程空间存放的heap以及ebss段都需要放在低16位的空间,针对这个问题修改了CMD文件。此外还增加基于CMD文件基于RAM的支持,方便调试。
新增rtdef.h中RT_SECTION,RT_USED,ALIGN和RT_WEAK的定义。旧版bsp中这些定义为空,导致INIT_EXPORT注册的函数失效。
修改程序启动代码,在程序入口直接调用原生启动代码
以上改动在LAUNCHXL-F28379D 通过了测试。
2022-08-29 15:35:23 -04:00
Man, Jianting (Meco) 7d58cf1644
change version number to v5.0.0 (#6291) 2022-08-28 23:28:30 +08:00
xiangxistu e61d05ca1a
[fix] the risk for function exit() when open pthread support. (#6229)
* [fix] the risk for function exit() when open pthread support.
* [update] modify annotation from "user data" to "pthread_data".
2022-08-07 23:16:17 -04:00
thewon86 9359ab4fa8
add version check (#5850) 2022-07-04 09:43:08 +08:00
Meco Man 9623706eff Revert "解决将RT_NULL当做数字0使用的问题"
This reverts commit 6a05ddf63d.
2022-07-01 15:51:28 +08:00
Meco Man a714c65cfe [kernel] 统一kernel内置rt_xxx的libc和标准libc库,防止割裂越来越大 2022-07-01 11:39:28 +08:00
a1012112796 697bf139b2
[enhancement] Add string information for error (#3186)
* [enhancement]Add string information for error

* Update src/kservice.c

* Update src/kservice.c

Co-authored-by: Man, Jianting (Meco) <920369182@qq.com>

* remove %m

Signed-off-by: a1012112796 <1012112796@qq.com>

Co-authored-by: Meco Man <920369182@qq.com>
2022-06-29 14:21:21 +08:00
Judd 9429b0f02a
be friendly to macro expansion (#6101) 2022-06-25 00:27:11 +08:00
Meco Man 99a1c36f02 attach: remove strnlen #6026 2022-06-08 14:45:10 +08:00
Man, Jianting (Meco) fb3f835089
[libc] remove strdup from rtthread.h (#6026)
add __STDC_LIMIT_MACROS macro in Keil
add RT_USING_LIBC in simulator
add _DLIB_ADD_EXTRA_SYMBOLS=0 in IAR
2022-06-04 17:02:35 +08:00
rewine a638a879fb [include] fix comment for rt_container_of 2022-05-25 10:04:55 +08:00
Man, Jianting (Meco) c147ff417c
[rtdef][libc] solve the conflicts between libc data types and rtdef data types (#5961) 2022-05-19 10:35:32 +08:00
Man, Jianting (Meco) 62d2403ebe
[kernel] beautify code (#5890) 2022-04-29 08:59:53 +08:00
Man, Jianting (Meco) 41631fe712
modify version to v4.1.1 (#5847) 2022-04-20 15:31:51 +08:00
Meco Man 5e9f525c41 [kernel] enable RT_DEBUG_DEVICE by default and move weak rt_hw_dealy_us in kservice.c 2022-04-19 11:26:41 +08:00