0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于安路DR1M90 FPSoC 的Linux 系统全流程开发指南(2)

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-11-25 17:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本文档由创龙科技研发,专为安路飞龙 DR1M90 FPSoC 产品打造,聚焦 Linux 系统全流程开发需求。

开发环境

Windows开发环境:Windows10 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit

LinuxSDK开发包:LinuxSDK-[版本号](基于SDK_2025.1)

交叉编译工具链:

应用开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

U-Boot、内核开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

评估板系统版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02

备注:本文基于8GByte eMMC、1GByteDDR3配置核心板进行演示。

BOOT.bin开发

BOOT.bin文件为SoC的启动镜像,一般包含FSBL、比特流文件(用于配置PL)、被引导的应用、数据文件,遵循固定的结构,以便SoC上电时BootRom对其进行解析。

具体说明如下:

(1)FSBL:非必须,主要功能为初始化SoC、引导应用程序,配置PL比特流。

(2)比特流文件:非必须,在使用到PL端逻辑资源时必须使用。

(3)应用程序:必须,若运行在OCM,且不依赖PL端,则可单独使用;其他情况下被FSBL引导;引导Linux系统则为u-boot.bin。

(4)数据:可选,一般用于将数据加载至固定内存地址。

wKgZPGkmZTOAYo4qAAD9GtIV2lY556.png图 17

备注:我司提供的BOOT.bin由FSBL和U-Boot镜像合并生成,不含比特流文件、数据。

FSBL开发

FSBL(First Stage Bootloader)为一级Bootloader程序,我司提供的FSBL工程中已对PS端相关外设进行配置。

FSBL TD工程说明

我司提供的FSBL TD工程位于“4-软件资料LinuxFSBLfsbl-[版本号]hwproject”目录下,请参考《TD-FD工程编译与加载》文档导入TD工程。

双击fsbl,即可打开的Design界面。

wKgZO2kmcIaAd3hDAABE1Ycszv8054.png图 18wKgZPGkmcIaAJ6_eAAE_8uTtC90675.png图 19

在Design界面双击"ARM Processor System"IP即可打开配置界面,该界面为FPSoC Diagram,显示基本配置框图,点击橙色部分可跳转到该功能详细配置界面。

wKgZPGkmcJSAGcLMAACgZsVdK9g100.png图 20

可通过打开相应的窗口来查看相关配置。

(1)打开"PS-PL interfaces"窗口查看PS-PL配置。

wKgZO2kmcJ2AQzraAACL83L-_4w071.png图 21

(2)打开"Peripherals and Pin Mux"窗口查看外设配置。

wKgZO2kmcKSASCJ2AADAscE2GXE155.png图 22

(3)打开"Clocks"窗口查看时钟配置。

wKgZO2kmcKyAKNVCAADVDtXiAI4440.png图 23

(4)打开"PS DDR"窗口查看DDR配置。

wKgZO2kmcMuAMcuBAADLVhcm1UM972.png图 24

(5)打开"AI"窗口查看NPU配置。

wKgZPGkmeOmAaUqQAABIq-sbZYo391.png图 25

FSBL TD工程编译

请参考《TD-FD工程编译与加载》文档编译FSBL TD工程。

wKgZPGkmePKAFEdsAAFLN6y30Mo119.png图 26

生成HPF文件

在FPSoC的应用开发过程中,需将硬件设计信息通过文件的形式传递至软件开发工具(FD)中使用,该文件被称之为HPF(HardwarePlatform File)文件。

我司提供的HPF文件位于“4-软件资料LinuxFSBLfsbl-[版本号]hwbin”目录下,下文演示HPF文件的生成。

在菜单栏中依次点击"Project -> Export Hardware Platform File"。

wKgZO2kmePqAC7NbAABp321juJg026.png图 27

在弹窗内,勾选"Include bitstream",导出路径选择默认在当前工程内,点击OK。

wKgZPGkmeRSAQ36vAAAa3xYlbFY797.png图 28

弹窗显示导出HPF文件成功,并显示HPF文件的存放路径,点击"Ok"。

wKgZPGkmeRuAcPogAAAUFp_IC1Y080.png图 29

生成FSBL FD工程

我司提供的FSBL FD工程位于“4-软件资料LinuxFSBLfsbl-[版本号]swbaremetal_demoproject”目录下,下文演示FSBL FD工程的生成。打开FD软件,在Workspace中指定工程存放路径,点击"Launch"。Workspace是FD的工作目录,该目录下包含了Platform工程、app工程以及用户配置文件。

wKgZO2kmeSGAaSQ3AAAlejPbydY448.png图 30

在菜单栏中依次点击"File -> New -> Platform Project",创建Platform工程。

