你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

RT-Thread4.0正式发布了,还支持SMP (内附源代码下载地址)

[复制链接]
fillmoreand 发布时间:2019-2-12 16:46
源代码网盘下载地址:https://pan.baidu.com/s/1mgIAyWo#list/path=%2F (下拉至底部及可见RT-Thread4.0压缩包)
6 |# x5 u; r2 w3 k
8 |9 ^# Z( W! S. yRT-Thread 4.0版本代码Release啦!2 G* p! w* O- `% i
. X* C) e0 o) f
因为支持SMP(对称多核处理器)的缘故,RT-Thread v4.0的发布有些延期。
: U9 ]; {- W5 c% f& N8 Y
; ]. P' a* f1 C( L7 g+ ?! ^: `再包括增加对64位处理器的支持,内核的改动也比较大,应该说是自RT-Thread创建以来内核调整最大的一次。但这份改动可以让对称多核处理器运行RT-Thread时,只需要运行一份实例。当有核空闲时,则会把就绪态的任务分配到这些空闲的核上执行起来,真正做到多任务并发执行,提升整体的计算性能。
+ Y1 Y4 m; A+ r; m
" S! a+ f9 f$ y. \$ E7 b本次发布主要有以下调整:
' y! \0 x7 o5 O! K; X
$ N9 o7 V1 F& N& w7 Z7 H内核:加入SMP支持和64位处理器支持;
7 ?  Z- `( D6 G' V1 w
' d6 _" }, Z8 F  n组件:增加单元测试框架utest、轻型进程实现`components\lwp,并优化部分组件使用体验;
0 K, U. r0 k- I8 G( ]" F- h
1 \& @- N" n# v; b& f" B4 WBSP:更新以STM32为基础的新BSP框架,使得BSP达到了对18个STM32开发板的支持;增加多个BSP:LPC54114-lite、Nuvoton-M487、嘉楠K210 、RV32M1 VEGA开发板、华芯微特SWM320、TI TMS320F28379D BSP、Synopsys DesignWare ARC EM Starter Kit等;
, w( b) R  D9 g$ e+ {
+ s' g4 U& S1 U9 q* ]6 Q工具:RT-Thread ENV工具也发布了v1.1.0正式版;# a) V" i0 c- e" h, u/ z8 j
' @! }6 j0 ~( o- E7 L
开发者致谢
4 D/ E- s: \; T在此特别感谢:" d  ]$ V" [8 ?: s4 q

0 o3 J3 V: j0 C4 J' @6 ^1 L2 GHubretXie、gbcwbz、fullhan、thomasonegd、NoeXu、liruncong、Bluebear233、zhouchuanfu、nongxiaoming、WuHan、whj、XXXXzzzz000、SASANOTakayoshi、sundm75、sun_shine、andeyqi、jinsheng、e31207077、HaoZhu、dingo1688、FindYGL、whj4674672、xuzhuoyi、ZhouYanJie等开发者 以及
3 K3 l- k- N& W: z7 ~' }0 i0 k8 O, [0 a/ E  [* q, A9 v4 W$ n8 D  n5 e
Synopsys、华芯微特公司对本次版本更新做出的贡献!
& I5 R$ K9 ]4 H  M6 S0 o3 k
/ e( A* J( a7 N3 W% |由于你们的积极参与,让RT-Thread用户的产品开发变得更简单!期待更多的开发者参与进来,一起建设更好的物联网生态!2 m7 Z# d$ @7 m. m0 C: w
# Q$ C: {( }  b6 }2 h8 @5 k' s$ `& l
以下是详细更新记录3 ~( w& b; k% W. `+ @' J# r

, A: u0 t- m  b6 _; ~) n( O- `内核1 A, V. a( D/ V4 p. O- w( Y
加入SMP支持;
& Y9 y* e+ e% X: I7 U
9 g; ?8 ?8 S3 v4 D4 z+ L/ F: O; ]! h! V加入对64位处理器支持;! E* l/ K' a* p# o7 ]
* _- K6 D+ r5 }+ F  h/ G) Y0 S" D
剥离任务RUNNING状态,即任务在CPU上运行时,状态变更为RUNNING状态,而不是延续READY状态。
. x/ e+ q& V# a2 J3 }! {. F0 S+ U! Q5 t  e. g/ h) [$ p. E
组件
, l0 _( t4 {% }7 mfatfs在格式化文件系统时,加入FM_SFD选项以按照SFD格式创建卷 (HubretXie)8 f) C- b" X4 ]% A" ?$ T) r
) K! q) U9 e4 c4 ]) y; [
struct dfs_fd中显式加入所属的file system句柄;' i# p! e8 ^# B+ @! J! X0 n
; }% `6 z2 v- f+ g3 p" ~  i
修正当打开POSIX API时,获取stdio fd出错的问题;(gbcwbz)
4 o0 t. Z1 E+ i3 G
4 k: ]8 |: z: k7 F8 p0 H修正DFS中,如存在多个mount文件系统,当文件系统内判断相同路径,判断出错的问题;
+ {! g" A. w- e; K( r
& \6 N0 j; |+ f更改dfs中getcwd()函数以dfs_lock/unlock方式来保持互斥(取代原来以关闭调度方式保持互斥);
/ I4 J" Q! A! m2 t, S! q
" o- [3 Q! Z( G6 n# i+ e重写finsh中listthread/list*等API,以避免在多核场景下出现多核竞争的问题;1 g6 _# L+ _- M" ^9 T2 O  q

7 w6 _& }" l* n! o% u修正AIO中aio_read_work返回的aio_result问题;(fullhan)
0 ^9 P$ H2 _1 o. Y  _# w5 N  |& D  f: g  I5 V  R$ `6 i
修正mmap调用中,当传入addr是空的问题;(fullhan), |% ?! J; H7 j; w9 h, d8 @* b

