zhangle2015 发表于 2020-3-24 12:56:17

NuttX果真强大,单片机中的F35!然而国内没火也是有原因的。

前言:最近把微博删了,开始专心学习点东西,以后专心发技术帖子和技术评论帖子。

NuttX这款实时操作系统我以前听说过,PX4有帮人搞。自己将源代码下来认真看了以下,果然强大,这就是我心目中期待接近理想的一款:
1、自身就带标准C库,除了几个特殊的,如math库可以用编译器自身的东西。
2、一个完整的操作系统所有内核组件:进程、线程、内存管理、设备管理、文件管理系统以及进程间通信机制。
这个标准C库完全是建立在RTOS提供的接口之上的,二者相当紧密。我不必为了一个printf搞半天桩函数,每个进程都带标准输出、输入和错误。
3、一个强大的命令行程序,nuttshell。
4、满足posix标准,意味着好多现场的程序只要稍微改改就可以在上面跑。
5、各种驱动和功能丰富。

当然它有缺点,唯一的缺点就是太难学:中文资料太少。
曾经有个故事,有两个年轻的裁缝碰到到了一个老神仙,老神仙拿出两个手套让他们选,一个魔法手套,一个看似普通的手套,说魔法手套可以让你立马实现最好裁缝的梦想,但只有5年的时间,另一双需要把它磨破,就可以永久。
你们也想到了结果,有时同样的选择也出现在我们这些电子工程师选取RTOS的时候。
经过一小番折腾,将lua5.3最新版本移植过来,只要京loslib.c去掉,文件路径按NuttX的来,轻轻松松移植了过来,lua和luac。你可以编译出字节码。
这给了我很多的想象空间,只要单片机有块8M的SDRAM,有张SD卡,以后绑定硬件后就可以脚本编程了,加快速度你可以用字节码,此时后台还运行着硬实时RTOS(和elua区别就在这里)。盗用elua的example中的life.lua跑起来:





dragonbbc 发表于 2020-3-24 13:19:26

Apache旗下的啊,MARK下先

honami520 发表于 2020-3-24 13:23:55

2年前编译过一次。不过用的人太少,没敢用于项目。

PPS 发表于 2020-3-24 13:30:30

posix?那是不是能跑QT?

zhangle2015 发表于 2020-3-24 13:35:42

PPS 发表于 2020-3-24 13:30
posix?那是不是能跑QT?

这是在单片机上,不能跑QT,不过你可以用littlevgl或者自身的NxWidgets

liao-ljj 发表于 2020-3-24 13:48:05

n年前搞了几年的Vxworks......领悟了他的强大。

security 发表于 2020-3-24 13:58:25

本帖最后由 security 于 2020-3-24 13:59 编辑

8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。

xihacow 发表于 2020-3-24 14:00:04

我第一次听说这个系统。

我是一个大白菜 发表于 2020-3-24 14:00:15

楼主可以多介绍一下吗,第一次听说这个系统

security 发表于 2020-3-24 14:02:42

我是一个大白菜 发表于 2020-3-24 14:00
楼主可以多介绍一下吗,第一次听说这个系统

只能说算小众吧。
对多数人来说,并不是最佳选择,看看就好。

BSMGood 发表于 2020-3-24 14:03:38

虽然我对操作系统很感兴趣,但是我的工作中一直用不上,顶多就是一个调度机,不过对于我而言足够用了

security 发表于 2020-3-24 14:05:49

BSMGood 发表于 2020-3-24 14:03
虽然我对操作系统很感兴趣,但是我的工作中一直用不上,顶多就是一个调度机,不过对于我而言足够用了 ...

会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。

armstrong 发表于 2020-3-24 14:28:18

security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...

这话看起来挺浮躁,但不得不说,你说的是事实。

Excellence 发表于 2020-3-24 14:35:56

有配套的GUI ???

security 发表于 2020-3-24 14:42:55

Excellence 发表于 2020-3-24 14:35
有配套的GUI ???

GUI 推测肯定也是有难度,或者说不够强大易用,不然按开源的属性,早就大流行了。

Excellence 发表于 2020-3-24 14:49:15

security 发表于 2020-3-24 14:42
GUI 推测肯定也是有难度,或者说不够强大易用,不然按开源的属性,早就大流行了。 ...

