一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

不借助Linux系統(tǒng),在Windows下如何搭建ZMC900E交叉編譯環(huán)境

ZLG致遠(yuǎn)電子 ? 2025-05-21 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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


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

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

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

圖1 嵌入式Linux交叉開發(fā)一般流程

ZMC600E/900E開發(fā)的一般模型如圖2所示。通常需要一臺PC主機(jī),在其中安裝好各種進(jìn)行交叉編譯所需要的軟件,通過串口和以太網(wǎng)和目標(biāo)板相連。在主機(jī)上進(jìn)行程序編輯和編譯,得到的可執(zhí)行文件通過串口或者以太網(wǎng)下載到ZMC600E/900E中運(yùn)行或者進(jìn)行調(diào)試。

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

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

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

1. 遠(yuǎn)程設(shè)備:ZMC900E主站控制器2. 主機(jī):Win103. IDE: VS Code4. 所需軟件環(huán)境:

  • 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 交叉編譯工具鏈配置文件;③ 可以聯(lián)系我們技術(shù)支持獲取。

5. VSCode需要的插件:

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

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

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

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

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

1. 安裝軟件環(huán)境&設(shè)置環(huán)境變量

根據(jù)第1節(jié)介紹,在本節(jié)需要準(zhǔn)備cmake、mingw64、aarch64-linux-gnu(windows)三個(gè)工具軟件,并配置環(huán)境變量。

2. 準(zhǔn)備交叉編譯工具鏈說明文件CMAKE_TOOLCHAIN_FILE

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

# arm-linux-toolchain.cmakeset(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)
# 設(shè)置編譯器路徑set(CROSS_CHAIN_PATH${CMAKE_CURRENT_LIST_DIR})# 根據(jù)你的安裝路徑調(diào)整交叉編譯工具鏈的位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示例

新建文件夾,在文件夾下創(chuàng)建CMakeLists.txt文件,以及main.c源代碼文件。在CMakeLists.txt中寫入以下內(nèi)容。

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

在main.c中寫入以下內(nèi)容:

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

然后打開powershell,cd至當(dāng)前目錄,并新建build文件夾,此時(shí)當(dāng)前目錄下會有以下文件:

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

接下來在powershell下執(zhí)行以下指令,進(jìn)行交叉編譯

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

其中:

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

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

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

圖5 測試hello_world

4. ecat_io示例

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

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文件,寫入以下內(nèi)容:

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)

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

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

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

1. VSCode配置CMakeTool

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

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

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

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

圖7 配置CMakePresets.json

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

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

圖8 生成CMake工程查看下側(cè)Output輸出,若無報(bào)錯(cuò),則表示CMake配置成功。

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

圖9 VSCode Output無報(bào)錯(cuò)輸出

2. VSCode + CMakeTool圖形化編譯

在右側(cè)工具欄點(diǎn)擊CMAKE項(xiàng),切換到圖形化編譯頁面:

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工程,后編譯程序。根據(jù)CMakePresets.json配置,輸出路徑為out文件夾,可以找到完成編譯的程序test。此時(shí)如果通過linux的file工具查看該程序的格式可以驗(yàn)證其是arm程序且有debug信息。

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

圖11 工程目錄結(jié)構(gòu)

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

將test程序、動(dòng)態(tài)庫libzecm.so、ENI文件上傳到ZMC900E同一目錄下,并給test程序加上x權(quán)限。然后就可以執(zhí)行主站程序了。

#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致遠(yuǎn)電子開發(fā)的最新一代EtherCAT主站控制器,其核心采用多核異構(gòu)的應(yīng)用處理器,內(nèi)核包括4+1個(gè)64位的ArmCortex-A55核,主頻2GHz;3個(gè)Cortex-R5F內(nèi)核,主頻800MHz。同時(shí)板載4GB LPDDR4、8GB eMMC以及32KB FRAM。

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

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

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

圖13ZMC900E接口

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

    關(guān)注

    4

    文章

    3610

    瀏覽量

    91178
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    605

    瀏覽量

    28448
  • 編譯環(huán)境
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    8644
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux系統(tǒng)交叉編譯工具鏈的安裝方法

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

    ubuntu交叉編譯環(huán)境搭建

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

    WindowsSTM32單片機(jī)eclipse編譯環(huán)境搭建

    、eclipse等集成編譯環(huán)境,ETA321模塊上編寫自己特殊的應(yīng)用程序。英創(chuàng)公司推薦使用eclipse編譯環(huán)境。  由于eclipse軟
    發(fā)表于 10-20 13:25

    想要自學(xué)搭建嵌入式Linux開發(fā)環(huán)境搭建的同學(xué)有福利了。

    了解了嵌入式開發(fā)的基本概念之后,本章主要學(xué)習(xí)如何搭建嵌入式Linux開發(fā)的環(huán)境,通過本章的學(xué)習(xí),讀者能夠掌握以下內(nèi)容。掌握嵌入式交叉
    發(fā)表于 05-31 22:34

    請問一如何搭建1012的交叉編譯環(huán)境?

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

    嵌入式交叉編譯環(huán)境搭建解析

    5.1.1 嵌入式交叉編譯環(huán)境搭建 交叉編譯的概念在第4章中已經(jīng)詳細(xì)講述過,
    發(fā)表于 10-18 16:44 ?1次下載

    arm-linux交叉編譯環(huán)境解析

    的主要原因在于,多數(shù)嵌入式目標(biāo)系統(tǒng)不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉(zhuǎn)移到高性能的主機(jī)中進(jìn)行。 linux
    發(fā)表于 10-31 11:26 ?7次下載

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

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

    嵌入式Linux開發(fā)環(huán)境搭建-3-安裝交叉編譯工具鏈

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

    Ai-WB2系列模組linux開發(fā)環(huán)境搭建教程

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

    Windows搭建OpenHarmony編譯環(huán)境

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

    3568編譯環(huán)境搭建

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

    ZMC900E 國產(chǎn)EtherCAT主站控制器 — 電源口傳導(dǎo)騷擾整改

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

    ZMC900E控制器之ROS2環(huán)境安裝指南

    ZMC900E是致遠(yuǎn)電子研發(fā)的最新一代高性能EtherCAT控制器,支持ROS2系統(tǒng),兼?zhèn)鋸?qiáng)大功能和實(shí)時(shí)性,為工業(yè)應(yīng)用帶來新的可能。本文將詳述ROS2特點(diǎn)和安裝,助力用戶機(jī)器人上的二次開發(fā)
    的頭像 發(fā)表于 04-29 08:24 ?969次閱讀
    <b class='flag-5'>ZMC900E</b>控制器之ROS2<b class='flag-5'>環(huán)境</b>安裝指南

    如何使用VSCode+gdbserver遠(yuǎn)程調(diào)試ZMC900E

    。前言嵌入式Linux系統(tǒng),由于系統(tǒng)資源的匱乏,通常無法安裝本地編譯器進(jìn)行本地開發(fā),而需要在借助一臺主機(jī)進(jìn)行
    的頭像 發(fā)表于 05-22 11:40 ?183次閱讀
    如何使用VSCode+gdbserver遠(yuǎn)程調(diào)試<b class='flag-5'>ZMC900E</b>