- i3 ]2 [9 |) R修正armlibc中_sys_istty函数对STDIN/STDOUT/STDERR的处理;(gbcwbz)
( ?: q$ T* D* |4 k* V" d5 U+ Z/ d  t2 v8 N
修正newlib中_write_r函数实现对stdout的处理;8 u+ t8 O& _- N+ A

1 d; {! z) M) s, K% q1 V. R; s+ D增加轻型进程实现components\lwp,并添加对应的一些系统调用;$ p/ Y& e$ @0 v+ {
, J" K. e  n- ?' J. }& P5 n
修正at_socket中,当socket是空指针的bug;(thomasonegd)" r; b- M1 ~2 L. D9 Y% T& D' K' V, l

( E$ ~$ u3 u( u修正at_socket中,at_recvfrom()函数实现中select event的问题;" @. }* h* f* x3 m  Y: x

. O7 H) f) t' H4 z& r9 y, _SAL中分为sal_socket_ops/sal_proto_ops,sal_proto_ops中加入gethostbyname/getaddrinfo等实现;. J  h7 H: K6 `& _. `* V! E
, U: [, G- R: S# x, c. S
SAL中加入socket层面对TLS的支持,即上层应用也可以完全不考虑TLS而得到加密传输的支持;1 v1 l5 r' P) E/ X' B
9 q! m# b6 t6 _6 P- J9 ?& Q
修正ulog_strcpy中不应该超过ULOG_LINE_BUF_SIZE长度的问题;
1 ~7 ?- |0 z( C. K
* D% `4 Q2 n/ Z1 F- Nulog中加入十六进制日志输出的宏定义;(HubretXie)
2 u4 D+ e7 l" s* K' b: w; ]4 \- R4 u) e; E- P. L
加入utest组件。utest是RT-Thread上一套单元测试框架,配合外部脚本可以进行硬件终端上的自动化测试;
: `& i5 Y" ?4 e# d& R  E' S2 j
8 Z8 [: t- [) f* W- D0 ^8 }: {) R9 t( J修正drivers/audio中的一些编译警告及枚举不匹配的问题;9 g( }% O- P8 j7 P7 q% O: i2 p. I
5 Y3 Z  O6 p5 O0 h$ u! {  }
修正drivers/can中当要关闭can设备时can_rx/can_tx未清零的问题;(Noe Xu)2 T2 L8 o+ ?$ [3 ]
3 v' O* \1 L/ N' G8 F5 [# E
修复drivers/hwtimer,向下计数模式时,时间获取错误的问题;3 N% g  W$ m- b6 E+ ?" w3 f

0 K) Q6 v& S( C2 I5 |" k" S加入drivers/adc驱动框架;3 K4 M! L- }  A- u

' F. b8 d) Q( y6 u5 \! G, a修正tick补偿时,过早打开中断的问题;(geniusgogo)
7 ]+ a9 `9 \% P0 h) p* c& r( o- @( @' x1 [1 s9 \* H1 Q1 W
drivers/serial.c中增加RT_SERIAL_USING_DMA选项;
- B& d6 X# F; o% g" Y4 b1 Z
# |! {% X8 F5 k2 Q2 S0 Q0 a) Xdrivers/spi框架中增加QSPI的支持;" A- j3 j/ s8 d+ Y7 s
5 n* q4 i9 a; H# l; |
SFUD中增加QSPI的支持(以stm32的QSPI外设为蓝本);SFUD升级到1.1.0版本;
' p( U/ Y8 k; z+ ~* x! r, H5 x" ]  \1 i7 u" g2 T+ `& b8 [* H4 e
优化spi_msd中的spi take/release调用代码;) u# w6 }7 ~6 A- ?; P2 R9 G9 A6 l0 A/ ]
2 c2 e9 R) R* G1 W5 {, Q
修正rt_rbb_blk_alloc中对blk_size的判断;
' N# k3 Z1 p) V3 a. V# i! g6 q' _" b4 E1 n
修正usb stack中,_get_descriptor函数对FS USB的判断;
' u- n9 d9 `$ @9 C. u
9 m3 u5 n1 C* l$ l+ X修正drivers/wlan中,当password是空时启动AP的问题;
6 L' m0 r" ?. p' E* m& i2 `
& Y* P9 {# E4 w0 [# u4 X修正drivers/wlan中对一些错误异常返回值的处理;) `0 u, T. H5 }: p$ ^
8 J. n- c* E. @9 k' p: R, ]
移除open时,dfs底层对文件重复打开的检查;1 \0 E: I1 i# j/ s3 d
) U# ~4 G% J* d9 @' N$ h! p9 A
BSP
. d: ?  k3 u1 [. }7 C# frt_hw_interrupt_install接口中name参数调整为const char *类型;(liruncong)
3 x6 Y+ K; J( m; R% D% G1 _- ~* G- G9 v0 ?. J, L, o- `  X
提供统一的RISC-V 32/64移植层;
$ k1 N/ D7 w) Y- ?; w+ G& d9 o- x/ T: {$ R  L% j. O
修正BSP中Kconfig定义配置项前$警告的问题;
0 p; |" |+ W" W2 k3 m6 D: S! F$ d7 A' H
增加LPC54114-lite开发板BSP,包括GPIO,I2C,SDCard,SPI,SPI Flash,UART等驱动;' [0 [7 ^# ~5 r% g+ b! ]9 W  ^# P
1 o# f+ ?" X8 w7 Y
增加Nuvoton-M487 BSP,包括UART,EMAC驱动;(Bluebear233)
* R2 k6 N/ @' c% N: A) {% ]# D; ]0 k4 a
增加嘉楠K210 BSP,RISC-V64 双核的SMP BSP,包括UART等驱动;
3 D1 v1 {3 _/ Z9 `
# f& H/ Y- v$ W# ^" W0 M& X$ ^5 X增加RV32M1 VEGA开发板的BSP,包括GPIO,I2C,SDCard,UART等驱动;
8 h: D. N% D1 l0 i  c# q
" [/ {/ t6 ~5 {修复STM32F4XX-HAL BSP中CAN驱动的问题;(Noe Xu)
0 t8 j' q2 w/ r
9 d- l- u" l5 t, q* m/ W9 m5 ~修复STM32F10x BSP中UART DMA设置的问题;(zhouchuanfu)! t9 `+ |) ^2 z* ~! N4 L* p) Z
% A% j& K4 T9 f5 G
修复STM32F40x BSP中UART DMA设置的问题;(zhouchuanfu)
( W4 b' T4 y( h5 H( m7 y
! n; d0 }6 Z' k0 A修正STM32H743-Nucleo BSP中HEAP_BEGIN定义的问题;(nongxiaoming)7 J. o4 o; h+ A

) `& d4 Q8 B! h6 H修正stm32f10x-HAL中GPIO配置的问题;(Wu Han)6 C0 f8 W. u& ~" G) s& q
6 z: u4 F- n' _. ~! i
更改stm32f107 BSP为main函数入口的方式;(whj)
9 m' r6 W6 z4 b' U
3 I% S4 m# D, G% ?$ ~修复stm32f10x BSP中对串口中断处理的问题;
/ a$ [; b4 a( \# x9 d+ g" u0 J" z3 t1 D; k0 p1 q
stm32f10x-HAL BSP中加入PWM、RTC、看门狗驱动;(XXXXzzzz000)
5 Y4 c" N: _1 Z) i1 L* Q8 ~$ a* T
' s/ K1 e# R. V8 x4 T2 j修正stm32f4xx-HAL BSP中看门狗驱动的问题;(XXXXzzzz000)
% Z$ _. L7 c7 Z: S9 O  ?/ P
5 q" W- z8 M9 hstm32f40x/stm32f107 BSP中增加对lwIP 2.x版本的支持;* G- X( Q' {3 ~% T  `
- E4 e& P% Z# Q' M
stm32f4xx-HAL BSP中增加对cmBacktrace软件包的支持;(Noe Xu)5 H9 l- A  h" K" n. x! e5 y4 C7 j
* s5 E1 l& G$ K' ^5 ]6 y6 p( U
stm32f429-apollo BSP中增加对Audio及麦克风的支持;$ c# p1 E# h5 t" W
4 T) ~  A9 {) [* X0 v! Z. f* j
修正x86 BSP中对dlmodule的支持;(SASANO Takayoshi)
! g5 h: e1 q/ N; s% ~; S) y  o: S' Y# ]0 u. K, Q, F0 W# g
在qemu-vexpress-a9/stm32f429-atk-apollo BSP的链接脚本中增加utest的段,用于自动化测试;
; @  h* j$ Z4 s; P0 J" Z: A& o' L) M; O5 t: Y, j& J0 t( i6 E! L& O
龙芯1C相关BSP,许可协议变更为Apache License v2;(sundm75)
* b* H" ]2 w9 o+ D/ K0 V+ s1 t" p1 n! G- A3 S0 K$ K. J
增加以STM32为基础的新BSP框架,在STM32 F0/F1/F4/L4/F7/H7等全系列芯片上重用芯片内外设驱动重用,同步带来整体的STM32开发板BSP大更新,BSP达到了对18个STM32开发板的支持:. Q6 d& h2 `1 O0 q
6 O3 X8 j1 b: m' E; P
, e9 n7 Z# L9 ~7 M
STM32F091-Nucleo 开发板 BSP
! e! [# Q+ Q" o0 @9 M: c/ o" p0 w) z; C; n
STM32F411-Nucleo 开发板 BSP
; X$ m& m3 h1 ?( _3 l
5 \( Z: ]; J: e. \0 K6 ZSTM32L432-Nucleo 开发板 BSP;(sun_shine)" f5 t' _; O* ^6 e7 k

% T) I. C5 \& X$ k# {: XSTM32F407-Discovery 开发板 BSP
' t8 F2 o1 R/ S, L; t( }/ Q  F& i! q2 z. G
STM32F446-Nucleo 开发板 BSP;(andeyqi)( \3 ^/ p. F6 G6 q$ w7 O6 n
7 `' i  a( J5 b1 A3 ^. g7 G: Z
STM32F746-Discovery 开发板 BSP;(jinsheng)
7 J5 Y$ [% X  E9 {2 Z. I0 A* E( _( g
STM32F767-Nucleo 开发板 BSP;(e31207077)
: s2 H; A- t# a9 E2 J) W( P1 R+ v3 v- K! h
STM32G071-Nucleo 开发板 BSP;/ W! D- c9 l  o& x# P# a& F
6 [: D( o9 l# l5 a2 q8 s
正点原子 STM32F103 NANO 开发板 BSP  I2 I  Y* y% y# V) f9 v  o
/ i8 F2 L: o( _' m: x
正点原子 STM32F407 探索者开发板 BSP3 Y4 \8 l  U( g7 h

3 ]4 f7 F9 c- q. H; \0 l1 C% ^正点原子 STM32F429 阿波罗开发板 BSP
- @  L- m+ W9 x' Y* Y
$ [  w7 ]6 {$ O6 V3 N正点原子 STM32F767 阿波罗开发板 BSP6 W7 j4 E- J' C

7 R- W& q. p5 j) Y9 E. ^正点原子 STM32L475 潘多拉 IoT 开发板 BSP
% U0 O( [6 }3 t' c6 a- l
" F+ s) v9 M+ @9 ]; K*火 STM32F103 霸道开发板 BSP
( X& h- u8 m1 h5 j4 L7 }" y. g$ }5 L# S9 ~' [
*火 STM32F429 挑战者开发板 BSP
6 @( i6 y/ s' E4 ^9 e6 L/ f; `, H. R: J2 D9 `/ t& {! u$ ?
*火 STM32F767 挑战者开发板 BSP;(Hao Zhu)6 u/ M# r: }& k/ M
# U1 L0 b# x" i7 V, E; X% m
安富莱 STM32F429-v6 开发板 BSP7 h: q# ^( u! Z3 B! y% e
; E, c- n9 D- `( {+ }" `  \
硬石 STM32F103 iBox 开发板 BSP;(dingo1688)
" _5 z( H3 q7 j& S6 Y7 J
. y: p1 A& F+ i8 X, t8 @9 G德飞莱 STM32F103 开发板;(FindYGL)) q3 c% J+ X3 X# Y

2 p6 F' _0 y7 JSTM32F107 μC/Eval 开发板 BSP;(whj4674672)
5 c3 f' Z0 u& N  k; E2 w
1 ^7 @/ t) @8 x在这个过程中也得到社区开发者的大力支持,特别是HubretXie,Hao Zhu,e190等对stm32公共驱动的完善;
( t; H1 u6 z. F$ ]( l( j3 }. D, U0 w7 K
增加华芯微特 SWM320 BSP,包括GPIO,HW Timer,I2C,看门狗,PWM,RTC,SPI,UART等驱动;(由华芯微特提供BSP并进行维护)6 l# b' b. q3 P

$ {  f+ Q& o# N: u- O2 V" S' [增加TI TMS320F28379D BSP,RT-Thread上支持的第一个DSP芯片;(xuzhuoyi)
5 r( g0 @4 @7 Z. d; B' ?4 @. d2 O7 F
修正X1000中USB驱动问题;(ZhouYanJie)
+ O9 l% K% d) p0 R
1 `5 ]) u1 `/ T- s增加Synopsys DesignWare ARC EM Starter Kit BSP,bsp/synopsys/emsk_em9d,EM9D核,包括GPIO、UART等驱动;(由Synopsys提供BSP并进行维护)
  n+ v0 h/ s. m9 G" W; J  p
0 H  g, \$ V% e' l$ S5 B: t工具4 u3 P" L+ c4 e5 I+ Y3 {! Z
当工具链不存在时,给出更好的提示信息;$ H( U) x- `: @- }, R9 A. `

- _3 J9 ?2 ^  A' ^* E5 h增加初步的Segger Embedded Studio工程文件生成命令,注意:SES中携带的工具链比较特殊,libc并不是newlib' `2 j6 x) A3 I) y1 ~8 `% I' v! P$ m
( E0 |7 G: s# |
修正IAR下用scons命令行编译的库链接问题;
% B$ B+ K, R) i! W$ z$ ^+ T; D; c/ {5 q, U" U' |+ H8 Y; k
修正scons在有些工程转换中,未加入BSP路径的问题;
! ~& X0 s0 S. E/ j* r# ]* \7 \* y& r
增加scons --pyconfig-silent命令,用于添加部分配置,从新生成.config及rtconfig.h;+ f$ A) t) v  U4 P3 o
9 H% x! s2 {: `$ U: l# G& g" Q
更新scons --dist命令,以更好的适配新的BSP框架;
* b( U1 ~) j, v# R2 S$ o' K( [8 N, I% z' b- j
修正mkromfs.py脚本,当romfs中包含空文件,空文件夹时不生成对应代码;  s% J+ N2 t6 I
1 M6 ]5 j! E/ G$ `9 `# z; X; O
修正utils.py中工具链版本字符串比较的问题;6 s$ z* X% W* G( w$ M9 S7 ^1 W

( Q+ v) X+ a- B: I7 c5 o& o  uENV 更新到v1.1.0版本(下载更新:https://pan.baidu.com/s/1cg28rk)& e1 M4 G' d  O( J# Y( E9 ~* U1 R
( a! i7 y8 {. W' p
% j; X9 _8 x. \6 e3 x* A2 }
增加开启提示信息,提高用户体验
6 d' m4 m* }9 E3 ?4 x! H# I. h
# a2 d. Y2 [9 A" D优化关键的提示信息& F0 J5 @5 Y& z( N' x

: Q$ i& u  K& k) y7 b" W! I) |添加 system32 路径环境变量,避免用户出现 cmd 命令找不到的情况
& G0 _  @2 o9 t6 F' g& v9 \( p1 k0 B, s$ ^, d
添加 PYTHONHOME 环境变量,避免出现 PYTHON 环境变量的问题
/ v- V& T( O% p$ s' C7 [$ A1 z3 C! S* b/ @0 v" E6 ^4 Y& _/ u! K
! R0 l! Y- m+ N1 c

评分

参与人数 1 ST金币 +10 收起 理由
子曰好人 + 10 赞一个!

查看全部评分

赞 收藏 评论17 发布时间:2019-2-12 16:46

举报

17个回答
梦中的飞鸿 回答时间:2019-6-28 18:08:40
armfanscherry 发表于 2019-4-8 17:15& O0 u& ]6 ^) D
rtt我一次没用过,感觉没有开发板,入门快吗?有uscos基础

0 W$ d' m+ N4 D( V2 i2 H$ n入门还行,资料看起来挺丰富的
ZhangQing 回答时间:2019-6-26 15:46:30
这个改善大了,值得等待。期待进一步的学习,能以后在项目中用上。
armfanscherry 回答时间:2019-4-8 17:15:32
rtt我一次没用过,感觉没有开发板,入门快吗?有uscos基础
黑皮男 回答时间:2019-2-13 09:07:04
支持支持
STM1024 回答时间:2019-2-13 09:17:04
支持STM32G071-Nucleo,有机会试试
STMWoodData 回答时间:2019-2-13 09:42:29
提示: 作者被禁止或删除 内容自动屏蔽
TLLED 回答时间:2019-2-13 10:27:18
谢谢分享!支持支持
liuqianglove 回答时间:2019-2-13 17:27:19

$ p- Q2 U7 H) b$ F1 u支持STM32G071-Nucleo,有机会试试
埃斯提爱慕 回答时间:2019-2-13 18:44:02
提示: 作者被禁止或删除 内容自动屏蔽
keijio 回答时间:2019-2-15 14:35:03
这个必须支持!
我夏了夏天 回答时间:2019-3-21 18:27:47
可以的,这个很强
andey 回答时间:2019-6-28 21:35:17
提示: 作者被禁止或删除 内容自动屏蔽
幻影21 回答时间:2019-6-28 22:43:44
有机会试试
zhengjufeng 回答时间:2019-8-15 20:28:30

) A# }" k' H/ R) k( Z1 N1 ~支持支持
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版