精华内容
下载资源
问答
  • zynq Linux程序开发

    千次阅读 2019-02-27 13:00:30
    开发环境:vivado 2018.2、PetaLinux 2018.2 程序框架: 具体步骤: 1. 打开vivado 2018.2软件 2. 点击Create Project 3. 输入工程名和工程路径 (注意:工程路径中不要有空格,否则后续SDK会无法导入...

    开发环境:vivado 2018.2、PetaLinux 2018.2

    程序框架

    具体步骤:

    1. 打开vivado 2018.2软件

    2. 点击Create Project

    3. 输入工程名和工程路径

    (注意:工程路径中不要有空格,否则后续SDK会无法导入硬件描述文件

    4. 选择RTL工程,下方选项不勾选。

    5. 选择Verilog语言,不添加文件,一直点击Next

    6. 直接点击boards,选择对应的开发板

    7. 打开一个新项目project_led

    8. 创建一个block Design ,在Flow Navigator区域展开IP INTEGRATOR,选择create Block Design,输入块的名称system_1。

    9. 工作域将会打开Diagram的图表画布,我们将在空白区域像画画一样构建自己的系统。这里操作的最小单位为IP核,xilinx提供的免费IP核可以直接添加使用,用户也可以自定义IP核。

    10. 点击空白画布中间的+号来添加IP核(或者在空白板上右键点击Add IP),在search中输入zynq ,在搜索结果中双击ZYNQ7 Processing  system添加PS端到IP核画布

    11. 要使PS模块在zedboard中工作,还要对其进行配置,鼠标左键双击PS模块,即可打开编辑IP核的界面。

    12. 点击Presets -> Zedboard ,使用vivado对zedboard提供的默认配置,点击ok。(此处用户可根据自己的硬件自行配置)

    13. 单击DDR接口,出现笔状时右键,选择 Make External ,FIXED_IO使用同样办法

    14. 添加AXI GPIO IP核到系统中。右键单击空白处添加IP核,搜索栏输入GPIO,双击AXI GPIO 添加完成

    15. 然后单击run connection automation 选择/axi_gpio_o/s_AXI,单击ok有两个新IP核被自动添加了。

    16. 然后再单击run connection automation,Select Board Interface下选择leds_8bits.
    这样就基本配置完成,IP Integrator会自动为AXI总线上的逻辑设备分配地址空间,这样ARM就可以寻址到该设备。如图:

    17. 为AXI GPIO分配64k的地址空间,基地址为0x41200000,保存工程。在Diagram窗口上方工具栏中,选择Validate Design 按钮,检查设计有效性

    18. 至此,IP子系统我们已经设计完成了。下面我们将设计完成Block Design生成可以综合的HDL设计文件。 在Sources 窗口,右键zynq_system_1 选择Generate Output Products

    19. 单击Generate,生成HDL源文件和相应端口的约束文件。再右击zynq_system_1,选择Create HDL Wrapper选型,单击ok。这里vivado为IP子系统生成了一个顶层文件,使我们可以对系统进行综合、实现并生成比特流。

    20. 在Flow Navigator 中展开Program and debug ,单击generate Bitstream。单击ok。此时vivado会生成一个硬件.bit文件,产生的bit文件位于:C:\Users\DELL\vivado_workspace\project_led\project_led.runs\impl_1中

     

    21. 这一过程将持续很长时间,当完成后,会弹出一个对话框,选择open Implementation Design

    22. 将设计导入SDK,然后就可以对ARM编程。选中Sources栏中的zynq_system_1.bd,执行File->Export->Export Hardware 命令,弹出的对话框确保复选按钮被选上。会生成一个project_led.sdk文件夹 (产生的硬件描述文件system_1_wrapper.hdf文件位于C:\Users\DELL\vivado_workspace\project_led\project_led.sdk)

     

    23. 打开VMware虚拟机,运行Ubuntu 16.04.3操作系统。

    24. 定位目录:先在shell中找一个准备存放工程的地方,(我的是/home/admin-hjj/program),命令行

    cd /home/admin-hjj/program/

    25. 定位编译链,启动PetaLinux:根据安装petalinux的路径:

    source /home/admin-hjj/PetaLinux/settings.sh

    26. 创建PetaLinux工程:将在PRO目录下面,创建一个工程:

    petalinux-create --type project --template zynq --name h2_petalinux_test

    ° zynqMP (for UltraScale+ MPSoC)
    ° zynq (for Zynq)
    ° microblaze (for MicroBlaze)

    h2_petalinux_test是工程名,该命令会自动在program文件夹里创建h2_petalinux_test文件夹。

    27. 引用刚才输出的硬件描述文件:把之前导出的硬件描述文件design_ZYNQ_wrapper.hdf拷贝到虚拟机中的h2_petalinux_test工程文件夹下,然后在shell中输入:

    cd h2_petalinux_test         //进入到petalinux工程目录下

    petalinux-config --get-hw-description=/home/admin-hjj/program/h2_petalinux_test

    注意:此命令中不可随意添加空格,要先进入petalinux工程目录下再执行此命令。

    会进入一个配置界面,在里面我们可以配置一些系统参数,主要的配置包括:启动方式,启动存储器分区表,启动文件名称等等,本文暂不对其修改(默认是从SD卡中启动),然后等待其配置(时间较长)

    *** End of the configuration.

    *** Execute 'make' to start the build or try 'make help'.

    [INFO] sourcing bitbake

    [INFO] generating plnxtool conf

    [INFO] generating meta-plnx-generated layer

    [INFO] generating machine configuration

    [INFO] generating bbappends for project . This may take time !

    [INFO] generating u-boot configuration files                                                                              

    [INFO] generating kernel configuration files

    [INFO] generating kconfig for Rootfs

    [INFO] oldconfig rootfs

    [INFO] generating petalinux-user-image.bb

    28. 获取文件夹权限 :在上一步完成后,输入命令sudo chmod -R 777 /home/hlf获取文件夹权限(工程文件夹和petalinux的安装文件夹),否则编译的时候,会发生错误。

    sudo chmod -R 777 /home/admin-hjj/program/h2_petalinux_test

           目前为止,在shell中的命令既可以以超级用户su的身份运行也可以以普通用户的方式运行(建议全部都用普通用户的方式,免得切换),但是等下编译u-boot和kernel以及rootfs的时候,必须以普通用户的身份运行命令行,否则会报错的。

    29. 编译u-boot

           注意:到此处的时候,不能再用超级用户了,要切换到普通用户下,之后的所有操作都在普通用户下
    普通用户的shell中输入

    petalinux-config -c u-boot

    (依然要事先输入source /home/hlf/mnt/petalinux/settings.sh命令),然后等待GUI出来,这里暂时不改动啥,直接save(save为u-boot.config,名字随便取但不要留空),然后继续等(新建工程要等的时间还是比较长的,后来就会好的。

    30. 编译kernel

    petalinux-config -c kernel

    31. 编译文件系统

    petalinux-config -c rootfs

    32. 编译工程

    petalinux-build

    会自动在images/linux生成zynq_fsbl.elf文件。

    33. 生成BOOT.BIN

    把shell定位到image/linux目录下,同时将vivado中生成的.bit文件拷贝至image/linux,执行命令:

    petalinux-package --boot --format BIN --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot

    在文件夹下就可以发现,多了一个BOOT.BIN

    展开全文
  • course_s4_ALINX_ZYNQ开发平台Linux应用教程V1.03,共九章内容,第一章QT,第二章OpenCV,,第三章双摄像头模块OpenCV显示,第四章触摸屏模块应用,第五章AXI DMA读写测试,第六章 基于DMA的ADC波形显示(AN926),第七章...
  • 学习zynq,并非一朝一夕之事...zynq开发,主要包括两部分:裸机使用和在arm上搭载Linux系统。 首先是裸机使用,裸机使用可分为三个阶段。1第一阶段熟悉VIVADO,熟悉SDK,学会新建工程,掌握基本调试方法和工具的使用...

            学习zynq,并非一朝一夕之事,欲速则不达,在学习zynq之前,首先做好坚持下去的决心,其次制定一份适合自己的zynq开发计划,本期帮大家制定一份zynq的开发计划。zynq开发,主要包括两部分:裸机使用和在arm上搭载Linux系统。

            首先是裸机使用,裸机使用可分为三个阶段。

    1

    第一阶段

    1. 熟悉VIVADO,熟悉SDK,学会新建工程,掌握基本调试方法和工具的使用,掌握在SDK端生成固化程序并进行固化操作;

    2. 熟悉GPIO的应用,熟悉BSP板级开发包的API函数,通过该API函数调试GPIO口的使用;

    3. 熟悉ZYNQ的中断机制,通过BSP的API函数,调试CPU私有定时器外设。

    2

    第二阶段

            通过第一阶段2和3的调试,基本掌握板级开发包的使用套路,方便以后在使用到相关外设的时候能够快速掌握和使用。

    1. 数据ZYNQ上的PL与PS端的交互,通过增加一个PL端GPIO的IP,然后设计使用PS端核心去控制PL端GPIO输出操作实现;

    2. 学习QSPI对FLASH的编程,掌握程序如何写入到FLASH,如何从FLASH中搬运到内存;

    3. 分析ZYNQ的启动相关流程,解析启动文件格式,分析启动过程中核心对内存的需求和程序的存放和使用。

    3

    第三阶段

            通过第二阶段2和3的学习,分析ZYNQ的加载流程,设计一个合适的远程加载策略;

    1. 学习ZYNQ中的DMA的使用,掌握内存在AXI总线中如何实行搬运;

    2. 学习ZYNQ中的以太网的使用,通过学习LWIP协议栈如何移植和如何使用;(有必要的话可以使用网卡进行远程加载)

    3. 学习ZYNQ中的VDMA的使用,为后续图像处理项目做技术储备;

    4. 掌握裸机上的AMP双核交互,设计双核交互流程;

    5. 掌握裸机上的内存管理和内存分配,建立良好的内存使用分配策略;

    6. 建立裸机上的界面设计,为后续的需要屏幕GUI的项目做技术储备。

            到这里就可以开始学习在arm上搭载Linux系统了,大家加油,后期盟主会按照今天的计划陆续更新学习内容。

    记得扫码关注哦!!!

    b628870fb08a43795faa14cc4cbe9008.pngb628870fb08a43795faa14cc4cbe9008.png

    更多精彩内容,请看下面链接:

    5分钟了解FPGA之Xilinx7

    modelsim中代码覆盖率使用详解

    增量编译(Incremental Compile)提高Vivado编译效率

    ModelSim  仿真实例入门之(三)--时序仿真

    ModelSim 仿真软件介绍(二)

    ModelSim仿真软件介绍(一)

    FPGA数字信号处理(二)数字混频

    【FPGA信号处理一】5分钟学会FIR 滤波器设计

    在Vivado中,您使用过TCL吗?

    编写可综合的FPGA代码经验总结(二)

    【干货分享】编写可综合的FPGA代码经验总结(一)

    【干货分享】异步电路中的时钟同步处理方法

    【干货分享】同步电路分析---异步和同步电路的区别(二)

    【干货分享】Verilog中阻塞和非阻塞赋值金规

    【干货分享】同步电路的时序模型分析(一)

    【干货分享】同步复位和异步复位,您真搞明白了吗?

    【干货分享】Get到这些小技巧,FPGA设计将提高一个台阶

    Vivado中几种仿真模式比较

    67652e87e4c047b24c80a7e20c9ba8ad.png
    展开全文
  • ZYNQ开发笔记

    2018-01-09 17:07:31
    1、Linux编译  将zynq_zed_defconfig文件拷贝到arch/arm/configs目录下  make ARCH=arm xilinx_zynq_defconfig  make ARCH=arm menuconfig  make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- UIMAGE_...
    1、Linux编译
       将zynq_zed_defconfig文件拷贝到arch/arm/configs目录下
       make ARCH=arm xilinx_zynq_defconfig
       make ARCH=arm menuconfig
       make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- UIMAGE_LOADADDR=0x8000 uImage

    2、取消控制台登录
       a、将ramdisk.image挂载到/mnt目录下,修改inittab文件,添加no login
       b、将编译uboot时生成的tools目录下的mkimage拷贝到交叉编译器的bin目录中(相当于添加到环境变量中)
       c、mkimage -n 'uboot ext2 ramdisk' -A arm -O linux -T ramdisk -C gzip -d ramdisk.image uramdisk.image.gz

    3、根文件系统制作
       http://blog.csdn.net/asklw/article/details/52611594

    4、dtb转dts
       dtc -I dtb -O dts ../../arch/arm/boot/dts/imx6q-sabresd-ldo.dtb  > ./f.dts
    5、linux生成dtb文件
       make ARCH=arm dtbs
    6、u-boot编译
       make CROSS_COMPILE=arm-xilinx-linux-gnueabi- clean
       make CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_feima_defconfig
       make CROSS_COMPILE=arm-xilinx-linux-gnueabi-
    7、linux下查看SD卡文件系统类型
           sudo blkid
    8、SD卡格式化
       http://blog.sina.com.cn/s/blog_68e596750100jx9m.html
    9、 拷贝根文件系统
      mount /dev/sda2 /mnt/sdcard #挂载SD卡
      cp -ra /home/hxy/rootfs/* /mnt/sdcard #把根文件系统拷到SD卡
    10、VFS挂载失败原因
        &SD卡读写保护
        &bootargs参数添加rootwait,挂载之前等待设备初始化完成
    展开全文
  • 1.烧写Linux相关文件 将生成的uImage,device.dtb,fpga.bit以及uramdisk.image.gz文件烧写到单板的flash当中,步骤如下: 以下是flash的分区规划 BOOT.bin 0x0~0xe0000 Env.txt ...

    1.烧写Linux相关文件

    将生成的uImage,device.dtb,fpga.bit以及uramdisk.image.gz文件烧写到单板的flash当中,步骤如下:

    以下是flash的分区规划

    BOOT.bin

    0x0~0xe0000

    Env.txt

    0xe0000~0x100000

    uImage

    0x100000~0x500000

    device.dtb

    0x500000~0x580000

    uramdisk.image.gz

    0x580000~0xa00000

    fpga.bit

    0xa00000~0x1000000

     

    • 单板配置为QSPI启动
    • 上电后u-boot执行,进入u-boot开发命令行模式
    • 打开tftp工具,选择烧写文件的位置作为上传路径
    • setenv serverip 192.168.0.100 设置主机IP地址,并在windows网卡适配器中添加静态以太网IP地址192.168.0.100
    • setenv ipaddr 192.168.0.5 设置单板ip
    • tftpboot 0x1000000 uImage 传送 uImage文件到DDR 0x1000000地址处
    • sf probe 0 50000000 0 探测spi flash器件
    • sf erase 0x100000 0x400000 擦写flash地址从0x100000开始,大小0x400000
    • sf write 0x1000000 0x100000 0x3fffff 将内存DDR中0x1000000地址文件烧写到0x100000处,烧写文件大小为0x3fffff
    • tftpboot 0x1000000 device.dtb传送 device.dtb文件到DDR 0x1000000地址处
    • sf erase 0x500000 0x80000 擦写flash地址从0x500000开始,大小0x80000
    • sf write 0x1000000 0x500000 0x7ffff 将内存DDR中0x1000000地址文件烧写到0x500000处,烧写文件大小为0x7ffff
    • tftpboot 0x1000000 uramdisk.image.gz 传送 uramdisk.image.gz文件到DDR 0x1000000地址处
    • sf erase 0x580000 0x480000 擦写flash地址从0x580000开始,大小0x480000
    • sf write 0x1000000 0x580000 0x47ffff 将内存DDR中0x1000000地址文件烧写到0x580000处,烧写文件大小为0x47ffff
    • tftpboot 0x1000000 fpga.bit传送 fpga.bit文件到DDR 0x1000000地址处
    • sf erase 0xa00000 0x600000 擦写flash地址从0xa00000开始,大小0x600000
    • sf write 0x1000000 0xa00000 0x5fffff 将内存DDR中0x1000000地址文件烧写到0xa00000处,烧写文件大小为0x5fffff
    • tftpboot 0x1000000 BOOT.bin传送 BOOT.bin文件到DDR 0x1000000地址处
    • sf erase 0x0 0xe0000 擦写flash地址从0x0开始,大小0xe0000
    • sf write 0x1000000 0x0 0xdffff 将内存DDR中0x1000000地址文件烧写到0x0处,烧写文件大小为0xdffff

    2.系统上电启动部署

    Linux内核及部署步骤如下

    • setenv serverip 192.168.0.100 设置主机ip
    • setenv ipaddr 192.168.0.2     设置单板ip
    • setenv bootdelay=3           设置启动延时
    • setenv bootargs console=ttyPS0,115200 maxcpus=1 root=/dev/ram rw earlyprintk                    设置内核启动参数
    • setenv bootcmd ‘sf probe 0 50000000 0 && sf read 0x1000000 0xa00000 0x5fffff && fpga loadb 0 0x1000000 0x5fffff && sf read 0x2000000 0x500000 0x7ffff && sf read 0x2080000 0x100000 0x3fffff && sf read 0x4000000 0x580000 0x47ffff &&bootm 0x20800000 0x40000000 0x2000000’
    •  

    saveenv  保存参数

    • boot     启动,可以看见内核启动打印信息,出现Linux shell的命令调试符
    展开全文
  • 基于ZYNQ linux CAN通讯开发。vivado端的PS-PL配置,sdk端例程
  • 背景: 为了优化socket TCP的传输速率,使代码更具有移植性,遂产生使用nanomsg代替socket TCP的想法。 nanomsg是一个socket library,它提供了几种常见的通信模式,网络层... 本文是在为了开发Xilinx Zynq一款...
  • Xilinx Zynq开发教程

    千次阅读 2020-02-17 22:44:01
    首先开发arm cpu的工具有两种,如果不跑linux操作系统,那么就用vitis就够了,如果跑linux操作系统,那么则需要xilinx的petalinux工具,vitis支持linux和windows两种操作系统,但是petalinux只支持linux操作系统。...
  • Linux + FreeRTOS 1.创建FreeRTOS工程 使用ps7_cortexa9_1创建FreeRTOS工程,示例如下 修改main.c 去掉xil_printf相关的调用,根据FPGA工程师提供的寄存器地址和bit文件操作LED周期闪烁 修改lscript.ld文件地址...
  • ZYNQ 7000 Linux工程开发

    2019-12-11 17:52:49
    虚拟机软件版本:VMware14.1.1 Linux系统版本:ubuntu-16.04.6 petalinux版本:petalinux-v2019.2 vivado版本:Vivado 2019.2
  • zynq linux 开发环境搭建

    千次阅读 2015-11-11 13:57:13
    1、安装基本开发工具:sudo apt-get install build-essential ,sudo apt-get install libncurses5-dev; 2、在安装交叉编译工具之前,输入命令“sudo dpkg-reconfigure dash”,选择“否”,退出; 3、运行“xilinx...
  • 《领航者ZYNQLinux驱动开发指南_V1.3.pdf》非常好的正点原子zynqlinux驱动资料,值得拥有,希望对你的工作学习有所帮助。
  • 该ppt讲述了zynq的普通开发流程,包括vivado block设计,sdk设计,linux内核裁剪等
  • 领航者ZYNQLinux开发指南 V1.2 本书我们讲解Linux,而Linux开发可以分为底层驱动开发和应用开发,本书以领航者ZYNQ为硬件平台,从实现到驱动,从底层到应用的讲解linux开发
  • 《领航者ZYNQLinux开发指南》,非常详实的zynqlinux开发资料,希望对你的工作学习有所帮助。
  • 菜鸟搭建zynq linux开发平台

    千次阅读 2017-10-19 10:54:29
    本人机械出生,毕业后先做了两年FPGA,然后做IC开发,所以对linux一窍不通。无奈来了一家小公司,所有的环境都要自己搭,这里将自己的坑全部献上,希望能提供一些借鉴 第一步: 安装虚拟机  1、注意事项  linux...
  • HLS自定义IP核在linux下的调用-以adder为例 使用HLS生成自定义IP核 注意:这里将输出输出参数均指定为AXI_Lite接口,并指定return以创建模块的中断端口。 void adder(int a, int b, int& c) { #pragma HLS ...
  • ZYNQ Linux开发——以太网配置

    千次阅读 2017-08-28 20:07:17
    开发环境:Widows下Vivado 2016.2 、 SDK2016.2 、 Linux机器:debin 材料:Xilinx Github中的U-BOOT、Kernel、Ramdisk、Config_patch等在进行NFS启动时配置目标板网络遇到问题:执行ifconfig -a 命令没有出现eht0...
  • 虚拟机软件版本:VMware14.1.1 Linux系统版本:ubuntu-...此工程是在《ZYNQ 7000 Linux工程开发》基础上进行的。 一、创建helloworld驱动 进入上次建立好的linux工程中,命令如下: cd test_project 创建hellowor...
  • Linux + RT-Thread 1.U-boot、Linux设备树修改 memory { device_type = "memory"; reg = <0x0 0x30000000>; };/*修改CPU0地址空间范围*/ 2.Linux内核启动参数,修改设置为SMP,CPU个...
  • ZynqLinux下的开发

    千次阅读 2018-07-02 11:15:42
    ZynqLinux下的开发转载2017-03-28 20:26:45转自:http://blog.sina.com.cn/s/blog_b35897360102x5lu.html注:在此介绍Zynq Linux开发所步骤,不涉及具体操作,只针对一些基本概念1.设置交叉编译工具 交叉编译通俗...
  • 移植LinuxZYNQ

    千次阅读 2019-09-06 19:13:25
    ZYNQ移植Linux博客说明开发环境移植u-boot 博客说明 撰写日期 2019.09.06 完稿日期 2019.09.09 最近维护 暂无 本文作者 multimicro 联系方式 multimicro@qq.com 资料链接 本文无附件资料 GitHub ...
  • 基于ZYNQ硬件的LINUX 开发感谢您使用米联客开发板团队开发ZYNQ 开发板,以及配套教程。 本教程将对之前编写的《ZYNQ 修炼秘籍》-LINUX 部分内容做出改进, 并且增加新的课程内容。本教程不仅仅适合用于米联客...
  • 1.Linux内核预编译 开发者可以从xilinx的github源码库中下载各个版本的Linux内核,这里选用评估板提供的版本,将linux-xlnx-xilinx-v2015.4.zip压缩包通过虚拟机与主机共享方式拷贝至虚拟机共享目录中,并右键提取...
  • 这个系列包含了我一步一步让ZYNQ从裸跑到自己的小操作系统,到LinuxC,LinuxDriver在到PYNQ的过程。其中涵盖了许多碎知识,包括AXI总线、C语言内存管理、linux的移植等等,在此也对其做一个整理。 首先,ZYNQ是一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 447
精华内容 178
关键字:

linuxzynq开发

linux 订阅