色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

在Vitis中調試ARM可信固件和U-boot

王利祥 ? 來源:mede1001 ? 作者:mede1001 ? 2022-08-02 10:14 ? 次閱讀

本文來自 XILINX 產品應用工程師Stephen MacMahon

在本篇博文中,我們將探討如何在 Vitis 中調試 Zynq UltraScale 器件啟動鏡像。這些啟動鏡像包括 ARM 可信固件 (ATF) 和 U-boot。

本篇博文乃是系列博文中的一篇,此系列博文旨在探討如何在 Petalinux 鏡像中調試各種組件。 (更多系列博文請持續關注公眾號文章推送)

啟動鏡像調試是任何定制板啟動過程中不可或缺的一環,希望本篇博文能夠幫助用戶完整完成定制板啟動鏡像的調試工作。即使您使用的是開發板,本篇博文也將能夠提供有關啟動鏡像在 Zynq UltraScale 器件上的工作方式方面的諸多實用見解。

啟動鏡像的生成途徑多種多樣。用戶可以使用 PetaLinux/Yocto,或者也可以從 GiT 源代碼手動構建鏡像。本文將演示如何使用 PetaLinux 2020.1 來為 Zynq UltraScale 器件創建啟用調試功能的啟動鏡像。

PetaLinux 流程:

在此次演示中使用的是 ZCU104 板,但其中步驟應適用于所有 Zynq UltraScale 器件。

在 images/Linux 文件夾中提供的 u-boot.elf 不具有在 Vitis 中進行調試所需的符號信息。因此,我們將使用 PetaLinux 內的工作目錄下的 u-boot 二進制文件。

并且 PetaLinux 移除了其中間文件以節省磁盤空間,因此我們需要在 PetaLinux 工程中禁用此功能。

下列步驟演示了用戶如何獲取啟用調試功能的 ATF 和 U-boot:

petalinux-create -t project --template zynqMP -n linux_image
cd linux_image

pYYBAGGYHxaAA-TBAAKCbyEfraQ148.png

注: 很遺憾,在 PetaLinux 存在 1 個已知問題,即無法將 debug=1 傳遞到此處的 makefile。用戶可以使用此處所述的變通方法來手動添加該值。

用戶還應注意 TMP 目錄:

poYBAGGYHxeAZLJsAAJzENvam10657.png

退出“配置 (Config)”屏幕并單擊“Save”以保存。

如上所述,PetaLinux 提供的 u-boot 可執行文件不具有調試所需的符號信息。用戶可以通過修改 build/conf 文件夾下的 local.conf 文件來阻止 PetaLinux 移除中間構建文件。

創建任何構建時都會創建 build 文件夾,因此我們可以執行 petalinux-build,隨后使用 Ctrl + c 在創建此文件時停止操作。打開 local.conf 文件并注釋掉以下行:

pYYBAGGYHxmAfn3-AADjJk2T3ks333.png

現在,只需構建啟動鏡像并使用 PetaLinux 創建可啟動鏡像 (BOOT.BIN) 即可

petalinux-build -c bootloader

完成構建后,將 u-boot 重命名為 u-boot.elf 并從 tmp 文件夾復制到 images/linux 文件夾中:

pYYBAGGYHxqASq9iAACFXzuhQKs236.png

下一步,使用 PetaLinux 創建可啟動鏡像 (BOOT.BIN)

cd images/linux
petalinux-package --boot --u-boot

作為完整性檢查,我們還可測試可執行文件以確認其中包含符號信息:

poYBAGGYHxuAZDPkAAFDo250lyY464.png

在 Vitis 中執行調試:

我發現調試啟動鏡像最簡單的方法是將啟動鏡像加載到 SD/QSPI 上,并在運行目標上執行調試。

啟動 Vitis 并關閉歡迎屏幕。

創建新的“調試配置 (Debug Configuration)”:

pYYBAGGYHxyAVIPbAABLQDW_LDM825.png

雙擊“單應用調試 (Single Application Debug)”:

poYBAGGYHx2AZ5WCAAE2CXuRkt4253.png

將“調試類型 (Debug Type)”設置為“連接到運行目標 (Attach to Running Target)”:

pYYBAGGYHx-ADztLAAD8zNABPTU038.png

注: 由于我當前使用遠程連接,因此還需一并設置遠程連接。

選擇“應用并調試 (Apply and Debug)”。這樣即可打開調試透視圖。

