zoukankan      html  css  js  c++  java
  • Xilinux PS与PL交互:裸机程序读写FPGA-REG

    背景

    当时在搞ZYNQ驱动的时候,出于TDD的思想,从最简单的功能开始验证。因此就涉及到了下面的需求。

    PL侧会提供寄存器地址供PS端读写,这部分的寄存器在PL侧作为Avalon的IP,对PS端来说,就是一片物理地址。

    PL

    不做修改,但在其中Launch SDK

    只要确保platform.h的内容是正确的,不这么做也没问题。

    PS

    工具是SDK。

    NEW - Application,建一个HelloWord

    使用Vivado生成的BSP

    只使用以下代码:

    
    #include <stdio.h>
    #include "platform.h"
    #include "xil_printf.h"
    #include "xil_io.h"
    
    int main()
    {
    	int i = 0, loop = 0;
        init_platform();
    
        print("Hello World
    
    ");
        while(1)
        {
        	loop++;
        	i++;
        	Xil_Out32(XPAR_M_AVALON_0_BASEADDR, i);
        	if(Xil_In32(XPAR_M_AVALON_0_BASEADDR) !=loop)
        	{
        		printf("loop %x, read %x
    ",loop, Xil_In32(XPAR_M_AVALON_0_BASEADDR));
        
        	}else{
        		printf("loop %x, OK
    ",loop);
        	}
    
    
        	if(Xil_In32(XPAR_AXI_GPIO_1_BASEADDR))
        	{
        		 Xil_Out32(XPAR_AXI_GPIO_0_BASEADDR , 1) ;
        	}else
        	{
        		Xil_Out32(XPAR_AXI_GPIO_0_BASEADDR , 0) ;
        	}
        
        }
        
        cleanup_platform();
        return 0;
    }
    
    
    

    右键 项目 Run As --RunConfiguration

    • 双击System Debugger
    • 勾选 全部

    运行,测试。查看结果是否与PL端的预期一致(或者可以使用逻辑分析仪抓一下时序图)

    如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。
    若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
    博客地址:https://www.cnblogs.com/schips/
  • 相关阅读:
    设计模式的类型
    SQL介绍(1)
    MySQL(介绍1)
    MyBatis总结(1)
    使用SQLServer Profiler侦测死锁(转)
    SQL Server 数据库中关于死锁的分析
    Delphi内嵌汇编语言BASM精要(转帖)
    Delphi项目构成之单元文件PAS
    Delphi中Interface接口的使用方法
    Delphi项目构成之项目文件DPR
  • 原文地址:https://www.cnblogs.com/schips/p/xilinx_sdk_how_bare-machine_program_read-write_pl_side_regs.html
Copyright © 2011-2022 走看看