0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Linux上位機開發(fā)

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2025-01-08 15:28 ? 次閱讀

第13章 Linux上位機開發(fā)

13.1 功能分析與最終源碼

最終源碼在如下目錄里:

879321c0-cd76-11ef-9310-92fbcf53809c.png

13.1.1 硬件連接

參考《11.5 Modbus RTU客戶端編程與實驗》連接TTL轉(zhuǎn)485模塊,連接Modbus RTU傳感器。在板子上先插上USB鼠標,連接HDMI顯示器,然后啟動開發(fā)板。

13.1.2 運行程序

把網(wǎng)盤中如下可執(zhí)行程序放到板子上,假設放在/mnt目錄下:

87ac29ea-cd76-11ef-9310-92fbcf53809c.png

解壓后,它里面有2個目錄:mnt里存放應用程序,usr目錄下存放庫文件。在板子上執(zhí)行如下命令:

左右滑動查看完整內(nèi)容

# cd /mnt
# tar xjf apps.tar.bz2
# ls
mnt usr
# cd apps
# cp -rfd * /

移除出廠自帶的GUI,在開發(fā)板執(zhí)行如下命令:

左右滑動查看完整內(nèi)容

# mv /etc/systemd/system/myir.service /home/root
# reboot

然后運行如下命令啟動程序:

左右滑動查看完整內(nèi)容

# cd /mnt
# echo 0 > /proc/sys/kernel/printk // 關閉內(nèi)核打印信息
# ./modbus_server_tcp 127.0.0.1 & // 運行模擬 modbus rtu 協(xié)議傳感器的程序
# ./control_center server & // 運行后臺程序
# ./demo_lv_modbus_tool & // 運行前臺程序
# ./mqtt_client_app // 運行 MQTT 程序

執(zhí)行上述命令后,可以在HDMI界面看到操作界面。參考《13.1.4界面》,使用鼠標在控制界面上添加點、設置MQTT信息。然后就可以通過界面觀察、控制傳感器了。

要使用MQTT,需要先學習《13.6 MQTT開發(fā)基礎》:

①在開發(fā)板界面設置MQTT信息

②啟動MQTT Broker

③MQTT客戶端可以如下設置:

87c44cfa-cd76-11ef-9310-92fbcf53809c.png

在MQTT客戶端,訂閱“iot/up”主題的信息。

要控制傳感器,需要在顯示屏控制界面添加“點”,才能發(fā)布“iot/down”主題的信息去控制這個點,信息格式如下(注意大小寫):

左右滑動查看完整內(nèi)容

{"port_info": "/dev/ttySC4,115200,8N1","dev_addr": 3,"reg_addr": 0,"reg_type": "0x",
"value": 0}

13.1.3 從源碼編譯程序

先配置環(huán)境,在Ubuntu執(zhí)行:

左右滑動查看完整內(nèi)容

$ source /opt/remi-sdk/environment-setup-aarch64-poky-linux

1. 編譯libev庫

操作命令如下:

左右滑動查看完整內(nèi)容

