Commit Graph

877 Commits

Author SHA1 Message Date
thewon86 b4f605d406 separate init & configure of uart ops 2023-02-21 09:01:17 -05:00
thewon86 67bc7e816c
implement serialX UART device framework 2023-02-20 23:30:29 -05:00
wangxiaoyao 26891e9117 [fix] pipeline 2023-02-21 08:48:49 +08:00
wangxiaoyao ed58f6676d [src] add assertion for debugging 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
Bernard Xiong 8945e8d9ed
[Kernel] Add Smart ID in logo show (#6898) 2023-02-02 16:36:55 +08:00
supperthomas d5a5a32273 [doxygen][src] Fix the comment in rt_custom_object_create
Signed-off-by: supperthomas <78900636@qq.com>
2023-01-19 09:14:54 -05:00
Meco Man ddccef3a64 modify RT_ALIGN_SIZE as 8 by default 2023-01-12 22:47:23 -05: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) 93a7cff44c
[kernel][timer] 修复在IAR下数据类型报错 (#6804) 2023-01-02 12:42:55 +08:00
Meco Man a2676b0544 [kernel] RT_NAME_MAX set the range from 1
RT_NAME_MAX为0是nano中使用,完整版中不支持const name
2022-12-26 01:35:14 -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
Shell e8504c7cf1
[smart/aarch64] code sync (#6750)
* [smart/aarch64] sync aarch64
2022-12-20 17:49:37 +08: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
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) 10451fb95b Revert "[kernel] 修正复制name字段时潜在的内存踩踏问题"
This reverts commit 2d17fe736f.
2022-11-21 21:32:13 -05:00
Meco Man d1c353f6b6 [kernel] 优化Sconscript脚本 2022-11-14 22:20:23 -05:00
Meco Man 2d17fe736f [kernel] 修正复制name字段时潜在的内存踩踏问题 2022-11-14 19:20:06 -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
liangyingjian 6da7ee128b [update]更正 RT_MEMHEAP_BSET_MODE -> RT_MEMHEAP_BEST_MODE 拼写错误。 2022-11-05 10:45:09 -04:00
Man, Jianting (Meco) e9a2dc0e02
Update src/ipc.c 2022-10-25 23:39:03 -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 63b97db64a [Kernel] Remove the debug definition for mutex 2022-10-17 08:01:48 +08:00
Bernard Xiong e645c95eb8 [Kernel] Trim trailing spaces in ipc.c 2022-10-16 18:23:26 +08: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
Frank Buss e80facfd06 remove unused code to improve speed
The RT_ASSERT(obj != object) line is only compiled for debug mode.
But the rt_enter/exit_critical causes the compiler not to optimize
at least these 2 calls, even if it could optimize out the whole loop,
because the rt_list_entry function has no side effect, and RT_ASSET
is a no-operation in release mode. So this patch fixes this:
- no warnings anymore
- better speed in release mode
2022-10-08 22:37:41 -04:00
Tangyuxin ca30428cee
修复低概率终端无法输入问题 (#6464)
* [ulog] Fix the problem that the terminal cannot input

* [mem] Fix NULL pointer access
2022-09-27 11:11:29 +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
tangyuxin 655beb3bda [memheap] Fix the Oz optimization problem of AC6 compiler 2022-09-19 23:30:44 -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
winfenggao cbbea1a0f5
[kservice] 增加printf格式2进制和8进制,RT_KPRINTF_USING_LONGLONG 和 RT_PRINTF_SPECIAL 做了相应处理 (#6361)
* 增加printf格式2进制和8进制,RT_KPRINTF_USING_LONGLONG 和 RT_PRINTF_SPECIAL 做了相应处理
2022-09-02 10:00:28 +08:00
Yunjie Gu 945486c29e
[kservice][ti c28x]rt_vsnprintf (#6349) 2022-08-31 15:30:59 -04:00
Ylne bfa357958d [kernel] 当tick为0时rt_thread_sleep不应该挂起线程 2022-08-31 13:57:43 +08:00
Ylne 069086ae28 [kernel] 为rt_thread_sleep添加上下文检查 2022-08-31 13:56:49 +08: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
Meco Man 43ede1859a [kernel] 优化内置线程命名
main线程栈指定对齐字节数
2022-08-25 10:11:35 +08:00
Yunjie Gu d49ac097ab
[kernel] 修复 rt_memset 使其 word size independent.
For compatibility with 16bit addressing 32bit CPU (e.g. TI C28x).
2022-08-24 17:12:11 -04:00
Yunjie Gu b43f0e7205
[bsp][tms320f28379d] Fix compile ti (#6254)
* compile_ok

Issues fixed:
(1) update .config: select FINSH_USING_SYMTAB
(2) add rt_size_t in rtconfig_project.h
(3) fix finsh problems of using sym table
(4) update .project to include ipc source codes.
Todo list:
(1) automate the build source selection of ccs and reconcile it with scons

* change compiler

* msh can run now

the key step is to swap the order of rt_interrupt_nest -- and RT_OBJECT_HOOK_CALL(rt_interrupt_leave_hook,()) in irq.c. This is an improvised solution and an issue has been raised.

* Update 2837x_FLASH_lnk_cpu1.cmd

The original one is also fine. Just to make it more rigorous since FSymTab is in data section.

* update readme.md

Complier selection and maintainer update.

Co-authored-by: YuQi <qiyu_sjtu@163.com>
2022-08-20 13:16:41 -04:00
blta 7750358bed [kernel/schedule] fix the time slice issue 2022-08-16 00:05:56 -04:00
Meco Man ef659661d4 [kservice] 增加换行符 2022-08-14 21:49:43 -04: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
dongly 3363586cbb
Fix some compilation warning (#5744)
* Fix some compilation warning

* 补充修正一些数据类型的使用错误

Co-authored-by: Meco Man <920369182@qq.com>
2022-08-02 12:09:49 -04: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
rewine c13b03604f [kernel][mem.c] tighten size before check with mem_size_aligned 2022-06-22 14:11:43 +08:00
朱天龙 (Armink) 33be34d8ec [kservice] add NULL check for rt_free and rt_free_align. 2022-06-13 21:14:14 +08:00
Meco Man 99a1c36f02 attach: remove strnlen #6026 2022-06-08 14:45:10 +08:00