衡阳派盒市场营销有限公司

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

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

3天內不再提示

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

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

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

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

創建 Linux 域

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

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

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

100569887-297773-0410-1.png

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

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

100569887-297774-0410-2.png

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

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

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

100569887-297775-0410-3.png

構建 Linux 庫

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

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

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

100569887-297776-0410-4.png

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

100569887-297777-0410-5.png

生成目標 sysroot

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

100569887-297778-0410-6.png

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

100569887-297779-0410-7.png

配置 Linux 域

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

此外,創建的應用將自動使用導出的 sysroot 目錄。

100569887-297780-0410-8.png

創建 Linux 應用

使用定制 sysroot 配置完 Linux 域,并在 Vitis 中以該 Linux 域為目標創建 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

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

100569887-297784-0410-12.png

結論

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

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

審核編輯:湯梓紅

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

    關注

    5094

    文章

    19178

    瀏覽量

    307732
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210415
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1045

    瀏覽量

    46281
  • Vitis
    +關注

    關注

    0

    文章

    147

    瀏覽量

    7499
收藏 人收藏

    評論

    相關推薦

    Vitis里如何創建嵌入式軟件工程

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

    基于嵌入式Linux的漁探系統

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

    嵌入式Linux

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

    嵌入式LINUX開發基礎知識

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

    嵌入式】基于ARM的嵌入式Linux開發總結

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

    嵌入式常用的開源

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

    嵌入式linux開發工具總結

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

    嵌入式linux和物聯網,嵌入式Linux或RTOS:用于物聯網

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

    嵌入式 Linux 的基礎知識介紹

    ?嵌入式LinuxLinux內核的改編版,用于嵌入式系統。嵌入式Linux最流行的例子是And
    發表于 11-01 16:58 ?9次下載
    <b class='flag-5'>嵌入式</b> <b class='flag-5'>Linux</b> 的基礎知識介紹

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

    主要介紹了GNU/Linux的誕生,標準Linux是如何應用在嵌入式系統中的,最后講述了嵌入式Linux知識架構。
    發表于 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開發板嵌入式Linux NFS嵌入式
    發表于 11-02 10:51 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> network

    嵌入式Linux路線

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

    視頻教程-嵌入式Linux開發基礎-嵌入式

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

    嵌入式網絡編程+嵌入式Linux系統

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

    揭秘Vitis嵌入式加速平臺的創建

    電子發燒友網站提供《揭秘Vitis嵌入式加速平臺的創建.pdf》資料免費下載
    發表于 09-14 11:05 ?0次下載
    揭秘<b class='flag-5'>Vitis</b><b class='flag-5'>嵌入式</b>加速平臺的創建
    贵族百家乐的玩法技巧和规则 | 如何玩百家乐官网游戏| 大发888娱乐场存款168| 玩百家乐官网技巧看| 绥芬河市| 百家乐双倍派彩的娱乐城| 电脑打百家乐官网怎么赢| 皇家娱乐城| 百家乐单注打| 风水24山里的四维八干| 百家乐官网免费破解外挂| bet365备用主页器| 威尼斯人娱乐官方网| 百家乐庄闲比率| 百家乐官网全部规| 百家乐官网平台信誉排名| 皇冠国际现金投注| 大发888优惠代码| 威尼斯人娱乐场送1688元礼金领取lrm | 大丰收百家乐官网的玩法技巧和规则| 上高县| 大发888博必发| 威尼斯人娱乐城 196| 百家乐园百利宫娱乐城怎么样百家乐园百利宫娱乐城如何 | 博之道百家乐官网技巧| 育儿| 真人百家乐官网信誉| 万豪国际娱乐城| 蒙特卡罗娱乐网| 大发888娱乐场东南网| 威尼斯人娱乐城百家乐赌博| 百家乐网上真钱赌场娱乐网规则 | 百家乐官网园云鼎娱乐平台 | 大发888亚洲游戏平台| 莫斯科百家乐的玩法技巧和规则| 缅甸百家乐龙虎斗| 百家乐号论坛博彩正网| 百家乐技巧娱乐博彩| 利记| 大埔县| 百家乐官网天下第一缆|