AMD嵌入式開發(fā)框架(EDF)是一個(gè)完整的開源環(huán)境,旨在幫助嵌入式工程師基于AMD自適應(yīng)SoC高效評估、開發(fā)和部署應(yīng)用。
EDF基于Yocto Project 而構(gòu)建;Yocto是業(yè)界標(biāo)準(zhǔn)的開源構(gòu)建系統(tǒng),專用于嵌入式 Linux 開發(fā)。這種方法可確保工程師能夠創(chuàng)建可復(fù)現(xiàn)且可維護(hù)的系統(tǒng),并憑借長期的安全支持和社區(qū)支持讓系統(tǒng)保持最新。
基于Yocto的EDF流程的核心優(yōu)勢
·Linux發(fā)行版:根據(jù)特定需求構(gòu)建定制化Linux OS
·無鎖定:使用未與供應(yīng)商綁定的工具進(jìn)行開發(fā),實(shí)現(xiàn)長期靈活性
·更廣泛的生態(tài)系統(tǒng):利用社區(qū)內(nèi)豐富的庫、擴(kuò)展程序和工具
·輕松集成:與已使用的開源環(huán)境無縫適配
·部署路徑:獲取上游更新和操作系統(tǒng)廠商的長期支持
完整解決方案棧
EDF提供了一整套工具和組件,可用于啟動(dòng)和擴(kuò)展嵌入式系統(tǒng)。軟硬件工程師均可利用 EDF快速啟用SoC,并在強(qiáng)大統(tǒng)一的基礎(chǔ)之上開展開發(fā)工作。
加速嵌入式開發(fā)
加速嵌入式開發(fā)EDF憑借預(yù)構(gòu)建鏡像、自動(dòng)化流程和基于角色的開發(fā)路徑,加速從評估到部署的整個(gè)流程。開發(fā)者可在幾分鐘內(nèi)啟動(dòng)開發(fā)工作,并快速進(jìn)入高級操作系統(tǒng)構(gòu)建或硬件定制階段,而無需從頭開始構(gòu)建。
評估
·開箱即用的評估體驗(yàn):啟動(dòng)預(yù)構(gòu)建鏡像,測試芯片功能,并運(yùn)行開箱即用的示例
開發(fā)
·軟件開發(fā):使用 SDK、容器或軟件包源編寫并部署軟件
·操作系統(tǒng)集成與開發(fā):定制軟件棧、添加域,并擴(kuò)展功能
·硬件集成:利用 AMD Vivado和 Vitis 工具流程及可配置的示例設(shè)計(jì)(CED),集成PL有效載荷
部署
·部署就緒:將定制軟件棧集成到終端應(yīng)用硬件上
·長期可維護(hù)性:與商用操作系統(tǒng)廠商合作,實(shí)現(xiàn)批量生產(chǎn)并獲取長期支持
Petalinux是AMD基于Yocto開發(fā)并維護(hù)的開發(fā)工具,已經(jīng)被用戶所熟知,今天的文章主要站在Petalinux的角度來理解如何進(jìn)行EDF的遷移開發(fā)。
設(shè)計(jì)對比概覽

環(huán)境變量
在PetaLinux中,這些工具需要提供給命令行,但無需進(jìn)行特定項(xiàng)目的初始化。使用 Yocto,在運(yùn)行bitbake命令之前,需要為本地項(xiàng)目設(shè)置 SDK。
Petalinux流程

EDF流程

創(chuàng)建模板工程
Petalinux流程

EDF流程
對于Yocto Project,該機(jī)器在項(xiàng)目創(chuàng)建時(shí)不會定義。之后可以在build/conf/local.conf中進(jìn)行修改。默認(rèn)情況下,該機(jī)器設(shè)置為 zynqmp-generic,但可以通過local.conf或調(diào)用 bitbake 構(gòu)建命令,使用 MACHINE=[target 模板] 命令行重寫進(jìn)行更改。

創(chuàng)建BSP工程
Petalinux流程
$petalinux-create --type project -s xilinx-zcu102-v2025.2-10171136.bsp
EDF流程
EDF不使用.bsp文件。相反,它使用機(jī)器配置文件(在meta-amd-adaptive-socs/meta-amd-adaptive-socs-bsp層狀或類似)以針對特定板。預(yù)建機(jī)器定義可用,可在Yocto項(xiàng)目設(shè)置期間進(jìn)行選擇。
導(dǎo)入硬件配置
Petalinux流程
$petalinux-config --get-hw-description <path to XSA file>
EDF流程
使用gen-machine-conf工具從XSA或SDT生成Yocto的配置。

U-Boot 配置
Petalinux流程
$petalinux-config -c u-boot
EDF流程
在Yocto環(huán)境中啟動(dòng)U-Boot 菜單配置,更改生效請復(fù)制生成的內(nèi)容.config替換defconfig

Kernel配置
Petalinux流程
$petalinux-config -c kernel
EDF流程
在Yocto環(huán)境中啟動(dòng)U-Boot菜單配置,更改生效請復(fù)制生成的內(nèi)容.config替換defconfig

編譯構(gòu)建
Petalinux流程
$petalinux-build
EDF流程
我們需要一個(gè)兩步構(gòu)建流程來獲取 EDF 流程中的引導(dǎo)工件,這與PetaLinux流程不同
1)啟動(dòng)固件鏡像:

2)Linux系統(tǒng)鏡像

生成啟動(dòng)鏡像
Petalinux流程
$petalinux-package --boot --u-boot
EDF流程
$MACHINE=<machine-name> bitbake xilinx-bootbin
生成WIC鏡像
Petalinux流程
$petalinux-package --wic
EDF流程
需要結(jié)合起來使用
1.生成boot.bin和Linux系統(tǒng)鏡像
$MACHINE=zynqmp-zcu102-sdt-full bitbake xilinx-bootbin
$MACHINE=amd-cortexa53-mali-common bitbake edf-linux-disk-image
2.打包WIC鏡像

離線編譯包配置
Petalinux流程
$petalinux-build
1) run petalinux-config to config sstate
-> Yocto Settings
->Local sstate feeds settings
->local sstate feeds url
2) run petalinux-config to config downloads
-> Yocto Settings
-> Add pre-mirror url
-> (press Enter)
EDF流程


更多詳細(xì)EDF使用流程可以參考Wiki中AMD Embedded Development Framework(EDF)。
如果您在EDF工具方面有問題,歡迎聯(lián)系:
simonyang@comtech.cn
charlesxu@comtech.cn

