在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

不借助Linux系統,在Windows下如何搭建ZMC900E交叉編譯環境

ZLG致遠電子 ? 2025-05-21 11:34 ? 次閱讀

不需要依賴笨重的虛擬機,也不需要安裝雙系統。拋開繁瑣的環境準備,在Windows上輕松搭建交叉編譯環境。本文將介紹如何在Windows上搭建交叉編譯環境,不借助Linux系統,直接進行交叉編譯。


7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?前言

嵌入式Linux系統,由于系統資源的匱乏,通常無法安裝本地編譯器進行本地開發,而需要在借助一臺主機進行交叉開發。一般情況下,在主機安裝相應的交叉編譯器,將在主機編輯好的程序交叉編譯后,通過一定方式如以太網或者串口將程序下載到目標系統運行,或者進行調試。一般的交叉開發流程如圖1所示。

7b365898-35f4-11f0-8605-92fbcf53809c.png

圖1 嵌入式Linux交叉開發一般流程

ZMC600E/900E開發的一般模型如圖2所示。通常需要一臺PC主機,在其中安裝好各種進行交叉編譯所需要的軟件,通過串口和以太網和目標板相連。在主機上進行程序編輯和編譯,得到的可執行文件通過串口或者以太網下載到ZMC600E/900E中運行或者進行調試。

7b47284e-35f4-11f0-8605-92fbcf53809c.png

圖2 嵌入式Linux交叉開發一般流程通常

常見的交叉編譯環境中,主機會選用Linux系統。如果主機是Windows系統,通常會采用虛擬機的方式運行Linux系統來搭建環境。其實Windows系統中同樣也可以搭建交叉編譯環境,在Windows上就可以開發ZMC600E/900E的程序,接下來將介紹如何實現。
7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?測試環境

1. 遠程設備:ZMC900E主站控制器2. 主機:Win103. IDE: VS Code4. 所需軟件環境:

  • cmake版本3.xx,推薦3.20及以上版本
  • mingw64(主要需要mingw32-make.exe)獲取最新版本s
  • aarch64-linux-gnu(windows)交叉編譯鏈,包括:① 編譯器aarch64-linux-gnu-gcc.exe aarch64-linux-gnu-g++.exe等;② aarch64-linux-gnu.cmake 交叉編譯工具鏈配置文件;③ 可以聯系我們技術支持獲取。

5. VSCode需要的插件:

  • C/C++
  • C/C++ Extension Pack
  • CMake
  • CMake Integration
  • CMake Tools

7b66debe-35f4-11f0-8605-92fbcf53809c.png圖3 VSCode中需要的插件6. 環境變量:

  • 將交叉編譯鏈解壓到D:/aarch64-linux-gnu(或其他容易找到的地方),將D:/aarch64-linux-gnu/bin 加入環境變量。
  • 將CMake和mingw64也加入到環境變量。
  • 重啟使其生效。
7b810604-35f4-11f0-8605-92fbcf53809c.png

圖4 Windows環境變量配置
7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?搭建交叉編譯鏈

本節以hello_world和ecat_io為例子,介紹如何搭建交叉編譯工具鏈,并通過powershell命令行進行交叉編譯。

1. 安裝軟件環境&設置環境變量

根據第1節介紹,在本節需要準備cmake、mingw64、aarch64-linux-gnu(windows)三個工具軟件,并配置環境變量。

2. 準備交叉編譯工具鏈說明文件CMAKE_TOOLCHAIN_FILE

在前述交叉編譯鏈解壓路徑 D:/aarch64-linux-gnu/bin 路徑下新建文件arm-linux-toolchain.cmake,并添加以下內容:

# arm-linux-toolchain.cmakeset(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)
# 設置編譯器路徑set(CROSS_CHAIN_PATH${CMAKE_CURRENT_LIST_DIR})# 根據你的安裝路徑調整交叉編譯工具鏈的位set(CMAKE_C_COMPILER${CROSS_CHAIN_PATH}/aarch64-linux-gnu-gcc.exe)set(CMAKE_CXX_COMPILER${CROSS_CHAIN_PATH}/aarch64-linux-gnu-g++.exe)set(CMAKE_LINKER${CROSS_CHAIN_PATH}/aarch64-linux-gnu-ld.exe)set(CMAKE_AR${CROSS_CHAIN_PATH}/aarch64-linux-gnu-ar.exe)set(CMAKE_RANLIB${CROSS_CHAIN_PATH}/aarch64-linux-gnu-ranlib.exe)

