ZYNQ
文章平均质量分 86
快跑bug来啦
这个作者很懒,什么都没留下…
展开
-
zynq程序固化补充篇: 不切换启动模式强制烧写
问题描述 使用SDK2018.2第一次进行烧写 Flash,在qspi模式下会报错,只有切换至jtag模式下才可以进行烧录,后续的再次烧录不会出现类似问题。但是调试的时候必须切回jtag模式(将BOOT MODE 5拉低才可以调试) 2017.2等版本时不会存在类似问题 硬件设计的更改在很多时候终归没有软件的更改灵活,有没有一种办法可以在不修改启动模式的情况下通过软件的修改强制烧写进去呢?解决思路 如图为Zynq BOOT MODE配置,MIO[5:3]为Boot Devices设置为1原创 2022-02-16 15:15:23 · 3812 阅读 · 1 评论 -
国产之路:复旦微zynq调试笔记2--PL网口
复旦微FMQL PL侧网口踩过的坑原创 2021-12-31 10:40:04 · 5317 阅读 · 4 评论 -
国产之路:复旦微FMQL调试笔记1:PS网口
调试了一段时间,浅谈复旦微和xilinx之间的一点区别原创 2021-12-21 13:48:16 · 4573 阅读 · 1 评论 -
ZYNQ裸板:LHB155304-RT篇
前言 1553总线是一种指令/响应式串行总线标准,除了作为美军标在国外广泛应用于军用飞机坦克、船舶、卫星、导弹等领域,在国内已得到了广泛的应用。抗干扰能力强实时性好,且拥有着双冗余备份设计,数据传输极为可靠。就我个人认知来看,常见的实现形式一种是通过专用的接口协议芯片,相对比较简单集成度高;另一种是IP核,非常考验逻辑和软件设计的功底。此次工程选用了前者,LHB15530接口芯片,在不改变原有传输方式的前提下,突破了原有的1Mb/s的传输速率,可达4Mb/s,也能满足绝大部分应用场景。一.工作原理原创 2021-02-09 15:50:16 · 2794 阅读 · 13 评论 -
ZYNQ裸板:AXIDMA篇(简单模式)
前言 DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存,而不需中央处理器( CPU)介入处理。 DMA 是一种快速的数据传送方式, 通常用来传送数据量较多的数据块 使用 DMA时, CPU 向 DMA 控制器发出一个存储传输请求, 这样当 DMA 控制器在传输的时候, CPU 执行其它操作,传输操作完成时 DMA 以中断的方式通知 CPU。 为了发起传输事务, DMA 控制器必须得到以下原创 2021-02-09 14:26:11 · 3470 阅读 · 1 评论 -
ZYNQ裸板:BRAM篇
前言 在 ZYNQ SOC 开发过程中, PL 和 PS 之间经常需要做数据交互。对于传输速度要求较高、数据量大、地址连续的场合,可以通过 AXI DMA 来完成。而对于数据量较少、地址不连续、长度不规则的情况,此时 AXIDMA 便不再适用了。针对这种情况,可以通过 BRAM 来进行数据的交互。(还不是因为DMA麻烦一点才先写这个) Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫BLOCK RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有14原创 2021-02-09 14:05:02 · 5291 阅读 · 0 评论 -
ZYNQ裸板:DDR篇
前言 DDR是zynq的内存又可以叫做主存。是CPU能直接寻址的存储空间,没有DDR的话,运行内存只有很小的内部RAM,软件大小受限,也几乎没法跑操作系统。作为下一篇AXIDMA的基础知识提前做个准备,内容很简单这里就简单做一个读写测试,也可以当做验证下DDR是否都可以正常访问 还是找到我们的老朋友"xparameters_ps.h"可以看到如下代码: 这就是DDR的基址和偏移了也就是说1GB的内存, 关于DDR的详细描述在芯片手册第十章10.6部分有详细的DDR编程介绍,但是呢按照现在原创 2021-02-09 13:55:59 · 6338 阅读 · 4 评论 -
ZYNQ裸板:中断篇
前言 中断对于单片机过来的我们来说,相对也算比较熟悉了,还是严谨一点从头开始说吧。中断是什么?是一种当满足要求的突发事件发生时通知处理器进行处理的信号。中断可以由硬件处理单元和外部设备产生,也可以由软件本身产生。对硬件来说,中断信号是一个由某个处理单元产生的异步信号,用来引起处理器的注意。对软件来说,中断还是一种异步事件,用来通知处理器需要改变代码的执行,当然,轮询所产生的中断的过程是同步的。 当处理器收到中断,它会停下当前正在做的任务,然后跳转到需要处理的地方去。这和轮询的方式是相反的,轮询是由软原创 2021-02-09 13:46:24 · 2725 阅读 · 0 评论 -
ZYNQ裸板:串口篇
前言 我们在使用 PS 的时候,通常会添加 UART 控制器,用于打印信息和调试代码。除此之外, PS 在和外部设备通信时,也会经常使用串口进行通信。先从UART控制器开始讲起吧,从简单的测试再到工程实例。UART 控制器介绍 UART 控制器是一个全双工异步收发控制器, ZYNQ 内部包含两个 UART 控制器, UART0 和 UART1。每一个 UART 控制器支持可编程的波特率发生器、 64 字节的接收 FIFO 和发送 FIFO、产生中断、 RXD 和TXD 信号的环回模式设置以及可原创 2021-02-09 11:06:12 · 8218 阅读 · 4 评论 -
ZYNQ裸板:IO篇
前言 ZYNQ PS 中包含一组丰富的外设,如常用的 UART 控制器、 I2C控制器,CAN 控制器以及 GPIO 等等。他们提供了各种工业标准的接口,用于和外部设备进行通信。 其中 GPIO 外设作为最基本的一种外设也是我从单片机过度来最熟悉的了,一般用于控制一些简单的外设,如LED 和蜂鸣器,此时 GPIO用作输出;也可以用于观测一些简单外设的状态,如按键,此时 GPIO用作输入。在实际的项目工程中,也常常需要软件复位操作,或者作为使能位,甚至还能作为中断用(想不到吧惊不惊喜。中断控制器16个中原创 2021-02-08 17:56:40 · 1630 阅读 · 0 评论 -
ZYNQ裸板:程序固化篇
前言 一般的调试中我们都是通过 JTAG 接口将 FPGA 配置文件和应用程序下载到 ZYNQ 器件中。同样的,我们也可以将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序( Boot Loader) 的参与。 Boot Loader 会加载 FPGA 配置文件,以及运行在 ARM 中的软件应用。好吧下面又要开始大段摘抄原子的开发手册了(感谢原子): 对了很重要的一点:在官方的的fsbl工程中是有调试开关的,在src/fsbl_debug.h中增加FSBL_原创 2021-02-09 14:41:07 · 4358 阅读 · 1 评论