91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

不需要依賴笨重的虛擬機(jī),也不需要安裝雙系統(tǒng)。拋開(kāi)繁瑣的環(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)資源的匱乏,通常無(wú)法安裝本地編譯器進(jìn)行本地開(kāi)發(fā),而需要在借助一臺(tái)主機(jī)進(jìn)行交叉開(kāi)發(fā)。一般情況下,在主機(jī)安裝相應(yīng)的交叉編譯器,將在主機(jī)編輯好的程序交叉編譯后,通過(guò)一定方式如以太網(wǎng)或者串口將程序下載到目標(biāo)系統(tǒng)運(yùn)行,或者進(jìn)行調(diào)試。一般的交叉開(kāi)發(fā)流程如圖1所示。

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

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

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

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

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

常見(jiàn)的交叉編譯環(huán)境中,主機(jī)會(huì)選用Linux系統(tǒng)。如果主機(jī)是Windows系統(tǒng),通常會(huì)采用虛擬機(jī)的方式運(yùn)行Linux系統(tǒng)來(lái)搭建環(huán)境。其實(shí)Windows系統(tǒng)中同樣也可以搭建交叉編譯環(huán)境,在Windows上就可以開(kāi)發(fā)ZMC600E/900E的程序,接下來(lái)將介紹如何實(shí)現(xiàn)。
7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?測(cè)試環(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為例子,介紹如何搭建交叉編譯工具鏈,并通過(guò)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)備交叉編譯工具鏈說(shuō)明文件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中寫(xiě)入以下內(nèi)容。

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

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

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

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

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

接下來(lái)在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,該變量用于指定通過(guò)cmake生成交叉編譯工程時(shí),交叉編譯工具鏈的配置文件。
  • cmake ..,目前位于build文件夾下,..表示指定上層目錄中../CMakeLists.txt作為cmake生成的參考文件。

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

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

圖5 測(cè)試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

打開(kāi)demo/ecat_io示例,新建CMakeLists.txt文件,寫(xiě)入以下內(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í)際測(cè)試從站對(duì)主站程序test.c做相應(yīng)修改,具體請(qǐng)參考倍福I/O端子操作示例:https://manual.zlg.cn/web/#/211/11214接下來(lái)在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文件,該文件為L(zhǎng)inux arm格式的可執(zhí)行文件。需要將test、test.xml、libzecm.so都上傳到ZMC900E運(yùn)行。
7b292330-35f4-11f0-8605-92fbcf53809c.jpg ?VSCode搭建圖形化交叉編譯環(huán)境

1. VSCode配置CMakeTool

此步驟用到的工具鏈:CMake + make(來(lái)自mingw64里包含的mingw32-make.exe) + aarch64-linux-gnu + VS Code&插件CMake等。如果失敗需要檢查工具鏈上每一環(huán)節(jié)是否工作正常。首先,需要先自己寫(xiě)一個(gè)給CMake用的交叉編譯工具鏈配置文件。可以參照第2.2節(jié)內(nèi)容。用VSCode打開(kāi)項(xiàng)目文件夾,例如前面測(cè)試的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)名稱。完成后會(huì)生成一個(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輸出,若無(wú)報(bào)錯(cuò),則表示CMake配置成功。

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

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

2. VSCode + CMakeTool圖形化編譯

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

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í)如果通過(guò)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)庫(kù)libzecm.so、ENI文件上傳到ZMC900E同一目錄下,并給test程序加上x(chóng)權(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)電子開(kāi)發(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3702

    瀏覽量

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

    關(guān)注

    4

    文章

    614

    瀏覽量

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

    關(guān)注

    0

    文章

    13

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    由于OpenHarmony的編譯工具鏈主要是建立Linux操作系統(tǒng),如需要編譯OpenHar
    的頭像 發(fā)表于 08-09 08:26 ?2967次閱讀
    <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)境來(lái)編譯rockchipBBuildrootllinuxSDK的源代碼。d當(dāng)前sdk只支持
    發(fā)表于 12-13 11:23 ?18次下載

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

    為確保EtherCAT主站控制器工業(yè)自動(dòng)化中的可靠和穩(wěn)定應(yīng)用,EMC測(cè)試至關(guān)重要。本文以ZMC900E電源傳導(dǎo)騷擾整改為例,深入解析EMC原理,助您精準(zhǔn)定位問(wèn)題,避免無(wú)效整改。圖1ZMC900E
    的頭像 發(fā)表于 03-07 08:23 ?2123次閱讀
    <b class='flag-5'>ZMC900E</b> 國(guó)產(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)用帶來(lái)新的可能。本文將詳述ROS2特點(diǎn)和安裝,助力用戶機(jī)器人上的二次開(kāi)發(fā)
    的頭像 發(fā)表于 04-29 08:24 ?1687次閱讀
    <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)資源的匱乏,通常無(wú)法安裝本地編譯器進(jìn)行本地開(kāi)發(fā),而需要在借助一臺(tái)主機(jī)進(jìn)行
    的頭像 發(fā)表于 05-22 11:40 ?992次閱讀
    如何使用VSCode+gdbserver遠(yuǎn)程調(diào)試<b class='flag-5'>ZMC900E</b>

    從站熱插拔技術(shù):ZMC900E 助力自動(dòng)化系統(tǒng)靈活擴(kuò)展與穩(wěn)定運(yùn)行

    從站熱插拔技術(shù),讓工業(yè)自動(dòng)化系統(tǒng)在運(yùn)行中實(shí)現(xiàn)系統(tǒng)的擴(kuò)展、維護(hù)或更換,極大地提升了自動(dòng)化系統(tǒng)的可用性和生產(chǎn)效率。本文將深入探討其原理與ZMC900E控制器的應(yīng)用。從站熱插拔的基本概念與應(yīng)
    的頭像 發(fā)表于 09-01 11:35 ?2056次閱讀
    從站熱插拔技術(shù):<b class='flag-5'>ZMC900E</b> 助力自動(dòng)化<b class='flag-5'>系統(tǒng)</b>靈活擴(kuò)展與穩(wěn)定運(yùn)行

    解鎖PWM功能:ZMC900E主站控制器的高效應(yīng)用指南

    在當(dāng)今的自動(dòng)化控制領(lǐng)域,ZMC900E主站控制器憑借其卓越的性能和豐富的功能,成為了眾多工程師和項(xiàng)目開(kāi)發(fā)者的首選。今天,我們重點(diǎn)探討一ZMC900E主站控制器中一項(xiàng)極為強(qiáng)大的功能—PWM
    的頭像 發(fā)表于 09-05 11:35 ?744次閱讀
    解鎖PWM功能:<b class='flag-5'>ZMC900E</b>主站控制器的高效應(yīng)用指南

    深入ZMC900E:主站控制器編碼器的使用與優(yōu)勢(shì)

    視頻推薦工業(yè)自動(dòng)化領(lǐng)域,編碼器是確保設(shè)備精準(zhǔn)運(yùn)行的關(guān)鍵部件。本期我們將深入探討ZMC900E主站控制器中的編碼器功能。編碼器編碼器是一種用于測(cè)量機(jī)械運(yùn)動(dòng)的傳感器,它能夠?qū)C(jī)械運(yùn)動(dòng)轉(zhuǎn)換為電信號(hào),用于
    的頭像 發(fā)表于 09-11 11:34 ?730次閱讀
    深入<b class='flag-5'>ZMC900E</b>:主站控制器編碼器的使用與優(yōu)勢(shì)