3. hello_world示例

新建文件夾,在文件夾下創建CMakeLists.txt文件,以及main.c源代碼文件。在CMakeLists.txt中寫入以下內容。

cmake_minimum_required(VERSION3.20)project(hello)add_executable(hello main.c)

在main.c中寫入以下內容:

#include
intmain(intargc,char**argv){ printf("Hello world!\n"); return0;}

然后打開powershell,cd至當前目錄,并新建build文件夾,此時當前目錄下會有以下文件:

zmc├── build├── CMakeLists.txt└──main.

接下來在powershell下執行以下指令,進行交叉編譯

cdbuildcmake -G"MinGW Makefiles"-DCMAKE_TOOLCHAIN_FILE="D:\aarch64-linux\bin\aarch64-linux-gnu.cmake"..mingw32-make.exe

其中:

  • cmake的-G “MinGW Makefiles”參數用于指定生成的工程類型,此處指定為MinGW工程。
  • -DCMAKE_TOOLCHAIN_FILE=”D:\aarch64-linux\bin\aarch64-linux-gnu.cmake”,-D參數聲明了一個變量CMAKE_TOOLCHAIN_FILE,該變量用于指定通過cmake生成交叉編譯工程時,交叉編譯工具鏈的配置文件。
  • cmake ..,目前位于build文件夾下,..表示指定上層目錄中../CMakeLists.txt作為cmake生成的參考文件。

完成后將在build目錄下生成一個hello文件,該文件為Linux arm格式的可執行文件,需要上傳到ZMC900E運行,運行效果如下。

7ba211aa-35f4-11f0-8605-92fbcf53809c.png

圖5 測試hello_world

4. ecat_io示例

從“【ZMC900E】在線資料包 examples\zmc.zip”中獲取demo程序,其結構如下:

zmc├── demo│ ├── ecat_io│ │ ├── Makefile│ │ ├── test.c│ │ └── test.xml│ ├── ecat_redundance│ ├── ecat_servo│ ├── esi_update│ ├── foe│ └── master├──include│ └── ecat│ ├── zecm_ex.h│ └── zecm_zh.h└── lib└── libzecm.so

打開demo/ecat_io示例,新建CMakeLists.txt文件,寫入以下內容:

cmake_minimum_required(VERSION 3.10)
project(ecat_io)
include_directories("../../include")link_directories("../../lib")
add_executable(testtest.c)
target_link_options(testPRIVATE -lpthread -lrt -ldl -lstdc++ -lm)target_link_libraries(testzecm)

根據實際測試從站對主站程序test.c做相應修改,具體請參考倍福I/O端子操作示例:https://manual.zlg.cn/web/#/211/11214接下來在powershell下執行以下指令,進行交叉編譯。

cdbuildcmake -G"MinGW Makefiles"-DCMAKE_TOOLCHAIN_FILE="D:\aarch64-linux\bin\aarch64-linux-gnu.cmake"..mingw32-make.exe

完成后將在build目錄下生成一個test文件,該文件為Linux arm格式的可執行文件。需要將test、test.xml、libzecm.so都上傳到ZMC900E運行。
7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?VSCode搭建圖形化交叉編譯環境

1. VSCode配置CMakeTool

此步驟用到的工具鏈:CMake + make(來自mingw64里包含的mingw32-make.exe) + aarch64-linux-gnu + VS Code&插件CMake等。如果失敗需要檢查工具鏈上每一環節是否工作正常。首先,需要先自己寫一個給CMake用的交叉編譯工具鏈配置文件。可以參照第2.2節內容。用VSCode打開項目文件夾,例如前面測試的ecat_io示例。然后按ctrl+shift+P,彈出菜單,輸入CMAKE查找到CMAKE: QUICK START選項:

7bbfee14-35f4-11f0-8605-92fbcf53809c.png

圖6 CMakeTool工具配置Quick Start點擊Add a new preset,然后選擇Toolchain File,然后輸入aarch64(或其他任意)作為配置項名稱。完成后會生成一個CMakePresets.json配置文件。修改其中配置,令其關聯到 mingw32-make.exe + aarch64-linux-gnu。

7bd67e5e-35f4-11f0-8605-92fbcf53809c.png

圖7 配置CMakePresets.json

完成后,保存配置文件,點擊左側工具欄的CMake一欄,找到Delete Cache and Reconfigure,重新生成CMake工程。

7beb96fe-35f4-11f0-8605-92fbcf53809c.png