wKgZO2kmeSqAKYdgAAEhpfe672c789.png图 31

在弹出的对话框中,根据实际情况设置Project Name(工程名),"HPF File"选择刚刚导出的HPF文件所在路径,点击"Finish"生成Platform工程。

wKgZO2kmeTWAOLjEAAA-dMuMfO4378.png图 32

至此,创建Platform工程完成。

wKgZO2kmeTyANcIzAABK1QLx0eQ677.png图 33

在菜单栏中依次点击"File -> New -> Application Project",创建FSBLFD工程。

wKgZPGkmeUiAV5byAAFJxgBMUDk619.png图 34

在弹出的对话框中,根据实际情况设置Project Name(工程名),"Template List"选择"FSBL",点击"Finish"生成FSBLFD工程。FSBL FD工程即为app工程,其主要功能为引导BOOT.bin中的数据和程序。

wKgZO2kmeVGAN5jaAABqH9ReMYA478.png图 35

至此,已生成FSBL FD工程。

wKgZPGkmeVmAHsmiAABROfXjacU651.png图 36

编译FSBL FD工程生成elf文件

我司提供的elf文件位于“4-软件资料LinuxFSBLfsbl-[版本号]swbaremetal_demobin”目录下,可直接使用。

本小节演示elf文件的生成。鼠标右键FSBL工程,选择"Reset Project"。

wKgZO2kmeWOAfFXYAADFYdIQ0xA507.png图 37

点击"Reset"。

wKgZPGkmeW6ADHhEAAAhSInph1E067.png图 38

点击"Close"。

wKgZPGkmeXWATD5XAAAMQFNcxm0334.png图 39

在菜单栏中依次点击"Project -> Build All",编译FSBL FD工程。

wKgZO2kmeX2ABGNlAAEJyc2LNSI107.png图 40

编译完成,并在fsblgon工程的build目录下生成fsbl.elf文件。fsbl.elf需与u-boot.bin文件合成BOOT.bin使用。

wKgZPGkmeYSARyQWAAAwDEqbg6k453.png图 41

wKgZO2kmeYuABebwAAAdJ76GgdQ789.png图 42

U-Boot开发

U-Boot为二级Bootloader程序。

U-Boot源码说明

U-Boot源码位于LinuxSDK源码u-boot目录,具体说明如下表。

wKgZO2kmeZmAc8IKAAAkM1ooGhY926.png

wKgZPGkmeZmANqU3AACIwqSDgFM182.png图 43

U-Boot配置

U-Boot可使用menuconfig进行配置,请参考“配置内核选项”章节,配置menuconfconfig所需依赖环境。

在LinuxSDK源码目录下,执行如下命令,通过menuconfig配置U-Boot。

Host#cd /home/tronlong/DR1/SDK_2025.1/

Host#./build.sh ubootmenuconfig

wKgZO2kmebGAPdIrAADz_FcvCgM497.png图 44

wKgZPGkmebmASC2GAAE2v9Jftgk726.png图 45

