13.8 Modbus TCP Server程序開發(fā)
源碼為:
解壓后,源碼為“modbus_server_tcp.c”,它模擬一個(gè)Modbus TCP傳感器。源碼的講解請參考《11.7 Modbus TCP編程與實(shí)驗(yàn)》。
當(dāng)前臺(tái)程序、MQTT程序使用RPC接口讀寫Modbus TCP傳感器時(shí),后臺(tái)程序(控制中心)發(fā)出的Modbus TCP請求將到達(dá)“modbus_server_tcp”。
第14章 系統(tǒng)構(gòu)建
14.1 Yocto系統(tǒng)簡述
14.1.1 Yocto框架介紹
THE YOCTO PROJECT. IT'S NOT AN EMBEDDED LINUX DISTRIBUTION,IT CREATES A CUSTOM ONE FOR YOU.(YOCTO項(xiàng)目:他不是一個(gè)嵌入式Linux發(fā)行版,是一個(gè)專門創(chuàng)建屬于你的自定義系統(tǒng)!)
Yocto項(xiàng)目(YP)是一個(gè)開源協(xié)作項(xiàng)目,可幫助開發(fā)人員創(chuàng)建基于Linux的定制系統(tǒng),無論硬件架構(gòu)如何。該項(xiàng)目提供了一套靈活的工具和空間,全世界的嵌入式開發(fā)人員可以共享技術(shù)、軟件堆棧、配置和最佳實(shí)踐,這些技術(shù)、軟件堆棧、配置和最佳實(shí)踐可用于為嵌入式和物聯(lián)網(wǎng)設(shè)備或任何需要定制Linux操作系統(tǒng)的地方創(chuàng)建定制的Linux映像。
?Poky:Poky有兩個(gè)含義。第一個(gè)含義是用來構(gòu)建Linux的構(gòu)建系統(tǒng),值得注意的該P(yáng)oky僅僅是一個(gè)概念,而非一個(gè)實(shí)體:它包含了BitBake工具、編譯工具鏈、BSP、諸多程序包或?qū)樱梢哉J(rèn)為Poky即是Yocto的本質(zhì);此外Poky還有另外一層意思,使用Poky系統(tǒng)得到的默認(rèn)參考Linux發(fā)行版也叫Poky(當(dāng)然,我們可以對此發(fā)行版隨意命名)。Poky的兩個(gè)含義千萬不能混淆。
?Metadata:元數(shù)據(jù)集,所謂元數(shù)據(jù)集就是發(fā)行版內(nèi)各基本元素的描述與來源。
Recipes:.bb/.bbappend文件,配方文件,描述了從哪獲取軟件源碼,如何配置,如何編譯。bbappend和bb的區(qū)別主要在于bbappend是基于bb的,功能是對相應(yīng)的bb文件作補(bǔ)充和覆蓋,有點(diǎn)類似于“重寫”的概念。
Class:.bbclass文件。
Configuration:.conf文件,即配置文件,我們可以用它來改變構(gòu)建方式。
?Layers:即各種meta-xxx目錄,將Metadata按層進(jìn)行分類,有助于項(xiàng)目的維護(hù)。
?Bitbake:一個(gè)任務(wù)執(zhí)行引擎,用來解析并執(zhí)行Metadata。
?Output:即各種輸出image。
總結(jié):
假如用烹飪一桌酒席來形容構(gòu)建發(fā)行版,則Yocto就是飯店名,Poky就是廚房(以及提供作為參考的菜的搭配套餐),Metadata就是烹飪資源(.bb/.bbappend表示配方/配方上的貼士,.conf表示廚房里的管事的小組長),Layers就是菜譜的分類(如川菜譜、粵菜譜),Bitbake就是廚師,Output就是得到的一桌酒席。
下圖介紹了Yocto POKY參考示例的整個(gè)框架,其中POKY是一個(gè)YoctoProject的參考發(fā)行版。它包含OpenEmbedded構(gòu)建系統(tǒng)(BitBake和OpenEmbedded Core)以及一組meta,可幫助您開始構(gòu)建自己的發(fā)行版。要使用Yocto項(xiàng)目工具,您可以下載Poky并使用它來引導(dǎo)您自己的發(fā)行版。請注意,Poky不包含二進(jìn)制文件。
14.1.2 Yocto構(gòu)建流程
下圖是Yocto-Project項(xiàng)目的一個(gè)完整的構(gòu)建嵌入式工作流,以右上角顏色說明塊來閱讀此圖,分別從各種Metadata元數(shù)據(jù)(系統(tǒng)源碼配置軟件包配置板級包支持等)以及上面黃色區(qū)域是專門的針對于各個(gè)構(gòu)建工程部分所需的源碼獲取,包含了各種協(xié)議下載方式,把下載下來所需的源碼保存起來,之后通過淡藍(lán)色Build System來分別處理不同的源碼和元層軟件包同時(shí)進(jìn)行構(gòu)建,最后輸出不同鏡像以及多種格式軟件包,SDK系統(tǒng)鏡像等。為了方便理解,我這里專門使用紅字和紅色箭頭進(jìn)行簡單說明。
如果您對yocto很感興趣,想深入學(xué)習(xí)使用可以直接訪問官方提供的使用教程(您可復(fù)制下方鏈接至瀏覽器,或掃描二維碼查看),在這個(gè)頁面內(nèi),官方針對于整個(gè)yocto做了非常詳細(xì)的圖文教程,可以參考下圖Manuals手冊下不同章節(jié)后面紅字描述來選擇合適的篇幅進(jìn)行閱讀學(xué)習(xí)。
-
傳感器
+關(guān)注
關(guān)注
2553文章
51505瀏覽量
757167 -
嵌入式
+關(guān)注
關(guān)注
5096文章
19199瀏覽量
308201 -
MODBUS
+關(guān)注
關(guān)注
28文章
1826瀏覽量
77390 -
TCP
+關(guān)注
關(guān)注
8文章
1383瀏覽量
79363
原文標(biāo)題:Modbus TCP Server程序開發(fā)與Yocto系統(tǒng)構(gòu)建——RZ MPU工業(yè)控制教程連載(56)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
飛凌全志T527開發(fā)板modbus移植使用教程
特別著急:modbus i/o server failed to connect to the modbus ethernet slave
Modbus TCP轉(zhuǎn)Modbus RTU的實(shí)現(xiàn)
Modbus庫開發(fā)筆記之九:利用協(xié)議棧開發(fā)Modbus TCP Server應(yīng)用
如何快速實(shí)現(xiàn)Modbus RTU和Modbus TCP協(xié)議轉(zhuǎn)換?
使用Yocto映像構(gòu)建synaptics 4375驅(qū)動(dòng)程序失敗怎么解決?
Zybo board 開發(fā)記錄: 使用Yocto建立系統(tǒng)
利用Yocto構(gòu)建嵌入式Linux教程01--第一個(gè)Yocto項(xiàng)目構(gòu)建
![利用<b class='flag-5'>Yocto</b><b class='flag-5'>構(gòu)建</b>嵌入式Linux教程01--第一個(gè)<b class='flag-5'>Yocto</b>項(xiàng)目<b class='flag-5'>構(gòu)建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式Linux系統(tǒng)移植開發(fā)-(1)基于Yocto構(gòu)建嵌入式u-boot,內(nèi)核,文件系統(tǒng)
![嵌入式Linux<b class='flag-5'>系統(tǒng)</b>移植<b class='flag-5'>開發(fā)</b>-(1)基于<b class='flag-5'>Yocto</b><b class='flag-5'>構(gòu)建</b>嵌入式u-boot,內(nèi)核,文件<b class='flag-5'>系統(tǒng)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于Yocto的openEuler Embedded構(gòu)建實(shí)踐
![基于<b class='flag-5'>Yocto</b>的openEuler Embedded<b class='flag-5'>構(gòu)建</b>實(shí)踐](https://file.elecfans.com/web2/M00/1C/55/poYBAGGLYw6AVsAAAADOI9t9ksw649.jpg)
Yocto三大關(guān)鍵組件及優(yōu)缺點(diǎn)
S7-300/400集成PN口 MODBUS TCP通訊(TIA)
AT32講堂023 | AT32 MCU TCP client與TCP server如何與PC端通信
![AT32講堂023 | AT32 MCU <b class='flag-5'>TCP</b> client與<b class='flag-5'>TCP</b> <b class='flag-5'>server</b>如何與PC端通信](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
【EsDA 應(yīng)用】Modbus RTU Master 轉(zhuǎn) TCP Server
![【EsDA 應(yīng)用】<b class='flag-5'>Modbus</b> RTU Master 轉(zhuǎn) <b class='flag-5'>TCP</b> <b class='flag-5'>Server</b>](https://file1.elecfans.com/web2/M00/8E/5D/wKgZomTE4Z2ARDSWAAABH5UOQQI831.jpg)
淺談S7-300 CPU集成PN口配置的Modbus TCP通訊技術(shù)
![淺談S7-300 CPU集成PN口配置的<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通訊技術(shù)](https://file1.elecfans.com/web2/M00/A8/AC/wKgaomUuOj6AdPtgAABNHnF4nFQ808.png)
評論