圖8 生成CMake工程查看下側Output輸出,若無報錯,則表示CMake配置成功。

7c03c44a-35f4-11f0-8605-92fbcf53809c.png

圖9 VSCode Output無報錯輸出

2. VSCode + CMakeTool圖形化編譯

在右側工具欄點擊CMAKE項,切換到圖形化編譯頁面:

7c1e8e6a-35f4-11f0-8605-92fbcf53809c.png

圖10 圖形化編譯界面

7c380c82-35f4-11f0-8605-92fbcf53809c.png是cmake生成Makfile,7c4926ca-35f4-11f0-8605-92fbcf53809c.png是編譯,底部工具欄的7c5c4980-35f4-11f0-8605-92fbcf53809c.png也是編譯。先生成cmake工程,后編譯程序。根據CMakePresets.json配置,輸出路徑為out文件夾,可以找到完成編譯的程序test。此時如果通過linux的file工具查看該程序的格式可以驗證其是arm程序且有debug信息。

7c6f6e20-35f4-11f0-8605-92fbcf53809c.png

圖11 工程目錄結構

cdbuildcmake -G"MinGW Makefiles"-DCMAKE_TOOLCHAIN_FILE="D:\aarch64-linux\bin\aarch64-linux-gnu.cmake"..mingw32-make.ex

將test程序、動態庫libzecm.so、ENI文件上傳到ZMC900E同一目錄下,并給test程序加上x權限。然后就可以執行主站程序了。

#ZMC900E$chmod+xtest$lstest ENI.xml libzecm.so


7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?ZMC900E高性能EtherCAT主站控制器

7c94b95a-35f4-11f0-8605-92fbcf53809c.jpg

圖12ZMC900E高性能EtherCAT主站控制器

ZMC900E是ZLG致遠電子開發的最新一代EtherCAT主站控制器,其核心采用多核異構的應用處理器,內核包括4+1個64位的ArmCortex-A55核,主頻2GHz;3個Cortex-R5F內核,主頻800MHz。同時板載4GB LPDDR4、8GB eMMC以及32KB FRAM。

ZMC900E EtherCAT主站控制器為了滿足不同的自動化應用需求,集成1路專用EtherCAT口、3路通用以太網、1路CANFD、1路RS485、1路TF卡、1路USB3.0 Host、1路HDMI接口、16路Dl數字輸入、16路DO數字輸出等接口,靈活滿足自動化設備應用需求。

ZMC900E 示意圖及接口圖如下所示:

7cc04cf0-35f4-11f0-8605-92fbcf53809c.jpg

