0
点赞
收藏
分享

微信扫一扫

04-ZYNQ学习之FPGA+Linux开发的流程


  通过前面3节内容,我们知道了:

  Xilinx ZYNQ的内部结构PL端FPGA的开发过程ZYNQ启动过程及固化

  ?那么ZYNQ包含CortexTM-A9核,那么它的ARM资源应用主要就落在嵌入式linux上。ZYNQ的嵌入式Linux开发流程是本节介绍的重点。

  嵌入式linux底层开发主要工作是:

  bootloader

  内核文件系统

  内核和文件系统都是编译好或制作好的文件,一般固化在flash上等待uboot加载或内核挂载。所以上电要确保运行的ARM端程序就是uboot。

  u-boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:

  1)第一阶段的功能

  ? 硬件设备初始化

  ? 加载 u-boot 第二阶段代码到 RAM 空间

  ? 设置好栈,跳转到第二阶段代码入口

  2)第二阶段的功能

  ? 初始化本阶段使用的硬件设备

  ? 检测系统内存映射

  ? 将内核从 Flash 读读到 RAM 中

  ? 为内核设置启动参数

  ? 调用内核

  

04-ZYNQ学习之FPGA+Linux开发的流程_运维

  ? ? ? ?这是一个过程,主要是完成FPGA端资源的设计,同时完成ARM bootloader的开发,这样保证了上电后FPGA功能被正常配置,且uboot可以引导起后期的内核。最终就是完成boot.bin的开发。

  ? ? ? ?重点之一FPGA端资源的驱动及功能实现。完成后需要更新boot.bin。

  ? ? ? ?重点之一就是完成外设的驱动。此部分不需要重新编译boot.bin,只需要覆盖新开发好的内核即可。

  ? ? ? 完成FPGA功能设计后,主要就是完成ARM应用程序的设计以实现产品的开发。比如QT移植等。应用开发依赖于第3步的驱动及创建的设备节点。

  ? ? ? Xilinx为ZYNQ提供了很好的系统支持,比如uboot、内核代码等,所以ZYNQ开发的重点在于:

  FPGA逻辑资源的设计定制ARM端内核驱动FPGA与ARM的协同工作

举报

相关推荐

0 条评论