要在LINUX环境下编译。
算了,还是用UCOSIII.吧。

qwe2231695 发表于 2020-3-24 15:12:16

Nuttx一直是一股清流.

zhangle2015 发表于 2020-3-24 16:29:00

security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...

主要是跑lua占用的空间,对于核来说,stm32f103c8t6都可以

zhangle2015 发表于 2020-3-24 16:32:56

我是一个大白菜 发表于 2020-3-24 14:00
楼主可以多介绍一下吗,第一次听说这个系统

我也在刚刚熟悉,有心得体会再说啊

zhangle2015 发表于 2020-3-24 16:35:26

security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...

估计这RTOS真的不适合你,比较适合爱好者深度发烧友

zhangle2015 发表于 2020-3-24 16:37:02

Excellence 发表于 2020-3-24 14:35
有配套的GUI ???

有,还没研究,从代码质量上来看,他的GUI也绝对不差,只是资料都是英文

zhangle2015 发表于 2020-3-24 16:39:39

qwe2231695 发表于 2020-3-24 15:12
Nuttx一直是一股清流.

有时间准备翻译翻译英文,希望能发展成洪流,都说国产RTT代码越来越多,越来越向linux发展,实际上NuttX已经登顶

qwe2231695 发表于 2020-3-24 16:40:37

越来越向linux发展,实际上NuttX已经登顶 , 没错{:loveliness:}

cloudboy 发表于 2020-3-24 16:40:44

8M内存的单片机,贫穷阻碍了我的进步

security 发表于 2020-3-24 16:50:03

zhangle2015 发表于 2020-3-24 16:35
估计这RTOS真的不适合你,比较适合爱好者深度发烧友

感觉 Nuttx 的路线一直就是 hacker 路线,所以,我也就是看看源码而已,要用的话,是不会用的。

zhangle2015 发表于 2020-3-24 16:51:10

cloudboy 发表于 2020-3-24 16:40
8M内存的单片机,贫穷阻碍了我的进步

你们误解了,8M是为了跑的lua解释器和luac字节码编译器的,只为跑到更爽些。
要说干些什么用,我只能说绝对有用,加入你对lua了解的话。

security 发表于 2020-3-24 16:55:49

zhangle2015 发表于 2020-3-24 16:51
你们误解了,8M是为了跑的lua解释器和luac字节码编译器的,只为跑到更爽些。
要说干些什么用,我只能说绝 ...

应该也没误解什么,只是羡慕你的应用场景、商业环境,财大气粗,或者是你的极客精神。
反正对我来说,长期内,都不太可能用到 8MB 的 RAM,甚至,近期还一直在开发 51 内核。

我是一个大白菜 发表于 2020-3-24 17:02:25

security 发表于 2020-3-24 14:02
只能说算小众吧。
对多数人来说,并不是最佳选择,看看就好。

好的,多谢指点

我是一个大白菜 发表于 2020-3-24 17:03:39

zhangle2015 发表于 2020-3-24 16:32
我也在刚刚熟悉,有心得体会再说啊

期待楼主,总结学习过程哈

zhangle2015 发表于 2020-3-24 17:05:24

security 发表于 2020-3-24 16:50
感觉 Nuttx 的路线一直就是 hacker 路线,所以,我也就是看看源码而已,要用的话,是不会用的。 ...

我认为主要是曲高喝寡,学这个RTOS真得要好好吃透点理论不行,要不你连看都看不懂。
我觉得小公司可以用起来,只要有一个两个深刻理解内核得人,其他人只要能编写应用程序就可以了,在这个基础上形成自己小公司得代码库。
希望你能理解我说什么,一个公司不同人搞不同得RTOS,不如统一成一个,选一个强大点得,然后不同能力得人干好自己得事情就可以了,能力强移植新架构写驱动,能力弱可以先开发应用程序。

jjj 发表于 2020-3-24 17:06:21

RTOS太多了,我不玩飞控, 所以就不学这个nuttx

ttoto 发表于 2020-3-24 17:10:07

现在RTOS主要看配套的组件。

nade 发表于 2020-3-24 17:10:45

你们去搞这些高大上的,有51的活可以给我接

security 发表于 2020-3-24 17:11:21

