系统实现
2.1 嵌入式 Linux 移植
PS 需要从非易失性存储器中启动嵌入式 Linux系统和应用程序 ( APP )。ZYNQ 系列有 JTAG 、 SD 卡、QSPI Flash 和 NAND Flash 4 种启动方式。因为 SD 卡接插件难以满足可靠性要求, 且 ZYNQ 不支持 eMMC作为主启动设备,所以本系统采用 QSPI Flash 启动挂载 eMMC 作为外部存储的方案。
Xilinx 提供了 Linux 移植工具 petalinux ,可以很方便实现 Linux 的配置、裁剪。移植过程如下:
① 生成 bit 流文件。使用硬件描述语言完成 PL 部分逻辑功能, 并根据硬件平台管脚使用情况对 ZYNQIP 核进行配置,编译整个工程生成 bit 流文件。
② 导入 bit 流文件。在 Linux 虚拟机中依照 ZYNQLinux 模板生成工程,将 bit 流文件作为硬件描述信息导入工程, Linux 通过 bit 流文件实现部分自动设备树文件配置。
③Linux 裁剪与定制。使用 petalinux 完成内核定制、设备树文件配置。本系统使用 SPI Flash 加载系统,使用 U-boot 作为第二阶段引导文件( SSBL ),将 boot 、U-boot 和 kernel 的存储位置设置为 flash ;启用安全数字输入输出 ( SDIO ) 控制器和以太网控制器以使用eMMC 和以太网;在设备树文件中增加 eMMC 、以太网等硬件的物理地址;修改设备树文件,将 DDR3 的高256 MB 地址空间设置为保留以避免 Linux 系统破坏缓冲区数据;加入自启动脚本文件实现 Linux 系统启动后自动运行应用程序。
④ 打包 bin 文件。使用 petalinux 将 PL 部分配置文件 bit 流文件、 kernel 文件、第一阶段引导文件( FS-BL)和U-boot 打包生成 BOOT.bin 文件。
⑤ 固化 Flash 。将生成的 BOOT.bin 文件和 petal-inux 工具生成的 f***l.elf 文件烧写进 Flash 中, 实现上电自启动嵌入式 Linux 操作系统。
嵌入式 Linux 系统启动时通过运行 BootROM 代码从外部存储器加载 FSBL 加载到内存,根据 FSBL 中bit 文 件 对 PS 、 PL 进 行 配 置 后 加 载 SSBL 到 内 存 ,petalinux 使用 U-boot 作为 SSBL 。U-boot 完成硬件配置初始化、内存空间映射后引导 Linux 内核到内存,通过设备树文件将硬件设备信息传递给内核后将控制权移交 Linux 内核, Linux 初始化硬件设备、 加载文件系统后完成启动。
2.2 PC 上位机
PC 上位机使用网线连接数据传输系统,异步 232串口连接信号源。上位机实现用户和界面交互,可设置串口号、传输数据包大小和文件大小。系统连接后,PC 上位机发送查询段地址指令建立 TCP 客户端连接数据传输系统,同时信号源会返回数据列表,然后选择兴趣数据段和文件存储路径后发送传输指令,最后接收数据传输系统的 TCP 数据并记录到本地磁盘。
系统实现
2.1 嵌入式 Linux 移植
PS 需要从非易失性存储器中启动嵌入式 Linux系统和应用程序 ( APP )。ZYNQ 系列有 JTAG 、 SD 卡、QSPI Flash 和 NAND Flash 4 种启动方式。因为 SD 卡接插件难以满足可靠性要求, 且 ZYNQ 不支持 eMMC作为主启动设备,所以本系统采用 QSPI Flash 启动挂载 eMMC 作为外部存储的方案。
Xilinx 提供了 Linux 移植工具 petalinux ,可以很方便实现 Linux 的配置、裁剪。移植过程如下:
① 生成 bit 流文件。使用硬件描述语言完成 PL 部分逻辑功能, 并根据硬件平台管脚使用情况对 ZYNQIP 核进行配置,编译整个工程生成 bit 流文件。
② 导入 bit 流文件。在 Linux 虚拟机中依照 ZYNQLinux 模板生成工程,将 bit 流文件作为硬件描述信息导入工程, Linux 通过 bit 流文件实现部分自动设备树文件配置。
③Linux 裁剪与定制。使用 petalinux 完成内核定制、设备树文件配置。本系统使用 SPI Flash 加载系统,使用 U-boot 作为第二阶段引导文件( SSBL ),将 boot 、U-boot 和 kernel 的存储位置设置为 flash ;启用安全数字输入输出 ( SDIO ) 控制器和以太网控制器以使用eMMC 和以太网;在设备树文件中增加 eMMC 、以太网等硬件的物理地址;修改设备树文件,将 DDR3 的高256 MB 地址空间设置为保留以避免 Linux 系统破坏缓冲区数据;加入自启动脚本文件实现 Linux 系统启动后自动运行应用程序。
④ 打包 bin 文件。使用 petalinux 将 PL 部分配置文件 bit 流文件、 kernel 文件、第一阶段引导文件( FS-BL)和U-boot 打包生成 BOOT.bin 文件。
⑤ 固化 Flash 。将生成的 BOOT.bin 文件和 petal-inux 工具生成的 f***l.elf 文件烧写进 Flash 中, 实现上电自启动嵌入式 Linux 操作系统。
嵌入式 Linux 系统启动时通过运行 BootROM 代码从外部存储器加载 FSBL 加载到内存,根据 FSBL 中bit 文 件 对 PS 、 PL 进 行 配 置 后 加 载 SSBL 到 内 存 ,petalinux 使用 U-boot 作为 SSBL 。U-boot 完成硬件配置初始化、内存空间映射后引导 Linux 内核到内存,通过设备树文件将硬件设备信息传递给内核后将控制权移交 Linux 内核, Linux 初始化硬件设备、 加载文件系统后完成启动。
2.2 PC 上位机
PC 上位机使用网线连接数据传输系统,异步 232串口连接信号源。上位机实现用户和界面交互,可设置串口号、传输数据包大小和文件大小。系统连接后,PC 上位机发送查询段地址指令建立 TCP 客户端连接数据传输系统,同时信号源会返回数据列表,然后选择兴趣数据段和文件存储路径后发送传输指令,最后接收数据传输系统的 TCP 数据并记录到本地磁盘。
举报