可通过键盘的方向键选中对应菜单栏。在被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到U-Boot中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到U-Boot中。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。配置完毕后,选中,按Enter键保存配置选项。然后选中,按Enter键退出。图 46编译U-Boot在LinuxSDK源码目录下执行如下命令,配置编译选项,并单独编译U-Boot。Host# ./build.sh uboot图 47图 48编译完成后,最终在LinuxSDK源码"device/output/anlogic_dr1m90/u-boot"目录下生成U-Boot镜像如下所示。图 49合成BOOT.bin文件BOOT.bin由fsbl.elf和u-boot.bin合成。fsbl.elf文件位于产品资料“4-软件资料LinuxFSBLfsbl-[版本号]swbaremetal_demobin”目录下,u-boot.bin文件位于“4-软件资料LinuxU-Bootimageu-boot-2021.01-[版本号]-[Git序列号]”目录下,可直接使用。备注:版本号、Git序列号请以实际情况为准。打开FSBL FD工程,在菜单栏中依次点击"Tools -> Create Boot lmage"。图 50图 51"Output BlF file path"为output.bif存放路径,"Output path"为BOOT.bin存放路径,请根据实际路径进行选择。在"Boot image partitions"中点击"Add"选择和配置需要被打包到Boot.bin的分区文件,本次以添加FSBL镜像fsbl.elf和U-Boot镜像u-boot.bin为例进行演示,配置参数如下图。图 52图 53图 54配置完成,点击"Create lmage",生成BOOT.bin文件。图 55图 56替换BOOT.bin文件通过Linux系统启动卡替换将Linux系统启动卡通过读卡器连接至PC机,直接替换Linux系统启动卡BOOT分区的BOOT.bin原文件即可。图 57通过命令行替换请将需替换的BOOT.bin文件拷贝至评估板文件系统的任意目录下,执行如下命令替换BOOT.bin文件至Linux系统启动卡。Target# cp ./BOOT.bin /mnt/mmcblk0p1/BOOT.bin备注:如需替换BOOT.bin至eMMC,请将设备节点修改为"/mnt/mmcblk1p1"。图 58U-Boot使用说明U-Boot命令行进入方式评估板上电启动后,在U-Boot倒计时结束之前按下"Ctrl + C"进入U-Boot命令行模式。环境变量说明(1)环境变量存储执行命令"setenv"或"env default -f -a"修改的是运行空间中的环境变量值,须使用"saveenv"命令将修改后的环境变量保存起来。否则U-Boot重启后,将会使用修改前的环境变量值。环境变量修改完成后,执行reset命令,即可使用修改后的U-Boot环境变量启动。U-Boot# env default -f -aU-Boot# saveenvU-Boot# reset图 59(2)默认配置信息在U-Boot命令行执行"printenv"命令可查看环境变量。不同版本的U-Boot,环境变量可能会有所不同,内容仅供参考。U-Boot# printenv图 60图 61(3)环境变量说明关键环境变量说明如下。/* 架构、CPU和板卡信息*/arch=armcpu=armv8soc=dr1m90board=evb_dr1m90board_name=evb_dr1m90vendor=anlogic/* 串口控制台和波特率设置*/baudrate=115200stderr=serial@f8401000stdin=serial@f8401000stdout=serial@f8401000/* 网络配置*/ipaddr=192.168.199.138netmask=255.255.255.0serverip=192.168.199.114/* 内核和设备树加载地址*/fdt_addr_r=0x18000000kernel_addr_r=0x10000000/* 内核和设备树文件名*/kernel_image=kernel.bindevicetree_image=dtb.bin/* 内核镜像和设备树文件路径*/bootdir=/boot/* 支持的启动设备类型*/boot_targets=mmc0 mmc1 ubifs0 nand qspi/* 当前启动类型*/boot_type=mmc0/* 主要启动命令*/bootcmd=run an_bootcmd/* 自动启动命令逻辑*/an_bootcmd=if env exists boot_type; then for target in ${boot_targets}; do if test ${boot_type} = ${target}; then run bootcmd_${target}; fi; done; fi;/* 各启动设备的命令*/bootcmd_mmc0=devnum=0; run mmc_bootbootcmd_mmc1=devnum=1; run mmc_boot/* MMC设备启动流程*/mmc_boot=if mmc dev ${devnum}; then devtype=mmc; if test ${devnum} -eq 0; then setenv bootargs 'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait';fi; if test ${devnum} -eq 1; then setenv bootargs 'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait';fi; ext4load mmc ${devnum}:2 ${kernel_addr_r} ${bootdir}/${kernel_image}; ext4load mmc ${devnum}:2 ${fdt_addr_r} ${bootdir}/${devicetree_image}; bootm ${kernel_addr_r} - ${fdt_addr_r}; run scan_dev_for_boot_part2; fiKernel参数传递Kernel参数传递指的是在启动内核时,通过特定机制将配置参数或启动选项传递给内核,以控制其初始化行为、硬件配置、运行模式等。评估板默认参数如下。bootargs 'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk0p2rw rootfstype=ext4 rootwait'参数解析:

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    38

    文章

    4514

    浏览量

    227631
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217989
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于 DR1M90Linux-RT 内核开发:从编译配置到 GPIO / 按键应用实现(1

    ,及 rt_gpio_ctrl、rt_input 应用案例。含实操命令与测试方法,适配指定硬件,帮助开发者完成 Linux-RT 系统开发与优化,满足 DR1M90 产品实时性应用需求
    的头像 发表于 12-02 10:38 270次阅读
    基于 <b class='flag-5'>DR1M90</b> 的 <b class='flag-5'>Linux</b>-RT 内核<b class='flag-5'>开发</b>:从编译配置到 GPIO / 按键应用实现(<b class='flag-5'>1</b>)

    基于DR1M90 FPSoCLinux系统流程开发指南(4)

    本手册由创龙科技研发,针对路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U
    的头像 发表于 11-30 15:46 1766次阅读
    基于<b class='flag-5'>安</b><b class='flag-5'>路</b><b class='flag-5'>DR1M90</b> <b class='flag-5'>FPSoC</b>的<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>开发指南</b>(4)

    基于DR1M90 FPSoCLinux 系统流程开发指南(3)

    本手册由创龙科技研发,针对路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U
    的头像 发表于 11-26 17:01 136次阅读
    基于<b class='flag-5'>安</b><b class='flag-5'>路</b><b class='flag-5'>DR1M90</b> <b class='flag-5'>FPSoC</b> 的<b class='flag-5'>Linux</b> <b class='flag-5'>系统</b><b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>开发指南</b>(3)

    基于DR1M90 FPSoCLinux 系统流程开发指南1

    本手册由创龙科技研发,针对路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U
    的头像 发表于 11-25 14:09 200次阅读
    基于<b class='flag-5'>安</b><b class='flag-5'>路</b><b class='flag-5'>DR1M90</b> <b class='flag-5'>FPSoC</b> 的<b class='flag-5'>Linux</b> <b class='flag-5'>系统</b><b class='flag-5'>全</b><b class='flag-5'>流程</b><b class='flag-5'>开发指南</b>(<b class='flag-5'>1</b>)

    一步步完成安路飞龙 DR1M90 Linux 系统固化:启动卡制作 + eMMC 固化

    本手册由创龙科技研发,针对路飞龙 DR1M90,详述 Linux 系统启动卡制作(含工具包使用、PV 工具安装等)与 eMMC 固化步骤,说明启动卡和 eMMC 分区结构,提供 eM
    的头像 发表于 11-21 10:48 5123次阅读
    一步步完成安路飞龙 <b class='flag-5'>DR1M90</b> <b class='flag-5'>Linux</b> <b class='flag-5'>系统</b>固化:启动卡制作 + eMMC 固化

    DR1M90评估板:从基础外设到通信模块测试指南

    本手册由创龙科技研发,针对路飞龙 DR1M90 评估板,详述 Linux 系统下功能测试流程。含系统
    的头像 发表于 11-20 15:26 573次阅读
    <b class='flag-5'>安</b><b class='flag-5'>路</b><b class='flag-5'>DR1M90</b>评估板:从基础外设到通信模块测试<b class='flag-5'>指南</b>

    创龙科技DR1M90工业评估板的关键优势

    科技生态合作伙伴创龙科技正式推出了基于科技产品DR1M90工业核心板,共同助力国产FPGA技术的推广和创新应用。
    的头像 发表于 08-18 16:20 1024次阅读

    【米尔-MYD-YM90X 创意秀】点灯也是入门绝活

    非常感谢米尔电子举办的这次米尔-路飞龙派创意秀活动,我将分享我的国产FPGA开发心得,也就是本文得主角:米尔-
    发表于 08-10 22:10

    搭载ARM,NPU,FPGA三种核心的开发板—米尔DR1M90飞龙派

    板上市,是A股首家专注于FPGA业务的上市公司。 YM90X开发板用的就是的SALDRAGON1(飞龙
    发表于 06-13 17:02

    基于米尔路飞龙派FPGA FPSoC+开发环境搭建以及镜像烧录

    的工作目录中。 2、镜像编译和烧录 完成工具链的安装后,参考《MYD-YM90X Linux 软件开发指南.pdf》中的第四章《构建Linux
    发表于 05-30 22:46

    强强联手!米尔×IDH合作共筑FPGA新生态

    X核心板及开发板‌已正式发布,基于路飞龙DR1M90芯片,支持MIPI、LVDS等高速接口及硬件级NPU加速,可满足工业视觉、智能电网等场景的实时控制需求‌。米尔同步推出配套开发板及
    发表于 04-27 16:43

    科技DR1FPSoC多路以太网扩展方案

    随着物联网、工业4.0及汽车电子等领域的快速发展,对嵌入式系统的网络通信能力提出了更高要求。科技,作为国内领先的FPGA及FPSoC解决方案提供商,现推出基于
    的头像 发表于 04-03 09:10 815次阅读
    <b class='flag-5'>安</b><b class='flag-5'>路</b>科技<b class='flag-5'>DR1FPSoC</b>多路以太网扩展方案

    双目视觉处理系统开发实例-基于米尔国产DR1M90开发

    ,底板,子卡和线缆搭建硬件系统(使用米尔基于路飞龙DR1M90开发板) 显示测试 实测双目显示清晰,无卡帧,闪屏。图四 输出显示效果 系统
    发表于 02-21 14:20

    米尔-路飞龙DR1M90 -国产FPGA核心板开发

    MYC-YM90X核心板及开发路飞龙DR1M90 ,国产FPGA芯选择最新一代FPSOC工业级64位MPU,
    发表于 01-15 14:57 3次下载

    米尔国产FPGA SoC芯选择,路飞龙DR1M90核心板重磅发布

    工业级FPGA FPSoC——发布MYC-YM90X SOM模组及评估套件。该产品采用路飞龙DR1M90,95K LEs 可编程逻辑,片上集成 64位
    发表于 01-10 14:32