圖13ZMC900E接口

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3603

    瀏覽量

    90845
  • Linux系統
    +關注

    關注

    4

    文章

    602

    瀏覽量

    28265
  • 編譯環境
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8627
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux系統交叉編譯工具鏈的安裝方法

    今天主要和大家聊一聊,如何使用Linux系統交叉編譯工具鏈的方法。
    發表于 11-21 09:30 ?3927次閱讀

    ubuntu交叉編譯環境搭建

    內容如下,次步驟可證明交叉工具鏈安裝完成且環境變量設置無誤。圖1 arm-linux-gnueabihf-gcc版本信息2.簡單的例子 編寫一個測試文件,PC機上完成
    發表于 12-26 15:03

    WindowsSTM32單片機eclipse編譯環境搭建

    、eclipse等集成編譯環境ETA321模塊上編寫自己特殊的應用程序。英創公司推薦使用eclipse編譯環境。  由于eclipse軟
    發表于 10-20 13:25

    想要自學搭建嵌入式Linux開發環境搭建的同學有福利了。

    了解了嵌入式開發的基本概念之后,本章主要學習如何搭建嵌入式Linux開發的環境,通過本章的學習,讀者能夠掌握以下內容。掌握嵌入式交叉
    發表于 05-31 22:34

    請問一如何搭建1012的交叉編譯環境

    請問一如何搭建1012的交叉編譯環境,我下載的資料里面的Ubuntu18 的 aarch64-linu
    發表于 01-06 07:52

    嵌入式交叉編譯環境搭建解析

    5.1.1 嵌入式交叉編譯環境搭建 交叉編譯的概念在第4章中已經詳細講述過,
    發表于 10-18 16:44 ?1次下載

    arm-linux交叉編譯環境解析

    的主要原因在于,多數嵌入式目標系統不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉移到高性能的主機中進行。 linux
    發表于 10-31 11:26 ?7次下載

    嵌入式Linux開發環境搭建-(4)安裝交叉編譯工具鏈

    ubuntu16.04.2中,安裝交叉編譯工具鏈ubuntu中進行嵌入式應用程序開發,安裝交叉編譯
    發表于 11-02 11:06 ?18次下載
    嵌入式<b class='flag-5'>Linux</b>開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>-(4)安裝<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>工具鏈

    嵌入式Linux開發環境搭建-3-安裝交叉編譯工具鏈

    嵌入式Linux開發環境搭建-安裝交叉編譯工具鏈1、下載2、解壓3、設置環境變量參考文檔ubun
    發表于 11-02 13:21 ?12次下載
    嵌入式<b class='flag-5'>Linux</b>開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>-3-安裝<b class='flag-5'>交叉</b><b class='flag-5'>編譯</b>工具鏈

    Ai-WB2系列模組linux開發環境搭建教程

    Linux編譯速度比windows快很多,一般推薦優先使用linux
    的頭像 發表于 05-08 15:12 ?1574次閱讀
    Ai-WB2系列模組<b class='flag-5'>linux</b>開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>教程

    Windows搭建OpenHarmony編譯環境

    由于OpenHarmony的編譯工具鏈主要是建立Linux操作系統,如需要編譯OpenHar
    的頭像 發表于 08-09 08:26 ?1999次閱讀
    <b class='flag-5'>Windows</b><b class='flag-5'>搭建</b>OpenHarmony<b class='flag-5'>編譯</b><b class='flag-5'>環境</b>

    3568編譯環境搭建

    主要介紹如何在本地搭建編譯環境編譯rockchipBBuildrootllinuxSDK的源代碼。d當前sdk只支持
    發表于 12-13 11:23 ?18次下載

    ZMC900E 國產EtherCAT主站控制器 — 電源口傳導騷擾整改

    為確保EtherCAT主站控制器工業自動化中的可靠和穩定應用,EMC測試至關重要。本文以ZMC900E電源傳導騷擾整改為例,深入解析EMC原理,助您精準定位問題,避免無效整改。圖1ZMC900E
    的頭像 發表于 03-07 08:23 ?1224次閱讀
    <b class='flag-5'>ZMC900E</b> 國產EtherCAT主站控制器 — 電源口傳導騷擾整改

    ZMC900E控制器之ROS2環境安裝指南

    ZMC900E是致遠電子研發的最新一代高性能EtherCAT控制器,支持ROS2系統,兼備強大功能和實時性,為工業應用帶來新的可能。本文將詳述ROS2特點和安裝,助力用戶機器人上的二次開發
    的頭像 發表于 04-29 08:24 ?883次閱讀
    <b class='flag-5'>ZMC900E</b>控制器之ROS2<b class='flag-5'>環境</b>安裝指南

    如何使用VSCode+gdbserver遠程調試ZMC900E

    。前言嵌入式Linux系統,由于系統資源的匱乏,通常無法安裝本地編譯器進行本地開發,而需要在借助一臺主機進行
    的頭像 發表于 05-22 11:40 ?46次閱讀
    如何使用VSCode+gdbserver遠程調試<b class='flag-5'>ZMC900E</b>
    主站蜘蛛池模板: 中文字幕亚洲一区二区v@在线 | 成人黄色免费看 | 真爽~张开腿~让我插 | 一区二区三区四区视频 | sese国产| 国产精品久久久福利 | 国产一级大片在线观看 | 国产黄视频网站 | zsvdy午夜片| 日本三级最新中文字幕电影 | 免费观看黄视频 | 日本久草网 | 天天做天天爱夜夜想毛片 | 欧美性天堂| 香蕉视频国产在线观看 | 精品四虎免费观看国产高清 | 日本色图在线 | 特黄特色的视频免费播放 | 九九免费久久这里有精品23 | 男人日女人的网站 | 精品卡一卡二 卡四卡视频 精品噜噜噜噜久久久久久久久 | 18videosex欧美69 | 男人天堂bt | 色接久久| a欧美在线 | 亚洲操操操 | 欧美日本不卡 | 好大好硬好爽免费视频 | 免费久久精品国产片香蕉 | 美女又黄又www | 手机国产看片 | 在线天堂中文在线网 | 国产三级精品最新在线 | 色香蕉在线观看 | 免费黄色福利 | 欧美一级在线全免费 | 国产福利在线观看你懂的 | 国产yw.8825.c免费 | 狠婷婷| 五月天免费在线播放 | 欧美久久天天综合香蕉伊 |