您可以看到其中 Cortex A53 正在運行(我們的啟動鏡像)。

poYBAGGYHyCAKklUAACWm0GdyAg456.png

重定位前的調試:

展開賽靈思軟件命令行工具 (XSCT) 窗口。

我們要在其中將符號文件傳遞給 Cortex A53 #0 以供 ATF 和 U-Boot 使用。

在 XSCT 中使用 memmap 命令設置符號文件:

pYYBAGGYHyGAU8bAAABQQQELE7c838.png

然后即可在 ATF 和 U-Boot 中添加中斷點。

我將 ATF 中的中斷點設置在 bl31_main,將 U-boot 中的中斷點設置在 board_init_f:

poYBAGGYHyKAVXMCAACH7Bj6gvU492.png

如果將板掉電并重新上電,則會在 ATF 中看到中斷點被命中。

pYYBAGGYHySASBDqAAFFcJ0EBiU510.png

隨后,用戶可以執行恢復 (resume)、單步進入 (step into)、單步跳過 (step over) 等:

poYBAGGYHyWATtpKAACEqIf_NtQ875.png

用戶可以單步執行此處代碼。例如,用戶可以使用其中的 setup_reloc 功能來查找 uboot 重定位地址(或者使用 bdinfo)。

重定位地址因用戶而異,我這里的重定位地址為 0x77DE5000。

重定位后的調試:

uboot 代碼將對自身進行重定位,由于我們已映射符號文件存儲器,因此,該重定位地址是錯誤的。

由此導致我們需要傳遞重定位地址以便調試器能夠對此進行補償:

poYBAGGYHyaAObBkAABBmke9wlg853.png

讓我們使用 board_init_r 功能。

這是重定位后處理功能:

pYYBAGGYHyeAWQmeAAERYZkFfEI610.png

重定位后,board_init_r 地址將變為 0x77DE5000 + 0x801A880 = 0x7FDFF880。

如果我在 board_init_r 處添加中斷點,即可看到實際地址符合預期:

pYYBAGGYHymAGpskAAAbvEqp2aI137.png

如果此時掉電并重新上電,則將命中 ATF 中的中斷點,并且此時還會命中重定位后的 U-boot。

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

    關注

    71

    文章

    2173

    瀏覽量

    122839
  • Zynq
    +關注

    關注

    10

    文章

    611

    瀏覽量

    47488
  • Vitis
    +關注

    關注

    0

    文章

    147

    瀏覽量

    7591
