物联网操作系统HelloX V1.77发布
经过近半年的努力,物联网操作系统HelloX V1.77版本正式完成,源代码已上载到github(github.com/hellox-project/HelloX_STM32)。这个版本主要支持下列特性:
1. 定制化扩展,通过宏定义,能够把内核裁剪到20K以下,以适应低配置硬件需要。同时如果把所有的功能特性都加上,则尺寸可以达到500K左右,以适应复杂功能硬件需求;
2. 支持完整的TCP/IP协议栈,移植了业界通用可靠的lwIP协议栈,并针对HelloX的架构,做了调整,同时优化了lwIP的一些bug(比如大流量分片下的bug);
3. 增加以太网管理框架(framework),以适配各种各样的以太网设备。当前已移植基于Marvel 8686的WLAN驱动和基于ENC28J60的以太网驱动,能够很好的挂接到以太网管理框架下;
4. 还做了其它很多方面的改进,比如增加了网络诊断命令(network),优化了shell,增加了历史命令等功能,简化了操作。
其中Tywind huang优化了shell功能,移植了ENC28J60驱动代码,并做了其它一些测试或优化工作。Erwin wang在整体架构上提出了一些优化建议,并贡献了部分代码,已整合到版本里面。
做了如下一些测试,表现还比较令人满意:
1. 自动获取IP地址后,连续ping缺省网关24小时,系统状态一直正常,无内存泄漏等问题。但是在WLAN环境下,偶尔有丢包;
2. 在Tywind通过有线以太网做的测试中,则不存在丢包现象;
3. 在USB串口的板子上,偶尔出现串口吊死问题,但是内核正常运行(可以ping通)。可能是由于USB串口与以太网的硬件设计问题。在非USB串口的板子上,则不存在这个问题;
4. 做过其它一些性能方面的测试,比如通过串口(非USB串口)连续批量输出,多个窗口同时ping等,都表现正常;
5. 在通过多个窗口,连续ping大包(超过1500字节)的时候,会引发异常。后来确定是由于lwIP协议栈bug导致,修改后解决。
下面是一些屏幕截图:
pingGoogle服务器
Erwin做的GUI demo
欢迎朋友们下载试用。
后续继续开发方向:
1. 依托HelloX V1.77版本,做面向物联网应用的示范硬件。比如网络摄像头,无线智能开关,物联网家庭网关等;
2. 开发一个与之配合的后台系统,对终端进行管理;
3. 针对物联网,做进一步的架构方面的调整。这是最本质的工作,个人始终认为,必须要有一种突破传统操作系统的模式出现,才有可能激发出物联网本身的活力。具体这种模式是什么,个人认为应该是“柔性和统一”。希望在下一个版本中,能够体现出这种特征。
HelloX物联网操作系统开源社区正在筹建,并取得了一些社会团体和企业的支持,欢迎有志于物联网和系统软件开发的人士加入。具体的细节,欢迎加入QQ群讨论:38467832