<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 米爾瑞米派Remi Pi實時系統(tǒng)與Ethercat移植

          米爾瑞米派Remi Pi實時系統(tǒng)與Ethercat移植

          —— 應(yīng)用筆記
          作者: 時間:2024-04-26 來源:EEPW 收藏


          本文引用地址:http://www.ex-cimer.com/article/202404/458154.htm

          1.概述

          采用作為核心處理器,該處理器搭載雙核Cortex-A55@1.2GHz+Cortex-M33@200MHz處理器,其內(nèi)部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和視頻處理單元(支持H.264硬件編解碼),16位的DDR4-1600 / DDR3L-1333內(nèi)存控制器、千兆以太網(wǎng)控制器、USB、CAN、SD卡、MIPI-CSI等外設(shè)接口,在工業(yè)、醫(yī)療、電力等行業(yè)都得到廣泛的應(yīng)用。

          ■   在開發(fā)階段,建議配合核心板配套的評估套件 MYD-YG2L23-8E1D-120-C-REMI來加速開發(fā)。

          2.實時內(nèi)核設(shè)計

          ●   實時補丁我們選擇RT-Preempt來實現(xiàn)

          2.1.移植補丁

          RT補丁可以從RT官網(wǎng)下載5.10.83對應(yīng)的補丁

          image.png

          ●   把補丁放到自己的工作目錄下,然后解壓,如圖2-1:

          hjx@myir-server:~/renesas/04_Sources$ tar -xvf patches-5.10.83-rt58.tar.gz

          1714132428244647.png

          圖2-1.內(nèi)核源碼解壓

          ●   進入到內(nèi)核源碼打補丁,如圖2-2:

          hjx@myir-server:~/renesas/04_Sources/myir-renesas-linux$ for p in `ls -1 ../patches/*.patch`; do patch -p1 < $p; done

          1714132449737086.png

          圖2-2.打?qū)崟r補丁

          ●   編譯內(nèi)核源碼

          hjx@myir-server:~/renesas/04_Sources/myir-renesas-linux$ /opt/remi-sdk/environment-setup-aarch64-poky-linux

          hjx@myir-server:~/renesas/04_Sources/myir-renesas-linux$ make ARCH=arm64 mys_g2lx_defconfig

          hjx@myir-server:~/renesas/04_Sources/myir-renesas-linux$ make ARCH=arm64 Image dtbs   -j16

          更新編譯得到的Image即可

          2.2.其他影響性能的配置

          禁用CPU Freq自動調(diào)頻,并設(shè)置主頻為最高頻率:

          cd /sys/devices/system/cpu/cpufreq/policy0

          echo userspace > scaling_governor

          cat scaling_max_freq  > scaling_setspeed

          (如不禁用cpufreq調(diào)頻功能,系統(tǒng)會因動態(tài)調(diào)頻產(chǎn)生極大的偶然延遲)

          3.實時性測試

          ●   空載測試

          cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n

          1714132482572398.png

          圖3-1.空載測試

          ●   CPU&內(nèi)存滿載

          cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n

          ●   增加壓力

          stress-ng --cpu 4 --cpu-method all --io 4 --vm 50 -d 5  --fork 4 --timeout 36000s

          1714132499638310.png

          圖3-2.滿載測試

          數(shù)據(jù)對比:

          表4-1.數(shù)據(jù)信息

          image.png

          4. ethercat IGH移植

          4.1. 下載ethercat IGH源碼

          到官網(wǎng)下載1.5版本的ethercat源碼,如圖4-1:

          1714132522245528.png

          圖4-1.下載源碼

          ●   解壓ethercat源碼

          hjx@myir-server:~/renesas/04_Sources$ tar -xvf ethercat-stable-1.5.tar.bz2

          hjx@myir-server:~/renesas/04_Sources$ cd ethercat-stable-1.5

          ●   加載sdk環(huán)境變量

          hjx@myir-server:~/renesas/04_Sources/myir-renesas-linux$ source /opt/remi-sdk/environment-setup-aarch64-poky-linux

          4.2. 編譯ethercat源碼

          ●   生成configure文件

          1714132697169015.png

          4.3.啟動EtherCAT

          4.3.1.配置主站的MAC地址

          root@myir-remi-1g:~# depmod

          root@myir-remi-1g:~# modprobe ec_master main_devices=1E:ED:19:27:1A:B3

          4.3.2. 啟動ethercat

          root@myir-remi-1g:~# /etc/init.d/ethercat start

          Starting EtherCAT master 1.5.2  done

          至此所有步驟完成。

          瑞薩第一款MPU生態(tài)板卡,兼容樹莓派擴展模塊

          采用工業(yè)級處理器,便于企業(yè)客戶產(chǎn)品開發(fā);

          兼容樹莓派所有配件,方便產(chǎn)品原型搭建和創(chuàng)新應(yīng)用;

          更多的工業(yè)接口,兼顧開發(fā)、學(xué)習(xí)和實際應(yīng)用;

          軟件系統(tǒng)豐富,支持Debian/Ubuntu/Linux等。

          1714132735151894.png



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();