收藏 人收藏

    評論

    相關推薦

    基于AM335x的U-Boot/SPL 的CCS 調試

    基于Linux的AM335x軟件開發流程,第一步就是U-Boot/SPL(SecondProgram Loader)的移植。##2.調試環境的準備##3.3 SPL的
    發表于 08-21 15:09 ?9427次閱讀
    基于AM335x的<b class='flag-5'>U-Boot</b>/SPL 的CCS <b class='flag-5'>調試</b>

    imx6ull開發板u-boot下網絡部分的移植和調試

    今天給大家講一講如何將u-boot網絡部分的移植和調試
    發表于 07-12 15:11 ?3380次閱讀
    imx6ull開發板<b class='flag-5'>u-boot</b>下網絡部分的移植和<b class='flag-5'>調試</b>

    U-boot的基本介紹

    從本文開始,將陸續推送“手把手教你移植U-boot”系列文章,目標是由淺入深地講解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默認硬件開發平臺為AR
    發表于 07-14 16:52 ?3303次閱讀
    <b class='flag-5'>U-boot</b>的基本介紹

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    發表于 01-25 15:45 ?13次下載

    一種U-BOOT嵌入千兆網絡功能的方法

    一種U-BOOT嵌入千兆網絡功能的方法摘 要:U-BOOT是一種開放源碼的、用于多種嵌入式微處理器的引導加載程序,目前U-BOOT僅支持
    發表于 02-05 17:38 ?17次下載

    u-boot的Makefile分析

    u-boot的Makefile分析 U-BOOT是一個LINUX下的工程,在編譯之前必須已經安裝對應體系結構的交叉編譯環境,這里只針對ARM,編譯器系列軟件為arm-linux-*。
    發表于 05-17 09:16 ?2096次閱讀

    基于ARM9的U-Boot自動識別啟動實現

    嵌入式ARM9系列處理器支持U-Boot從Nor FLASH或者Nand FLASH啟動,也支持U-Boot直接下載到內存調試運行,根據
    發表于 03-04 16:23 ?91次下載
    基于<b class='flag-5'>ARM</b>9的<b class='flag-5'>U-Boot</b>自動識別啟動實現

    u-boot簡介

    演化而來。其源碼目錄、編譯形式與Linux內核很相似,事實上,不少U-Boot源碼就是根據相應的Linux內核源程序進行簡化而形成的,尤其是一些設備的驅動程序,這從U-Boot源碼的注釋能體現這一點
    發表于 10-14 11:17 ?3621次閱讀

    如何使用Xilinx SDK調試u-boot代碼

    了解如何使用Xilinx SDK調試u-boot代碼。 概述了技術以獲得重定位偏移量,以便可以SDK應用它。
    的頭像 發表于 11-27 06:36 ?4349次閱讀

    如何在 Vitis 調試 Zynq UltraScale 器件啟動鏡像

    本篇博文中,我們將探討如何在 Vitis 調試 Zynq UltraScale 器件啟動鏡像。這些啟動鏡像包括 ARM
    的頭像 發表于 06-01 15:35 ?3576次閱讀
    如何在 <b class='flag-5'>Vitis</b> <b class='flag-5'>中</b><b class='flag-5'>調試</b> Zynq UltraScale 器件啟動鏡像

    深度解析U-Boot網絡實現

    對于U-Boot而言,并沒有完整的實現上述模型,u-boot需要控制固件的尺寸,所以根據需要做了一些簡化,其拓撲框架如下圖所示:
    發表于 02-07 11:53 ?2次下載
    深度解析<b class='flag-5'>U-Boot</b>網絡實現

    u-boot中使用ethernet的方法

    KV260 petalinux BSPu-boot device treedisable了GEM3,也就是說ethernetu-boot
    的頭像 發表于 07-21 10:25 ?4140次閱讀

    Linux U-Boot開發指南

    介紹 U-Boot 的編譯打包、基本配置、常用命令的使用、基本調試方法等, 為 U-BOOT 的移植及應用開發提供了基礎。
    的頭像 發表于 03-06 10:28 ?1433次閱讀
    Linux <b class='flag-5'>U-Boot</b>開發指南

    U-boot的QSPI驅動移植方法及驗證方法

    本文主要講述了U-boot的QSPI驅動移植方法及驗證方法。在產品調試階段,U-boot的driver子系統包含了豐富的外設驅動,方便外設功能驗證與調試
    的頭像 發表于 04-14 10:21 ?3263次閱讀
    <b class='flag-5'>U-boot</b>的QSPI驅動移植方法及驗證方法

    u-boot armv8鏈接腳本

    armv8u-boot使用arch/arm/cpu/armv8/u-boot.lds進行鏈接。 u-boot-spl和
    的頭像 發表于 12-07 11:19 ?818次閱讀
    主站蜘蛛池模板: 跪趴式啪啪GIF动态图27报 | 欧美成人亚洲高清在线观看 | 国产精品私人玩物在线观看 | 特级黑人三人共一女 | 欧美亚洲日韩国产在线在线 | 国产精品96久久久久久AV网址 | 一二三四在线视频社区 | 成人短片迅雷下载 | 亚洲精品97福利在线 | 在线观看国产人视频免费中国 | 国产精品久久久久久久久LI无码 | 国产乱码精品一区二区三区四川 | 一个人的免费高清影院 | 成人AV精品视频 | 亚洲AV精品一区二区三区不卡 | 2022国产精品不卡a | 麻豆XXXX乱女少妇精品 | 亚洲永久免费视频 | 国内视频在线精品一区 | 中文字幕午夜乱理片 | 欧美精品专区免费观看 | 三级黄色一级视频 | 伊人久久五月丁婷婷 | 毛片免费在线视频 | 久久激情影院 | 日本三级黄色大片 | 狠狠色狠狠色88综合日日91 | gogogo视频在线观看 | 蜜柚视频在线观看全集免费观看 | 久久夜色精品国产亚州AV卜 | 久久艹伊人 | 亚洲女初尝黑人巨磁链接 | 亚洲国产中文在线视频免费 | 国产精品九九九久久九九 | 米奇在线8888在线精品视频 | 国产午夜精品一区理论片飘花 | 影音先锋影院中文无码 | 久久久亚洲国产精品主播 | 把腿张开老子CAO烂你动态图 | 女人张开腿让男人添 | 九色PORNY蝌蚪视频首页 |