ZYNQ裸机开发
文章平均质量分 75
NoNoUnknow
这个作者很懒,什么都没留下…
展开
-
将文件以指定格式存储~BMP~C的实现~FAT32格式
指向接收写入字节数的 UINT 变量的指针。指向指定逻辑驱动器的以 null 结尾的字符串的指针。这个结构的长度是固定的,为14个字节。这个结构的长度也是固定的,为40个字节(LONG为32位整数)。指向要注册和清除的文件系统对象的指针。空指针取消注册已注册的文件系统对象。指向以 null 结尾的字符串的指针,该字符串指定要打开或创建的文件名。指定文件的访问类型和打开方法的模式标志。bw:指向变量的指针,返回写入的字节数。指向空白文件对象结构的指针。指向打开文件对象结构的指针。指向打开的文件对象的指针。原创 2024-01-24 22:56:32 · 963 阅读 · 0 评论 -
Zynq Uart中的事件
【代码】Zynq Uart中的事件。原创 2023-12-27 20:55:00 · 384 阅读 · 0 评论 -
Zynq SPI
事件:触发事件的时候启动,类似Uart中的相关事件函数。原创 2023-12-27 20:38:59 · 591 阅读 · 0 评论 -
Zynq中断与AMP~双核串口环回之通过BRAM实现PS与PL通信
实现思路:额外配置:通过PL配置计数器,向CPU0和CPU1发送硬中断。1.串口中断CPU0,在中断中设置接收设置好字长的数据,如果这些数据的数值符合约定的命令,则关闭硬中断,并将这部分数据存入AxiLite配置的Bram中,完成以后发送软中断中断CPU1。2.CPU1收到软中断后,读取指定的Bram数值,校验以后将其写入Bram2中,如果这里不做换回可以写入其他的。写完以后发送中断给CPU0。3.CPU0接收到中断,读取Bram2的数据,并且完成发送。原创 2023-10-19 21:14:41 · 229 阅读 · 0 评论 -
ZYNQ PS端的Cache问题
CacheFlush把Cache里的数据清空,将Cache内容推到DDR中;而Cache Invalidate表示当场宣布Cache内容无效,需要从DDR中重新加载数据,即把数据从DDR中拉到Cache中。可以禁用掉0x1F00 0000区域的Cache,以上是让CPU将直接访问DDR内存,读写都是直接的。这样显然会降低CPU性能,但简化了数据传输操作,属于极端的方法。这个操作在双核读取同一片区域来通信的操作中常用。以上是相对柔和的方法,使用。原创 2023-11-13 13:02:50 · 1030 阅读 · 0 评论 -
SDRAM学习与实现串口传图
总之只要阅读操作手册,按照时序来,完全不难!器件记录:小梅哥AC620上SDRAM:M12L2561616A-6TG2T其的存储空间为16M*16=256MB,第二行的数字则与其速度等级有关;其分为:4bank*16bit*4M 即:8192*512 = 2^13 * 2^9 = 2^22 = 4Mbank数目*数据位宽*存储深度HY57V281620F,所以其具备的是4bank*16bits*2M 即 2^12 * 2^9 = 2^21 = 2M。原创 2023-09-17 16:13:47 · 299 阅读 · 0 评论 -
使用Axi Lite接口访问寄存器列表作为缓冲区
AXI Interconnect互连内核将一个或多个 AXI 内存映射主设备连接到一个或多个内存映射从设备。原创 2023-10-18 21:53:20 · 584 阅读 · 0 评论 -
中断:Zynq Uart中断的流程和例程~UG585的CH.19
ug585 P595。原创 2023-10-18 19:53:11 · 1525 阅读 · 0 评论 -
Vitis导入自制IP导致无法构建Platform
【代码】Vitis导入自制IP导致无法构建Platform。原创 2023-10-15 21:04:00 · 560 阅读 · 0 评论 -
中断:PL硬中断,基地址,优先级。
1.编写RTL文件,设置中断的触发条件和频率,将其封装成IP;2.配置BD,为上述IP提供CLK和RST,注意敏感列表;3.配置BD内中断,分配中断号:PL终端号可选:#61 至 #68 和 #84 至 #914.启动Vitis,在C文件中绑定CPUID,并使能硬中断的中断号,连接,配置优先级和灵敏度类型。原创 2023-10-14 21:13:36 · 450 阅读 · 0 评论 -
中断:AMP 软中断的过程和GPIO中断差别
相较于GPIO中断,省去了对中断触发敏感类型的配置(软中断不可配),对中断管脚(Bank)的中断使能,对GPIO回调函数的设置(GPIO中断自己也可以省略这个步骤)。这是因为GPIO中断实际上是共享同一个中断号的,所以要使能,设置具体的管脚。原创 2023-10-10 16:58:40 · 100 阅读 · 0 评论 -
中断:利用GPIO中断实现的I2C温度显示器
【代码】利用GPIO中断实现的温度显示器。原创 2023-10-07 16:42:54 · 58 阅读 · 0 评论 -
中断:ZYNQ GPIO
将中断控制器中断处理程序连接到ARM 处理器中的硬件中断处理逻辑。我在新的例子中没有看到这个函数了。* @brief 该函数是一个通用 API,用于在所有支持的手臂上初始化异常处理程序 *处理器。对于 ARM Cortex-A53、Cortex-R5、* 和 Cortex-A9,异常处理程序正在静态初始化,并且该函数不执行任何操作。* 然而,它仍然存在以解决向后兼容性 * 问题(在早期版本的 BSP 中,此 API 用于 * 初始化异常处理程序)。/**return;原创 2023-10-06 18:08:36 · 749 阅读 · 0 评论 -
PS端GPIO配置和基本介绍
Xilinx PS GPIO 驱动程序。该驱动程序支持 Xilinx PS GPIO 控制器。GPIO 控制器支持以下功能:该驱动程序旨在独立于 RTOS 和处理器。任何对动态内存管理、线程或线程互斥、虚拟内存或高速缓存控制的需求都必须由该驱动程序之上的层来满足。该驱动程序支持上面列出的所有功能(如果适用)。原创 2023-10-04 21:21:27 · 277 阅读 · 0 评论 -
IIC控制器(2):PS端与EEPROM读写例程
本文主要做一些基本知识的补充和工程参考。写IIC需要注意的事情:1.查询芯片手册获得slave地址,以及寄存器地址(或者叫寄存器命令)。2.约定好每次读/写的数据长度。对于这类芯片而言,读取一般都使用了顺序读,即读完一个地址自动读下一个地址,所以约定好长度通过no ack来打断很重要。(SPI设备是通过停止输入时钟和拉高CS_N来打断的)原创 2023-10-04 15:05:51 · 452 阅读 · 0 评论 -
PS与PL互联与SCU以及PG082
Global模式可以理解为全局综合,当整个工程中的某个文件修改综合时,之前生成的IP核将被重新综合,而out of context per IP模式被称为OOC模式,在生成综合IP核时,已经将IP核综合为网表文件和IP调用文件,在后续整个工程实现时,不再对IP核的源文件进行综合实现,而是直接将网表与其他模块一起实现。PS的54个MIO引脚可以用于连接不同的外设接口,如图 1.3.13中的MIO14和MIO15,既可以配置成UART0 的引脚接口,也可以配置成 I2C0 或 CAN0 的引脚接口。原创 2023-09-28 22:15:22 · 557 阅读 · 0 评论 -
ZYNQ的程序固化~AMP跑双核
确定启动方式后,BootROM 从相应的启动设备(SD Card/QSPI Flash)加 载 First Stage Bootloader (FSBL)或 用 户 代 码 到 On Chip Memory(OCM)的 RAM 上,并且将执行权交付给 FSBL,这个被拷贝到片上 RAM 执行的程序就来自用户自设计的BOOT.bin。标头搜索将继续,直到找到有效的标头或搜索整个范围。这里,BootROM 配置 PS 来访问引导设备,读取引导标头,验证标头,然后通常将 FSBL/用户代码复制到 OCM 内存。原创 2023-10-09 20:34:03 · 640 阅读 · 0 评论 -
Zynq双核通信和中断小结
Xil_Out32(CPU1STARTADR, CPU1STARTMEM)来使加载boot镜像以后去跳转到CPU1程序的地址,并且发送事件代码sev()来进行唤醒。其次,在编写elf文件的时候,需要通过配置lscript.ld来规定程序的起始位置和长度。CPU1的文件起始位置为CPU1STARTMEM;双核通信和程序固化的实例。原创 2023-10-10 13:18:38 · 658 阅读 · 2 评论