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跑起来:
Apache旗下的啊,MARK下先 2年前编译过一次。不过用的人太少,没敢用于项目。 posix?那是不是能跑QT? PPS 发表于 2020-3-24 13:30
posix?那是不是能跑QT?
这是在单片机上,不能跑QT,不过你可以用littlevgl或者自身的NxWidgets n年前搞了几年的Vxworks......领悟了他的强大。 本帖最后由 security 于 2020-3-24 13:59 编辑
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 我第一次听说这个系统。 楼主可以多介绍一下吗,第一次听说这个系统 我是一个大白菜 发表于 2020-3-24 14:00
楼主可以多介绍一下吗,第一次听说这个系统
只能说算小众吧。
对多数人来说,并不是最佳选择,看看就好。 虽然我对操作系统很感兴趣,但是我的工作中一直用不上,顶多就是一个调度机,不过对于我而言足够用了 BSMGood 发表于 2020-3-24 14:03
虽然我对操作系统很感兴趣,但是我的工作中一直用不上,顶多就是一个调度机,不过对于我而言足够用了 ...
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...
这话看起来挺浮躁,但不得不说,你说的是事实。 有配套的GUI ??? Excellence 发表于 2020-3-24 14:35
有配套的GUI ???
GUI 推测肯定也是有难度,或者说不够强大易用,不然按开源的属性,早就大流行了。 security 发表于 2020-3-24 14:42
GUI 推测肯定也是有难度,或者说不够强大易用,不然按开源的属性,早就大流行了。 ...
要在LINUX环境下编译。
算了,还是用UCOSIII.吧。 Nuttx一直是一股清流. security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...
主要是跑lua占用的空间,对于核来说,stm32f103c8t6都可以 我是一个大白菜 发表于 2020-3-24 14:00
楼主可以多介绍一下吗,第一次听说这个系统
我也在刚刚熟悉,有心得体会再说啊 security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...
估计这RTOS真的不适合你,比较适合爱好者深度发烧友 Excellence 发表于 2020-3-24 14:35
有配套的GUI ???
有,还没研究,从代码质量上来看,他的GUI也绝对不差,只是资料都是英文 qwe2231695 发表于 2020-3-24 15:12
Nuttx一直是一股清流.
有时间准备翻译翻译英文,希望能发展成洪流,都说国产RTT代码越来越多,越来越向linux发展,实际上NuttX已经登顶 越来越向linux发展,实际上NuttX已经登顶 , 没错{:loveliness:} 8M内存的单片机,贫穷阻碍了我的进步 zhangle2015 发表于 2020-3-24 16:35
估计这RTOS真的不适合你,比较适合爱好者深度发烧友
感觉 Nuttx 的路线一直就是 hacker 路线,所以,我也就是看看源码而已,要用的话,是不会用的。 cloudboy 发表于 2020-3-24 16:40
8M内存的单片机,贫穷阻碍了我的进步
你们误解了,8M是为了跑的lua解释器和luac字节码编译器的,只为跑到更爽些。
要说干些什么用,我只能说绝对有用,加入你对lua了解的话。 zhangle2015 发表于 2020-3-24 16:51
你们误解了,8M是为了跑的lua解释器和luac字节码编译器的,只为跑到更爽些。
要说干些什么用,我只能说绝 ...
应该也没误解什么,只是羡慕你的应用场景、商业环境,财大气粗,或者是你的极客精神。
反正对我来说,长期内,都不太可能用到 8MB 的 RAM,甚至,近期还一直在开发 51 内核。 security 发表于 2020-3-24 14:02
只能说算小众吧。
对多数人来说,并不是最佳选择,看看就好。
好的,多谢指点 zhangle2015 发表于 2020-3-24 16:32
我也在刚刚熟悉,有心得体会再说啊
期待楼主,总结学习过程哈 security 发表于 2020-3-24 16:50
感觉 Nuttx 的路线一直就是 hacker 路线,所以,我也就是看看源码而已,要用的话,是不会用的。 ...
我认为主要是曲高喝寡,学这个RTOS真得要好好吃透点理论不行,要不你连看都看不懂。
我觉得小公司可以用起来,只要有一个两个深刻理解内核得人,其他人只要能编写应用程序就可以了,在这个基础上形成自己小公司得代码库。
希望你能理解我说什么,一个公司不同人搞不同得RTOS,不如统一成一个,选一个强大点得,然后不同能力得人干好自己得事情就可以了,能力强移植新架构写驱动,能力弱可以先开发应用程序。 RTOS太多了,我不玩飞控, 所以就不学这个nuttx 现在RTOS主要看配套的组件。 你们去搞这些高大上的,有51的活可以给我接 zhangle2015 发表于 2020-3-24 17:05
我认为主要是曲高喝寡,学这个RTOS真得要好好吃透点理论不行,要不你连看都看不懂。
我觉得小公司可以用 ...
从技术上讲,是这个道理。
但是从商业角度来考虑,就可能不是这样了,小公司,其实更怕这些小众的,独门秘籍掌握在少数人手里,万一这些少数人删库跑路了,该怎么办。 nade 发表于 2020-3-24 17:10
你们去搞这些高大上的,有51的活可以给我接
51 也分我一点吧。
单片机没有MMU,,不可能有真正的进程吧
另外,,不知道楼主了解过 zephyr 没有,,
Appache基金会的Nuttx VS Linux 基金会的Zephyr,,不知道哪个能赢{:lol:}
XIVN1987 发表于 2020-3-24 17:14
单片机没有MMU,,不可能有真正的进程吧
另外,,不知道楼主了解过 zephyr 没有,,
好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。 RTOS这个吧主要还是生态的问题,毕竟解决不了全部的问题,当出现那些需要关注内核实现的问题的时候,如果不了解内部原理就很麻烦了
比如ChibiOS,在STM32上面的话驱动库都给你搞好了,但是国内用的人还是好少的
security 发表于 2020-3-24 17:11
从技术上讲,是这个道理。
但是从商业角度来考虑,就可能不是这样了,小公司,其实更怕这些小众的,独门 ...
小公司,老板基本就兼职技术人员,内核和库自己来管,这么独特得系统,别人仿制都不容易
去看了下,,驱动是把stm32的外设库完全自己实现了一遍啊,,
考虑到arch目录下这么多的芯片,,全部自己实现一遍外设驱动,,这工作量简直大的吓人啊。。
外国人真有奉献精神,,花这么大的精力做一个免费开源的东西,,
Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。 security 发表于 2020-3-24 17:17
好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。 ...
它支持pthread,但不是和linux里面的一样,应该叫做任务组比较合适,一个主任务创造一堆属于自己的线程,他们共享环境变量、文件描述符(stdin、stdout 、stderr)、文件流、套接字等。MMU有没有没关系,MMU最大的用处是实现 外部程序加载。如果你对上了MMU的嵌入式系统感兴趣,我推荐你使用 另一款牛逼的RTEMS,不过似乎离单片机开发有点距离了,肯定是比较高大上的项目,比如军事装备、航空航天,那些对硬实时要求很高的地方,跑linux有可能找死。
zephyr是物联网新秀,我最近才发现,代码没研究过。 security 发表于 2020-3-24 17:17
好吧,其实我觉得,在 RT-Thread 面前,都将是输家,至少在国内是这样。
踩准风口很重要。 ...
其实对RTOS来说,你最熟悉用到最溜的才是最好的,拿怕只有个调度器。也谈不上输家赢家,输家也有出彩的地方,赢家也未必通吃,不管那款,使着开心就好,别纠结对比。
nuttx在之前只是nutt一个人放出来大家用的,最近几个月到了apache旗下,我觉得背后有人在推,未来有没有风口?鬼知道 atommann 发表于 2020-3-24 17:37
Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。 ...
是吗,有没有资料,分享以下,这跟技术资料一样有价值 atommann 发表于 2020-3-24 17:37
Sony 有些产品里是用 Nuttx,以前看过一个 Sony 的 slides 讲他们为何用它,以及如何用它。 ...
https://www.amobbs.com/thread-5702399-1-1.html?_dsign=96c0bbd8
找到了,就在本论坛 XIVN1987 发表于 2020-3-24 17:36
去看了下,,驱动是把stm32的外设库完全自己实现了一遍啊,,
考虑到arch目录下这么多的芯片,,全部自己 ...
人家是早已解决了温饱问题的嘛。
正所谓温饱思淫欲,大概就是这个道理。
Developing Audio Products with Cortex-M3/NuttX/C++11
Masayuki.Ishikawa@sony.com
来源 https://elinux.org/ELC_2017_Presentations
atommann 发表于 2020-3-24 18:10
Developing Audio Products with Cortex-M3/NuttX/C++11
谢谢啦,多打几个凑字 security 发表于 2020-3-24 18:04
人家是早已解决了温饱问题的嘛。
正所谓温饱思淫欲,大概就是这个道理。 ...
兄弟,帖子太负能量了,开心些,赚钱很很重要,但不是最重要的,我们能在2020年活着已经很不错了,找点自己开心的事情做。 zhangle2015 发表于 2020-3-24 18:16
兄弟,帖子太负能量了,开心些,赚钱很很重要,但不是最重要的,我们能在2020年活着已经很不错了,找点自 ...
好吧,继续码代码。 atommann 发表于 2020-3-24 18:10
Developing Audio Products with Cortex-M3/NuttX/C++11
谢谢分享。 楼主要么刚毕业要么家里不差钱像富豪那样喜欢折腾
工作十几年唯一开心就是赚钱看样子老了 一点个人感悟:学自己用的到东西 哎,我还在用裸机编程 支持一把喜欢折腾的人 在单片机上还没有跑过系统的路过{:sad:}{:sad:},最多的就是用过坛友里面的一个精简版调度器 期待楼主, 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? takashiki 发表于 2020-3-24 20:26
lua要8M SDRAM???
ESP8266才不到200KB SRAM,跑NodeMCU照样跑得很欢。
含编译器和虚拟机,裁剪一些预 ...
500K足可以,8M我只是说说,内存大了可以多搞点事情,另可以自带luac。
下一步移植到zynq上,不想跑linux,太大把控不住。以后FPGA+nuttx+lua做为产品基础,持续性集成,我是做仪器设备的,吉时利2400数字源表用过吗?里面就可以跑lua脚本,编程电压电流,这种就很棒,大大加大了仪器的可控性。
目标不一样,不是占多大内存的问题,不知道为什么都纠结这些。 haffman1 发表于 2020-3-24 19:07
一点个人感悟:学自己用的到东西
这就是我以后用到的东西 zhangle2015 发表于 2020-3-24 20:58
500K足可以,8M我只是说说,内存大了可以多搞点事情,另可以自带luac。
下一步移植到zynq上,不想跑linux ...
仪器设备跑脚本,看起来确实很不错。 这种RTOS是为不会硬件的人准备的。 gliet_su 发表于 2020-3-24 21:52
这种RTOS是为不会硬件的人准备的。
也是也不是,说是应为有些人只要在现成的基础上搞应用开发就可以,说不是,一旦涉及设备驱动,移植,调试等,搞会搞软件的人会懵逼 国内的rt-thread,标准的lua5.3跑起来内存不到50K
stm32f407不扩RAM就能带起来 security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...
也不定啊一些大内存特定片子便宜 至少比f4便宜 在 github 上关注过,我看好多都是用在飞控上,可以猜想其稳定性。不过入门较难,需要的资源的略多,小单片机跑不起来。其实自己编译一个gcc+newlib-nano,定制一下libc也挺好用的。 参考一下elua,跟正常版本的lua最大的区别就是加了一个rotable类型,把一些不需要变化的常量字符串放到了单片机rom里,内存占用量急剧下降,小内存单片机也能跑起来。 很难啃,思维模式不大一样,需要类似linux的开发思维 security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...
技术只是一方面把,楼上的可以直接和老外沟通,可以直接进行全英文的面试,就这个一点已经比很多人要厉害了,当然楼主不是一开始就拥有这样的技能的,也是通过工作和及的努力一点一点积累的 散吧散吧 发表于 2020-3-25 09:29
技术只是一方面把,楼上的可以直接和老外沟通,可以直接进行全英文的面试,就这个一点已经比很多人要厉害 ...
特定的行业,有特定的解决方案,行业不同,收入大不同。
我明白,那个只是调侃一下而已。 {:lol:}不明觉厉! 不谈应用场景的比较都是耍流氓! azeng 发表于 2020-3-25 08:39
在 github 上关注过,我看好多都是用在飞控上,可以猜想其稳定性。不过入门较难,需要的资源的略多,小单片 ...
这个系统还有个特点就是配置性极强,不需要的功能去一下,代码大小小单片机也适用, security 发表于 2020-3-24 13:58
8M 的 SDRAM,
唉,我近几年用过最大 RAM 的规格是 320KB,预感后续还会一路走低,贫穷限制了我的想象力。 ...
试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.
不过要到stm32f4xx的新一点的型号才支持四线SPI、映射到地址空间,用着还能更爽。 tomzbj 发表于 2020-3-25 16:24
试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.
不过要到stm32f4xx的新一点的型号 ...
这个信息收了,谢谢分享! tomzbj 发表于 2020-3-25 16:24
试试SPI SRAM呗, 比如LY68L6400之类, 我在几个项目里用过了, 很不错.
不过要到stm32f4xx的新一点的型号 ...
谢谢推荐,话说这个还没研究过 来晚了,怎么看不到了?
NuttX这个系统有啥优点?相比FreeRTOS而言? 去看看,学习下 价钱是另一个关键 啥时候内部大内存成标配就好了
1M, 2M就够了 怎么就结束了
???
本帖最后由 skystalker 于 2020-3-31 14:36 编辑
黑暗骑士寒心雨 发表于 2020-3-26 11:17
来晚了,怎么看不到了?
NuttX这个系统有啥优点?相比FreeRTOS而言?
优点就是相当复杂,有点脱裤子放屁的意思,适合研究折腾。
做消费电子什么的可以。 security 发表于 2020-3-24 14:05
会操作系统又如何,耍的 666,又如何,
还是没你赚的钱多,会耍没用,赚钱这才是关键。 ...
会赚钱又怎样?你要会写书,而且要写那种别人喜欢看的书,否则钱多了叫为富不仁。{:titter:} {:titter:}
碰到同行,开个玩笑!
页:
[1]