zhangle2015 发表于 2020-3-24 17:05
我认为主要是曲高喝寡,学这个RTOS真得要好好吃透点理论不行,要不你连看都看不懂。
我觉得小公司可以用 ...

从技术上讲,是这个道理。
但是从商业角度来考虑,就可能不是这样了,小公司,其实更怕这些小众的,独门秘籍掌握在少数人手里,万一这些少数人删库跑路了,该怎么办。

security 发表于 2020-3-24 17:14:14

nade 发表于 2020-3-24 17:10
你们去搞这些高大上的,有51的活可以给我接

51 也分我一点吧。

XIVN1987 发表于 2020-3-24 17:14:39


单片机没有MMU,,不可能有真正的进程吧

另外,,不知道楼主了解过 zephyr 没有,,

Appache基金会的Nuttx VS Linux 基金会的Zephyr,,不知道哪个能赢{:lol:}

security 发表于 2020-3-24 17:17:33

XIVN1987 发表于 2020-3-24 17:14
单片机没有MMU,,不可能有真正的进程吧

另外,,不知道楼主了解过 zephyr 没有,,


好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。

cloudboy 发表于 2020-3-24 17:21:55

RTOS这个吧主要还是生态的问题,毕竟解决不了全部的问题,当出现那些需要关注内核实现的问题的时候,如果不了解内部原理就很麻烦了
比如ChibiOS,在STM32上面的话驱动库都给你搞好了,但是国内用的人还是好少的

zhangle2015 发表于 2020-3-24 17:23:53

security 发表于 2020-3-24 17:11
从技术上讲,是这个道理。
但是从商业角度来考虑,就可能不是这样了,小公司,其实更怕这些小众的,独门 ...

小公司,老板基本就兼职技术人员,内核和库自己来管,这么独特得系统,别人仿制都不容易

XIVN1987 发表于 2020-3-24 17:36:00


去看了下,,驱动是把stm32的外设库完全自己实现了一遍啊,,

考虑到arch目录下这么多的芯片,,全部自己实现一遍外设驱动,,这工作量简直大的吓人啊。。

外国人真有奉献精神,,花这么大的精力做一个免费开源的东西,,





atommann 发表于 2020-3-24 17:37:31

Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。

zhangle2015 发表于 2020-3-24 17:42:18

security 发表于 2020-3-24 17:17
好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。 ...


它支持pthread,但不是和linux里面的一样,应该叫做任务组比较合适,一个主任务创造一堆属于自己的线程,他们共享环境变量、文件描述符(stdin、stdout 、stderr)、文件流、套接字等。MMU有没有没关系,MMU最大的用处是实现 外部程序加载。如果你对上了MMU的嵌入式系统感兴趣,我推荐你使用 另一款牛逼的RTEMS,不过似乎离单片机开发有点距离了,肯定是比较高大上的项目,比如军事装备、航空航天,那些对硬实时要求很高的地方,跑linux有可能找死。

zephyr是物联网新秀,我最近才发现,代码没研究过。

zhangle2015 发表于 2020-3-24 17:50:15

security 发表于 2020-3-24 17:17
好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。 ...

其实对RTOS来说,你最熟悉用到最溜的才是最好的,拿怕只有个调度器。也谈不上输家赢家,输家也有出彩的地方,赢家也未必通吃,不管那款,使着开心就好,别纠结对比。
nuttx在之前只是nutt一个人放出来大家用的,最近几个月到了apache旗下,我觉得背后有人在推,未来有没有风口?鬼知道

zhangle2015 发表于 2020-3-24 17:51:37

atommann 发表于 2020-3-24 17:37
Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。 ...

是吗,有没有资料,分享以下,这跟技术资料一样有价值

zhangle2015 发表于 2020-3-24 17:57:41

atommann 发表于 2020-3-24 17:37
Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。 ...

https://www.amobbs.com/thread-5702399-1-1.html?_dsign=96c0bbd8
找到了,就在本论坛

security 发表于 2020-3-24 18:04:51

XIVN1987 发表于 2020-3-24 17:36
去看了下,,驱动是把stm32的外设库完全自己实现了一遍啊,,

考虑到arch目录下这么多的芯片,,全部自己 ...

