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

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

3天內不再提示

Vitis嵌入式Linux:Sysroot和庫的用法

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-07 14:14 ? 次閱讀

以下博文演示了在Vitis? 中對 Linux 應用程序開發(fā)的過程中如何使用外部庫。

我將使用由 libxml2 庫所提供的“Parse and validate an XML file with an xmlReader”應用示例來演示本示例,并且和基于 ZCU102 開發(fā)板的 PetaLinux BSP 編譯出來的 Linux 鏡像相關聯(lián)。

創(chuàng)建 Linux 域

要在 Vitis 中開發(fā)嵌入式 Linux 應用,需要在工作空間內創(chuàng)建含 Linux 域的平臺工程。

此平臺工程是根據所選的硬件規(guī)格文件 (XSA) 創(chuàng)建的,該文件可以是在 Vivado 中生成的定制 XSA,也可以是 Vitis 內的預定義 XSA 文件。
由于本示例是使用 PetaLinux BSP 構建的,因此用于創(chuàng)建平臺的 XSA 文件與用于 PetaLinux 工程的 XSA 文件相同。

此外,目標的啟動組件通常在 PetaLinux中生成(或者也可以使用pre-built中的組件),因此無需選中“Generate boot components”(生成啟動組件)選項。

100569887-297773-0410-1.png

生成的硬件平臺工程提供了基本 Linux 域,其中所有可選設置均未定義。

此工程足以用于開發(fā)簡單的應用,例如,hello world。

100569887-297774-0410-2.png

以該域為目標的應用將搭配 Vitis IDE 使用預定義的工具鏈和 sysroot。

編譯好的應用程序可能可以在 Linux 鏡像上正常運行,不出現(xiàn)任何問題,但還請謹記,也可能因為主機上安裝的庫/頭文件與Linux鏡像上的不一致而導致出錯。

預安裝的系統(tǒng)僅提供一些基本庫,因此在編譯我們這個示例的時候,因為缺少這些頭文件和庫,很可能無法編譯成功。

100569887-297775-0410-3.png

構建 Linux 庫

PetaLinux 提供了根文件系統(tǒng)配置菜單,用于構建庫并將其添加到生成的 Linux 鏡像或分發(fā)版中。如《PetaLinux 工具文檔:參考指南》(UG1144) 中所述,此配置為靜態(tài)菜單,其中提供了賽靈思支持的實用工具和庫。

此外,庫不支持的配方可從現(xiàn)有/已使用的層次或者從其它層次添加到鏡像中。如需獲取進一步的指導信息,請參閱 (UG1144) 中的將現(xiàn)有配方添加到根文件系統(tǒng)中部分。

對于此示例,在鏡像中添加了包含開發(fā)包和調試包在內的 libxml2 庫。

100569887-297776-0410-4.png

使用 petalinux-build 命令把庫都編譯一下。

100569887-297777-0410-5.png

生成目標 sysroot

如 (UG1144) 的SDK 生成部分中所述,PetaLinux 提供了 SDK 生成功能,用于構建和部署交叉編譯工具鏈和目標 sysroot 以供應用開發(fā)之用。

100569887-297778-0410-6.png

在默認目錄內封裝好 sysroot 后,即可在生成的 SDK 文件夾內找到 libxml2 的庫和頭文件。

100569887-297779-0410-7.png

配置 Linux 域

Vitis 中的 Linux 域配置菜單提供了設置可選 sysroot 目錄的選項。完成配置和構建后,sysroot 將復制到平臺的導出目錄中,以便后續(xù)供以 Linux 域為目標的任何應用使用。

此外,創(chuàng)建的應用將自動使用導出的 sysroot 目錄。

100569887-297780-0410-8.png

創(chuàng)建 Linux 應用

使用定制 sysroot 配置完 Linux 域,并在 Vitis 中以該 Linux 域為目標創(chuàng)建 Linux 應用工程之后,該應用將自動配置為使用先前導出的 sysroot 路徑。

100569887-297781-0410-9.png

以上配置設置將自動填充應用工程的 C/C++ 設置,用來設置編譯器的“Include Paths (-I)”(包含路徑)選項和 sysroot (--sysroot) 選項以及連接器的庫搜索路徑 (-L)。由該工具配置的編譯器和連接器設置均可在軟件平臺配置的選項中找到。

有些庫文件,例如:libxml2 ,或是include 目錄中需要包含的額外的分層文件夾等,要配置額外的搜索路徑來查找這些頭文件。在此示例中,需將 /usr/include 內的 libxml2 文件夾添加到工程設置中。

100569887-297782-0410-10.png

最后,在工程配置選項中,需通過庫選項 (-l) 選中將在應用中使用的所有庫。

100569887-297783-0410-11.png

現(xiàn)在 Linux 應用工程已正確配置了所需要的第三方庫,因此可成功構建該工程。

100569887-297784-0410-12.png

結論

Vitis IDE 支持以開箱即用方式進行 Linux 應用開發(fā),在此過程中,它會使用預安裝的工具鏈和庫以及為您的目標平臺而創(chuàng)建的默認 Linux 域。

此外,該域可配置為利用可選 sysroot 文件夾來使用第三方庫。該選項能夠與 PetaLinux 的 SDK 生成功能完美搭配,以便將該域配置為使用專為 Linux 鏡像構建的庫,并將這些庫部署在目標平臺上。

