日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 新品快遞 > 如何移植EtherCAT Igh 基于米爾RK3576開發(fā)板

          如何移植EtherCAT Igh 基于米爾RK3576開發(fā)板

          作者: 時間:2025-09-26 來源:EEPW 收藏

          本文將介紹基于米爾電子MYD-LR3576開發(fā)板(米爾基于瑞芯微 RK3576開發(fā)板)的板端移植 Igh方案的開發(fā)測試。

          摘自優(yōu)秀創(chuàng)作者-EPTmachine

          1758880976153594.png

          米爾基于瑞芯微RK3576開發(fā)板

          IgH需要保證高實時性,Preempt-RT是一種針對實時性能進(jìn)行了優(yōu)化的Linux內(nèi)核。與普通的Linux內(nèi)核相比,Preempt-RT具有以下優(yōu)勢:

          1.實時性能:Preempt-RT提供了更可靠和更精確的實時性能。它采用了一些實時調(diào)度策略和機(jī)制,使得任務(wù)能夠按照嚴(yán)格的時間要求執(zhí)行,從而適用于需要高度可預(yù)測性和低延遲的應(yīng)用場景,如工業(yè)自動化、機(jī)器人控制等。

          2.硬實時能力:Preempt-RT具有硬實時能力,即能夠確保任務(wù)在規(guī)定的時間內(nèi)完成,而不會受到其他任務(wù)或中斷的干擾。這對于需要嚴(yán)格的時間限制的應(yīng)用非常重要,如航空航天、醫(yī)療設(shè)備等領(lǐng)域。

          3.任務(wù)調(diào)度:Preempt-RT使用了更加高效和優(yōu)化的任務(wù)調(diào)度算法,如基于優(yōu)先級的實時調(diào)度算法,以確保高優(yōu)先級任務(wù)能夠及時響應(yīng)并完成,而低優(yōu)先級任務(wù)不會影響到實時任務(wù)的執(zhí)行。

          4.中斷處理:Preempt-RT針對中斷處理進(jìn)行了優(yōu)化,使得中斷的響應(yīng)時間更短,能夠更快地響應(yīng)外部事件。

          5.內(nèi)核定時器:Preempt-RT提供了更精確和可配置的內(nèi)核定時器,使得可以實現(xiàn)微秒級的定時精度,適用于對時間要求極高的應(yīng)用場景。

          6. 實時擴(kuò)展:Preempt-RT提供了一些實時擴(kuò)展機(jī)制,使得用戶能夠方便地對內(nèi)核進(jìn)行定制和擴(kuò)展,以滿足特定應(yīng)用的需求??偟膩碚f,Preempt-RT在實時性能、可靠性和精度方面比普通的Linux內(nèi)核更加優(yōu)秀,因此在對實時性能要求較高的應(yīng)用場景中被廣泛使用。瑞芯微提供配套SDK的Preempt-RT補丁。

          1、Linux PREEMPT_RT補丁

          Linux Kernel應(yīng)用補丁的指令格式如下

          patch -p1 < path/to/patch-x.y.z

          Rockchip SDK中的doc/Real-Time-Performance目錄下有相關(guān)的實時內(nèi)核補丁。

          1758881011910763.png

          MYD3576使用的內(nèi)核版本為6.1.75,將文件夾中的Kernel-6.1下的補丁應(yīng)用到內(nèi)核配置中。

          cd /path/to/kernel-6.1/

          patch中存在重定義問題

          1758881042311093.png

          ●   serial8250_set_IER(struct uart_8250_port      *up,int ier) 函數(shù)重定義

          ●   serial8250_console_write_atomic()函數(shù)重定義

          ●   serial8250_console_putchar_locked(struct      uart_port *port,unsigned char ch) 函數(shù)重定義

          ●   serial8250_console_write_atomic*() 函數(shù)重定義

          ●   serial8250_console_setup 中 變量up重定義

          修改以上幾處的代碼,注釋掉其中和補丁patch添加的代碼中不同的部分,避免編譯過程中報錯。

          make -C /path/to/SDK/kernel/ -j9 CROSS_COMPILE=/path/to/SDK/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rockchip_linux_defconfig rk3576.config rockchip_linux_docker.config rockchip_rt.config

          指令中/path/to/SDK為SDK的安裝路徑。

          2、 IGH編譯和安裝

          1758881063219657.png

          下載的代碼壓縮包為ethercat-stable-1.6.xxxx,根據(jù)壓縮包文件類型,將其解壓得到ethercat igh的源代碼。

          參考官方使用手冊《ethercat-doc.pdf》對源代碼進(jìn)行配置

          ./configure --prefix=$PWD/output --with-linux-dir=$MYD3576_ENV/kernel-6.1 --enable-generic=yes --host=aarch64-buildroot-linux

          命令行中$PWD為當(dāng)前文件夾,$MYD3576_ENV為米爾SDK的安裝位置,--host參數(shù)根據(jù)使用的工具鏈的編譯器前綴進(jìn)行調(diào)整。

          導(dǎo)入Buildroot工具鏈的環(huán)境配置腳本

          source $MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setup

          將該腳本以系統(tǒng)變量的形式存儲起來,便于導(dǎo)入

          export MYD3576_BUILDROOT=$MYD3576_ENV/buildroot/output/rockchip_rk3576/host/environment-setupsource $MYD3576_BUILDROOT

          執(zhí)行以下指令完成代碼、模塊的編譯和輸出

          make
          make modulessudo
          make install

          首先安裝編譯結(jié)果的ec_generic.ko(位于devices文件夾中)和ec_master.ko(位于master文件夾中)模塊,執(zhí)行下列指令查看內(nèi)核的版本信息。

          uname -s -r -vLinux 6.1.75-rt16 #1 SMP PREEMPT Mon May 26 20:57:18 CST 2025

          在開發(fā)板的/lib/modules目錄中創(chuàng)建內(nèi)核版本文件,用于存放ec_generic.ko和ec_master.ko模塊。

          mkdir -p /lib/modules/6.1.75-rt16

          output目錄中包含運行可執(zhí)行的二進(jìn)制文件、庫文件等,將其發(fā)送到開發(fā)板上即可。需要傳輸?shù)奈募ㄒ韵聨醉?/p>

          /sbin/ethercatctl
          /lib/*
          /etc/*
          /bin/*

          修改/sbin/ethercatctl中的指向/bin/ethercat的文件路徑變量。修改/etc/init.d/ethercat中指向/sbin/ethercatctl和/etc/sysconfig/ethercat的文件路徑變量。

          修改/etc/ethercat.conf中EtherCAT Master的MAC地址

          完成上述配置,執(zhí)行/etc/init.d/ethercat start

          1758881099700714.png


          評論


          相關(guān)推薦

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

          關(guān)閉