物聯網操作系統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