人家是早已解决了温饱问题的嘛。
正所谓温饱思淫欲,大概就是这个道理。

atommann 发表于 2020-3-24 18:10:39


Developing Audio Products with Cortex-M3/NuttX/C++11
Masayuki.Ishikawa@sony.com

来源 https://elinux.org/ELC_2017_Presentations

zhangle2015 发表于 2020-3-24 18:12:42

atommann 发表于 2020-3-24 18:10
Developing Audio Products with Cortex-M3/NuttX/C++11




谢谢啦,多打几个凑字

zhangle2015 发表于 2020-3-24 18:16:29

security 发表于 2020-3-24 18:04
人家是早已解决了温饱问题的嘛。
正所谓温饱思淫欲,大概就是这个道理。 ...

兄弟,帖子太负能量了,开心些,赚钱很很重要,但不是最重要的,我们能在2020年活着已经很不错了,找点自己开心的事情做。

security 发表于 2020-3-24 18:23:10

zhangle2015 发表于 2020-3-24 18:16
兄弟,帖子太负能量了,开心些,赚钱很很重要,但不是最重要的,我们能在2020年活着已经很不错了,找点自 ...

好吧,继续码代码。

security 发表于 2020-3-24 18:24:02

atommann 发表于 2020-3-24 18:10
Developing Audio Products with Cortex-M3/NuttX/C++11




谢谢分享。

haffman1 发表于 2020-3-24 19:04:39

楼主要么刚毕业要么家里不差钱像富豪那样喜欢折腾
工作十几年唯一开心就是赚钱看样子老了

haffman1 发表于 2020-3-24 19:07:58

一点个人感悟:学自己用的到东西

asj1989 发表于 2020-3-24 19:24:31

哎,我还在用裸机编程

chendaon 发表于 2020-3-24 20:06:10

支持一把喜欢折腾的人

lgg88 发表于 2020-3-24 20:13:04

在单片机上还没有跑过系统的路过{:sad:}{:sad:},最多的就是用过坛友里面的一个精简版调度器

wyn20007 发表于 2020-3-24 20:22:18

期待楼主,

takashiki 发表于 2020-3-24 20:26:01

zhangle2015 发表于 2020-3-24 16:29
主要是跑lua占用的空间,对于核来说,stm32f103c8t6都可以

lua要8M SDRAM???
ESP8266才不到200KB SRAM,跑NodeMCU照样跑得很欢。
含编译器和虚拟机,裁剪一些预设库,lua 5.x占用空间几百KB,lua 2.x占用不到50kB。20K RAM的stm32f103c8t6应该可以跑起lua 2.4,只是没啥用;如果只要虚拟机的话,STC都能搞定。像您这么一说,可能是我用了个假lua?

zhangle2015 发表于 2020-3-24 20:58:26

takashiki 发表于 2020-3-24 20:26
lua要8M SDRAM???
ESP8266才不到200KB SRAM,跑NodeMCU照样跑得很欢。
含编译器和虚拟机,裁剪一些预 ...

500K足可以,8M我只是说说,内存大了可以多搞点事情,另可以自带luac。
下一步移植到zynq上,不想跑linux,太大把控不住。以后FPGA+nuttx+lua做为产品基础,持续性集成,我是做仪器设备的,吉时利2400数字源表用过吗?里面就可以跑lua脚本,编程电压电流,这种就很棒,大大加大了仪器的可控性。
目标不一样,不是占多大内存的问题,不知道为什么都纠结这些。

zhangle2015 发表于 2020-3-24 21:00:29

haffman1 发表于 2020-3-24 19:07
一点个人感悟:学自己用的到东西

这就是我以后用到的东西

security 发表于 2020-3-24 21:38:50

zhangle2015 发表于 2020-3-24 20:58
500K足可以,8M我只是说说,内存大了可以多搞点事情,另可以自带luac。
下一步移植到zynq上,不想跑linux ...

仪器设备跑脚本,看起来确实很不错。

gliet_su 发表于 2020-3-24 21:52:36

这种RTOS是为不会硬件的人准备的。

zhangle2015 发表于 2020-3-24 23:34:07

gliet_su 发表于 2020-3-24 21:52
这种RTOS是为不会硬件的人准备的。

