Commit Graph

289 Commits

Author SHA1 Message Date
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
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
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 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
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
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) 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
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
wdfk-prog 780806feb4 [rtdef] RT_IS_ALIGN marco add a null address exclusive 2023-06-11 11:41:50 -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
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
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
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
螺丝松掉的人 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
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
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