$ tar xjf libev.tar.bz2
$ cd libev/
$ ./configure --prefix=$PWD/tmp --host=aarch64-poky-linux CFLAGS="-mtune=cortex-a55
-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-s
ecurity -Werror=format-security --sysroot=/opt/remi-sdk/sysroots/a
arch64-poky-linux"
$ make -j 16
$ make install
$ ls tmp/
include lib share
$ sudo cp -rf tmp/include/* /opt/remi-sdk/sysroots/aarch64-poky-linux/usr/include/
$ sudo cp -rfd tmp/lib/* /opt/remi-sdk/sysroots/aarch64-poky-linux/usr/lib64/

把庫復制到開發(fā)板上,在Ubuntu上執(zhí)行如下命令:

左右滑動查看完整內(nèi)容

$ scp tmp/lib/*so* root@192.168.5.9:/usr/lib64/

2. 編譯jsonrpc庫

操作命令如下:

左右滑動查看完整內(nèi)容

$ tar xjf jsonrpc-c.tar.bz2
$ cd jsonrpc-c/
$ autoreconf -i
$ ./configure --prefix=$PWD/tmp --host=aarch64-poky-linux CFLAGS="-mtune=cortex-a55
-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-s
ecurity -Werror=format-security --sysroot=/opt/remi-sdk/sysroots/a
arch64-poky-linux"
$ make -j 16
$ make install
$ ls tmp/
include lib
$ sudo cp -rf tmp/include/* /opt/remi-sdk/sysroots/aarch64-poky-linux/usr/include/
$ sudo cp -rfd tmp/lib/* /opt/remi-sdk/sysroots/aarch64-poky-linux/usr/lib64/

把庫復制到開發(fā)板上,在Ubuntu上執(zhí)行如下命令:

左右滑動查看完整內(nèi)容

$ scp tmp/lib/*so* root@192.168.5.9:/usr/lib64/

3. 編譯libmodbus庫

參考《11.4.1 編譯安裝》。

4. 編譯MQTT庫

參考《13.6.5 MQTT測試程序上機實驗》。

5. 編譯LVGL程序

操作命令如下:

左右滑動查看完整內(nèi)容

$ tar xjf demo_lv_modbus_tool.tar.bz2
$ cd demo_lv_modbus_tool/
$ mkdir build
$ cd build
$ cmake ..
$ make -j 16
$ ls ../bin/
demo_lv_modbus_tool

6. 編譯后臺程序

操作命令如下:

$ tar xzf control_center.tar.bz2
$ cd control_center
$ make

生成“control_center”可執(zhí)行程序。

7. 編譯MQTT程序

操作命令如下:

$ tar xjf mqtt_client.tar.bz2
$ cd mqtt_client
$ make

生成“mqtt_client_app”可執(zhí)行程序。

8. 編譯Modbus TCP程序

操作命令如下:

左右滑動查看完整內(nèi)容

$ tar xjf modbus_client.tar.bz2
$ cd modbus_client
$ make

生成“modbus_server_tcp”可執(zhí)行程序。

13.1.4 界面

在前臺程序,可以增加、修改、刪除“點”(“點”是工業(yè)控制領域的概念,參考《13.2.2前后臺的交互》)??梢宰x取“點”、寫“點”。還可以設置MQTT參數(shù)、升級某個傳感器程序。

1. 整體界面

運行程序后,會根據(jù)“/etc/control.cfg”生成界面。第1次運行程序是沒有“/etc/control.cfg”文件,你在屏幕上看到的是空白界面。如果“/etc/control.cfg”內(nèi)容如下:

左右滑動查看完整內(nèi)容

{"port_info": "/dev/ttySC4,115200,8N1", "dev_addr": 3, "reg_addr": 0, "reg_type": "0x
", "period": 300}
{"port_info": "/dev/ttySC4,115200,8N1", "dev_addr": 3, "reg_addr": 1, "reg_type": "3x
", "period": 300}
{"port_info": "/dev/ttySC4,115200,8N1", "dev_addr": 3, "reg_addr": 0, "reg_type": "3x
", "period": 300}
{"broker": "192.168.5.10", "port": 1883, "client_id": "dev_019999", "user": "100ask99
", "password": "100asktech99", "publish": "/iot/up", "subcribe": "
/iot/down"}

則可以看到如下界面:

87dfdaa6-cd76-11ef-9310-92fbcf53809c.png

2. 添加/設置點位

點擊右上角的加號,可以添加一個“點位”,界面如下(可以選擇使用RTU協(xié)議或TCP協(xié)議,可以設置讀取周期,可以設置設備地址、寄存器地址、寄存器類別):

88015078-cd76-11ef-9310-92fbcf53809c.png

3. MQTT設置界面

點擊“MQTT Setting”后,設置界面如下:

882acf84-cd76-11ef-9310-92fbcf53809c.png

3. 升級傳感器

點擊“Update”后,界面如下:

88473e26-cd76-11ef-9310-92fbcf53809c.png

本界面僅供演示,并未實現(xiàn)升級功能:因為傳感器如何升級,取決于傳感器內(nèi)部實現(xiàn),我們無法得知升級方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2552

    文章

    51220

    瀏覽量

    754628
  • Linux
    +關注

    關注

    87

    文章

    11320

    瀏覽量

    209839
  • 源碼
    +關注

    關注

    8

    文章

    646

    瀏覽量

    29281
  • 上位機
    +關注

    關注

    27

    文章

    944

    瀏覽量

    54883

原文標題:Linux上位機開發(fā) - RZ MPU工業(yè)控制教程連載(47)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    linux環(huán)境下使用QT開發(fā)上位控制CH9326的io口,代碼編譯不通過是為啥呢?

    本人最近遇到了這個問題。根據(jù)官方文檔中的步驟來進行Linux上位開發(fā),代碼編譯不通過提示【undefined reference to ch9326_find()】還有就是在使用鏈
    發(fā)表于 07-11 07:03

    上位應用開發(fā)與綜合實訓(上)

    上位應用開發(fā)與綜合實訓(上)
    發(fā)表于 09-28 10:03 ?0次下載

    上位應用開發(fā)與綜合實訓(下)

    上位應用開發(fā)與綜合實訓(下)
    發(fā)表于 09-28 10:05 ?0次下載

    linux的驅(qū)動開發(fā)——基于linux的單片開發(fā)簡介

    1.基于linux的單片開發(fā)和裸機開發(fā)的區(qū)別\qquad單片的裸機開發(fā)和基于
    發(fā)表于 11-13 11:21 ?7次下載
    <b class='flag-5'>linux</b>的驅(qū)動<b class='flag-5'>開發(fā)</b>——基于<b class='flag-5'>linux</b>的單片<b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>簡介

    納米軟件分享:上位軟件是什么?快速上手上位開發(fā)軟件分享

    上位軟件在測試測量行業(yè)應用十分廣泛,但對于很多新人來說上位軟件是什么,他們可能不甚了解。今天就和大家來聊一聊上位
    的頭像 發(fā)表于 11-28 17:03 ?4339次閱讀
    納米軟件分享:<b class='flag-5'>上位</b><b class='flag-5'>機</b>軟件是什么?快速上手<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>軟件分享

    上位軟件開發(fā)流程是怎樣的?上位開發(fā)軟件分享

    隨著科技的發(fā)展,上位軟件開發(fā)已經(jīng)成為當今社會的一個重要組成部分。上位軟件開發(fā)是一種技術,它可
    的頭像 發(fā)表于 03-28 16:20 ?3064次閱讀
    <b class='flag-5'>上位</b><b class='flag-5'>機</b>軟件<b class='flag-5'>開發(fā)</b>流程是怎樣的?<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>軟件分享

    上位開發(fā)新手指南(二)上位通信

    上位開發(fā)中,串口通信和TCP通信是兩種常見的通信方式。串口通信是指通過串口將數(shù)據(jù)發(fā)送和接收到控制器或其他外設中,TCP通信則是通過網(wǎng)絡將 數(shù)據(jù)傳輸?shù)竭h程設備中。下面介紹一下為什么學習串口通信和TCP通信在
    發(fā)表于 05-08 11:37 ?8次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>新手指南(二)<b class='flag-5'>上位</b><b class='flag-5'>機</b>通信

    上位和下位有什么區(qū)別 常用上位軟件開發(fā)工具介紹

    上位和下位分別指的是什么呢?又有哪些區(qū)別呢?以及上位和下位之間的關系又是怎樣的呢?常用的
    發(fā)表于 05-08 10:21 ?0次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b>和下位<b class='flag-5'>機</b>有什么區(qū)別 常用<b class='flag-5'>上位</b><b class='flag-5'>機</b>軟件<b class='flag-5'>開發(fā)</b>工具介紹

    VS上位開發(fā)之曲線顯示

    VS上位開發(fā)——曲線顯示目錄VS上位開發(fā)——曲線顯示 一、新建項目 二、添加ZedGraph
    發(fā)表于 05-08 09:48 ?2次下載
    VS<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>之曲線顯示

    上位開發(fā)要學什么 上位開發(fā)是做什么的

    上位開發(fā)需要學習以下技術:   編程語言:常用的編程語言包括C/C++、Python、Java等,不同的編程語言適用于不同的應用場景。在工控行業(yè)中,C/C++是主流語言,精通C/C++語言
    的頭像 發(fā)表于 05-08 15:18 ?1.2w次閱讀

    上位開發(fā)是什么意思 上位開發(fā)工作主要內(nèi)容

    上位開發(fā)是為了實現(xiàn)工控設備的控制、實時數(shù)據(jù)采集和處理等功能,使用計算機、各種傳感器和執(zhí)行器等智能設備,開發(fā)出一套可靠、高效的自動化控制系統(tǒng)。通常
    的頭像 發(fā)表于 05-08 15:20 ?1.5w次閱讀

    上位軟件定制開發(fā)如何選擇服務商

    的執(zhí)行。 上位的硬件一般是工業(yè)電腦或者叫工控上位機上運行的操作系統(tǒng)一般可以是Windows、WinCE、linux等,根據(jù)不同的性能
    發(fā)表于 05-09 10:02 ?0次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b>軟件定制<b class='flag-5'>開發(fā)</b>如何選擇服務商

    上位和FPGA開發(fā)板--串口通信實驗

    首先,上位發(fā)送數(shù)據(jù)給FPGA開發(fā)板;然后,F(xiàn)PGA開發(fā)板收到數(shù)據(jù),再回發(fā)給上位。
    發(fā)表于 05-11 18:26 ?12次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b>和FPGA<b class='flag-5'>開發(fā)</b>板--串口通信實驗

    上位軟件開發(fā)培訓

    上位開發(fā)要學什么 上位開發(fā)主要是指針對某個硬件或設備,使用軟件
    發(fā)表于 06-05 09:58 ?1725次閱讀

    上位軟件開發(fā)用什么語言

    上位軟件開發(fā)是指開發(fā)用于與下位(如PLC、單片等)進行通信、控制和數(shù)據(jù)處理的計算機軟件。
    的頭像 發(fā)表于 06-06 10:44 ?1974次閱讀