日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

物联网操作系统Hello China V1.76(PC串口版)版本发布

發布時間:2025/3/15 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 物联网操作系统Hello China V1.76(PC串口版)版本发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為向ARM平臺移植的基線版本,經過三個多月的努力,Hello China V1.76終于完成并發布。相對原來發布的V1.75版本,該版本主要做了如下修改:

徹底去掉了原來版本源代碼中的C++特性,采用純C語言實現

V1.75以前的版本,不論是內核還是GUI/網絡等外圍模塊,都是采用C++語言編寫的。雖然僅僅使用了諸如函數名重載/自定義對象類型等初級特性,但是在遷移到其它非VC開發環境的時候,發現還是困難重重。于是在V1.76版本的實現中,全部去掉了C++特性,完全采用純C語言實現。

這樣修改之后,順利移植到MDK/GCC等開發環境上。由此也事實上證明,用C++語言實現操作系統的內核,還是有難度的。

增加了串口驅動程序及內置的基于串口的shell

原來版本雖然也具備串口通信功能,但串口驅動并未納入Hello China的驅動程序框架。在V1.76內核的實現中,把串口作為基礎的調試接口,為之編寫了完整的驅動程序,并納入統一的驅動程序框架。這樣,一臺運行Hello China的計算機,就無需有物理屏幕和鍵盤了,可以由另外一臺計算機通過串口進行操作。比如,在我的老舊的DELL電腦上運行Hello China,在另一臺上網本上運行超級終端,就可操作DELL計算機了。前提是,使用交叉串口線,把DELL計算機和上網本連接起來,同時設置串口波特率為9600,無奇偶校驗,8位數據位,一個停止位,即最常用的串口默認設置。由于Hello China V1.76版尚未加入USB驅動程序,因此必須具備物理串口。

下圖是運行Hello China V1.75的DELL筆記本,當然,如果有屏幕和鍵盤,也可直接通過計算機自己的鍵盤來操作Hello China。

?

下圖是運行在另外一臺筆記本電腦上的超級終端軟件。絕大部分通過物理鍵盤和顯示器能夠完成的操作,通過超級終端都能完成。一些超級終端無法支持的按鍵輸入,比如“CTRL + ALT + DELETE”,就無法處理了。

統一了設備訪問接口

應用程序可通過訪問文件的接口,來訪問任何驅動程序。比如,用戶可以采用下列代碼來直接訪問串口設備:

?

???????? #defineTARGET_FILE_NAME “\\\\.\\COM1”

hCom1 = IOManager.CreateFile(

?????????????????? (__COMMON_OBJECT*)&IOManager,

?????????????????? TARGET_FILE_NAME,

?????????????????? 0,

?????????????????? 0,

?????????????????? NULL);

???????? if(NULL== hCom1)

???????? {

?????????????????? PrintLine("ComDebug: Can not open COM1 interface.");

?????????????????? goto__TERMINAL;

???????? }

???????? else

???????? {

?????????????????? PrintLine("ComDebug:Open COM1 interface successfully.");

?????????????????? if(IOManager.WriteFile((__COMMON_OBJECT*)&IOManager,

??????????????????????????? hCom1,

??????????????????????????? strlen(pData),

??????????????????????????? pData,

??????????????????????????? &dwWriteSize))

?????????????????? {

??????????????????????????? PrintLine("Writedata to COM1 interface successfully.");

?????????????????? }

?????????????????? else

?????????????????? {

??????????????????????????? PrintLine("Cannot write data to COM1 interface.");

?????????????????? }

?????????????????? PrintLine("ComDebug:Try to read data from COM interface...");

?????????????????? if(!IOManager.ReadFile((__COMMON_OBJECT*)&IOManager,

??????????????????????????? hCom1,

??????????????????????????? 1,

??????????????????????????? (LPVOID)&buff[0],

??????????????????????????? NULL))

?????????????????? {

??????????????????????????? PrintLine("Cannot read COM interface.");

?????????????????? }

?????????????????? else

?????????????????? {

??????????????????????????? PrintLine("ReadCOM interface sucessfully.");

?????????????????? }

???????? }

?

訪問串口的代碼與訪問普通文件的代碼一樣。只要把上述代碼中的文件名,修改為一個普通文件,上述代碼就完成了普通文件的讀寫功能。

?

定義了統一的消息輸入框架

不論是鍵盤輸入,還是通過串口的輸入,甚至是其它具備主動輸入能力的輸入,都被統一處理,遵循統一的消息傳遞路徑,把消息傳遞給應用程序或shell。這樣的好處是,不論我的操作方式是什么,是串口也好,是鍵盤和鼠標也好,甚至是基于網絡的telnet,應用程序統統不用關心,只要統一調用GetMessage來處理消息隊列中的消息即可。這樣就最大程度的保證了應用程序的可移植性。

?

其他一些改進

除此之外,還做了一些其它的修改和改進,比如代碼的規范性,注釋,修改了幾個導致內存泄漏的地方,進一步優化了程序框架,使得整個內核可配置可裁剪,等等。

?

V1.76版已成功移植到MDK編譯開發環境,順利通過編譯鏈接。但由于目標硬件尚未定義好,故尚未完成移植。接下來的工作將分兩步進行(同步):

第一步:增加GPRS/3G等無線網絡支持功能和Zigbee通信功能,基于PC構筑一個智能家居控制系統;

第二步:啟動向STM32平臺上的移植。

V1.76版的內核源代碼(其他模塊,比如GUI等,無變化),可從下列鏈接下載:

http://download.csdn.net/detail/hellochina15/6399069


轉載于:https://www.cnblogs.com/fengju/p/6174206.html

總結

以上是生活随笔為你收集整理的物联网操作系统Hello China V1.76(PC串口版)版本发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。