審核編輯:湯梓紅

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

    關注

    5046

    文章

    18817

    瀏覽量

    298555
  • Linux
    +關注

    關注

    87

    文章

    11123

    瀏覽量

    207912
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1006

    瀏覽量

    45415
  • Vitis
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7314
收藏 人收藏

    評論

    相關推薦

    Vitis里如何創(chuàng)建嵌入式軟件工程

    1. 介紹 Vitis是Xilinx新推出的統(tǒng)一軟件平臺,可實現(xiàn)在 Xilinx 所有芯片(包括 FPGA、SoC 和 Versal ACAP)上開發(fā)嵌入式軟件和加速應用。Xilinx主要宣傳
    的頭像 發(fā)表于 11-04 12:03 ?5365次閱讀
    <b class='flag-5'>Vitis</b>里如何創(chuàng)建<b class='flag-5'>嵌入式</b>軟件工程

    嵌入式Linux嵌入式Linux開發(fā)環(huán)境說明

    嵌入式Linux嵌入式Linux開發(fā)環(huán)境說明
    發(fā)表于 03-28 09:49 ?30次下載

    基于嵌入式Linux的漁探系統(tǒng)

    針對漁探儀發(fā)展的現(xiàn)狀,提出了一種基于嵌入式Linux 的漁探儀系統(tǒng). 該系統(tǒng)將圖形用戶界面構建在嵌入式Linux嵌入式GUI
    發(fā)表于 04-24 10:44 ?22次下載

    嵌入式Linux

    嵌入式Linux隨著Linux的迅速發(fā)展,嵌入式Linux現(xiàn)在已經有許多的版本,包括強實時的嵌入式
    發(fā)表于 06-17 00:36 ?901次閱讀

    嵌入式LINUX開發(fā)基礎知識

    嵌入式LINUX簡介,嵌入式LINUX開發(fā)平臺簡介,嵌入式LINUX開發(fā)流程,建立
    發(fā)表于 07-31 21:34 ?261次下載

    嵌入式】基于ARM的嵌入式Linux開發(fā)總結

    前言嵌入式知識點復習一嵌入式知識點復習二 --體系結構嵌入式知識點復習三 --ARM-LINUX嵌入式開發(fā)環(huán)境
    發(fā)表于 10-19 18:32 ?26次下載
    【<b class='flag-5'>嵌入式</b>】基于ARM的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>開發(fā)總結

    嵌入式常用的開源

    閱讀目錄linux/嵌入式常用開源列表其他資料參考資料linux下/嵌入式常用的開源名字及簡
    發(fā)表于 10-20 19:20 ?5次下載
    <b class='flag-5'>嵌入式</b>常用的開源<b class='flag-5'>庫</b>

    嵌入式linux開發(fā)工具總結

    1.嵌入式linux開發(fā)工具-編譯器gcc(靜態(tài) 動態(tài)的制作)可以制作 的使用2.
    發(fā)表于 11-01 16:32 ?12次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>開發(fā)工具總結

    嵌入式linux和物聯(lián)網,嵌入式Linux或RTOS:用于物聯(lián)網

    嵌入式Linux或RTOS:用于物聯(lián)網2021-05-10嵌入式Linux或RTOS:用于物聯(lián)網嵌入式L
    發(fā)表于 11-01 16:33 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>和物聯(lián)網,<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>或RTOS:用于物聯(lián)網

    嵌入式Linux(基礎篇)】從標準Linux嵌入式Linux + 嵌入式Linux知識架構

    主要介紹了GNU/Linux的誕生,標準Linux是如何應用在嵌入式系統(tǒng)中的,最后講述了嵌入式Linux知識架構。
    發(fā)表于 11-02 09:51 ?34次下載
    【<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>(基礎篇)】從標準<b class='flag-5'>Linux</b>到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> + <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>知識架構

    嵌入式Linux network

    文章目錄前言網絡通信簡介服務器程序客戶端程序運行微信公眾號前言這是前篇:嵌入式Linux i.MX開發(fā)板嵌入式Linux NFS嵌入式
    發(fā)表于 11-02 10:51 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> network

    嵌入式Linux路線

    嵌入式數據或圖形軟件開發(fā)有興趣,可以進一步學習嵌入式linux數據開發(fā)或基于 QT的嵌入式
    發(fā)表于 11-02 11:51 ?18次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>路線

    視頻教程-嵌入式Linux開發(fā)基礎-嵌入式

    嵌入式Linux開發(fā)基礎 嵌入式工程師、嵌入式講師、10多年
    發(fā)表于 11-02 13:21 ?30次下載
    視頻教程-<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>開發(fā)基礎-<b class='flag-5'>嵌入式</b>

    嵌入式網絡編程+嵌入式Linux系統(tǒng)

    嵌入式網絡編程+嵌入式Linux系統(tǒng)一、 Linux操作系統(tǒng)安裝與使用(命令)二、 Linux開發(fā)工具(gcc、gdb、make)三、
    發(fā)表于 11-02 14:51 ?23次下載
    <b class='flag-5'>嵌入式</b>網絡編程+<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系統(tǒng)

    揭秘Vitis嵌入式加速平臺的創(chuàng)建

    電子發(fā)燒友網站提供《揭秘Vitis嵌入式加速平臺的創(chuàng)建.pdf》資料免費下載
    發(fā)表于 09-14 11:05 ?0次下載
    揭秘<b class='flag-5'>Vitis</b><b class='flag-5'>嵌入式</b>加速平臺的創(chuàng)建