也是也不是,说是应为有些人只要在现成的基础上搞应用开发就可以,说不是,一旦涉及设备驱动,移植,调试等,搞会搞软件的人会懵逼

canspider 发表于 2020-3-25 00:43:58

国内的rt-thread,标准的lua5.3跑起来内存不到50K
stm32f407不扩RAM就能带起来

huangqi412 发表于 2020-3-25 06:16:49

security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...

也不定啊一些大内存特定片子便宜 至少比f4便宜

azeng 发表于 2020-3-25 08:39:15

在 github 上关注过,我看好多都是用在飞控上,可以猜想其稳定性。不过入门较难,需要的资源的略多,小单片机跑不起来。其实自己编译一个gcc+newlib-nano,定制一下libc也挺好用的。

azeng 发表于 2020-3-25 08:42:13

参考一下elua,跟正常版本的lua最大的区别就是加了一个rotable类型,把一些不需要变化的常量字符串放到了单片机rom里,内存占用量急剧下降,小内存单片机也能跑起来。

252514251 发表于 2020-3-25 09:05:30

很难啃,思维模式不大一样,需要类似linux的开发思维

散吧散吧 发表于 2020-3-25 09:29:49

security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...

技术只是一方面把,楼上的可以直接和老外沟通,可以直接进行全英文的面试,就这个一点已经比很多人要厉害了,当然楼主不是一开始就拥有这样的技能的,也是通过工作和及的努力一点一点积累的

security 发表于 2020-3-25 09:57:29

散吧散吧 发表于 2020-3-25 09:29
技术只是一方面把,楼上的可以直接和老外沟通,可以直接进行全英文的面试,就这个一点已经比很多人要厉害 ...

特定的行业,有特定的解决方案,行业不同,收入大不同。
我明白,那个只是调侃一下而已。

wkman 发表于 2020-3-25 10:20:01

{:lol:}不明觉厉!

dalige 发表于 2020-3-25 10:23:28

不谈应用场景的比较都是耍流氓!

zhangle2015 发表于 2020-3-25 15:24:29

azeng 发表于 2020-3-25 08:39
在 github 上关注过,我看好多都是用在飞控上,可以猜想其稳定性。不过入门较难,需要的资源的略多,小单片 ...

这个系统还有个特点就是配置性极强,不需要的功能去一下,代码大小小单片机也适用,

tomzbj 发表于 2020-3-25 16:24:19

security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...

试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.

不过要到stm32f4xx的新一点的型号才支持四线SPI、映射到地址空间,用着还能更爽。

security 发表于 2020-3-25 16:48:14

tomzbj 发表于 2020-3-25 16:24
试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.

不过要到stm32f4xx的新一点的型号 ...

这个信息收了,谢谢分享!

zhangle2015 发表于 2020-3-26 00:53:39

tomzbj 发表于 2020-3-25 16:24
试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.

不过要到stm32f4xx的新一点的型号 ...

谢谢推荐,话说这个还没研究过

黑暗骑士寒心雨 发表于 2020-3-26 11:17:57

来晚了,怎么看不到了?
NuttX这个系统有啥优点?相比FreeRTOS而言?

hlmkhqpost 发表于 2020-3-28 19:02:44

去看看,学习下

R8C 发表于 2020-3-28 19:06:33

价钱是另一个关键

rengo 发表于 2020-3-28 21:42:26

啥时候内部大内存成标配就好了
1M, 2M就够了

kyq_linux 发表于 2020-3-29 01:01:32

怎么就结束了
???

skystalker 发表于 2020-3-31 14:35:33

本帖最后由 skystalker 于 2020-3-31 14:36 编辑

黑暗骑士寒心雨 发表于 2020-3-26 11:17
来晚了,怎么看不到了?
NuttX这个系统有啥优点?相比FreeRTOS而言?

优点就是相当复杂,有点脱裤子放屁的意思,适合研究折腾。
做消费电子什么的可以。

bailao99 发表于 2020-4-3 10:43:51

security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...

会赚钱又怎样?你要会写书,而且要写那种别人喜欢看的书,否则钱多了叫为富不仁。{:titter:} {:titter:}
碰到同行,开个玩笑!
页: [1]
查看完整版本: NuttX果真强大,单片机中的F35!然而国内没火也是有原因的。