2343|0

230

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

【工程源码】基于FPGA的SoC使用DS-5控制FPGA侧逻辑时的相关操作 [复制链接]

本文由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。


1、添加SoC硬件相关头文件
添加路径D:\intelFPGA\17.1\embedded\ip\altera\hps\altera_hps\hwlib\include
添加路径D:\intelFPGA\17.1\embedded\ip\altera\hps\altera_hps\hwlib\include\soc_cv_av


2、指定硬件平台
修改D:\intelFPGA\17.1\embedded\ip\altera\hps\altera_hps\hwlib\include下的hwlib.h文件,在第54行加上下面一句话:
#define soc_cv_av

 


该句话的意思是指定我们的开发平台为Cyclone V SoC平台或者Arriv V SoC平台。如果不加这句话,编译时会报以下错误:
In file included from ../led.c:2:0:
D:\intelFPGA\17.1\embedded\ip\altera\hps\altera_hps\hwlib\include/hwlib.h:56:2: error: #error You must define soc_cv_av or soc_a10 before compiling with HwLibs
#error You must define soc_cv_av or soc_a10 before compiling with HwLibs
  ^
make: *** [subdir.mk:23: led.o] Error 1


3、映射自定义IP到用户空间
将FPGA侧逻辑的寄存器挂载到Linux用户空间,以LED为例
[code=Cpp]        int ret;
        void *virtual_base;
        int fd;
        int i;
        //将LED的寄存器地址段映射到Linux系统的用户空间,以便我们能够在Linux系统能够直接操作他们
        // 打开MMU
        if( ( fd = open( "/dev/mem", ( O_RDWR | O_SYNC ) ) ) == -1 ) {
                printf( "ERROR: could not open \"/dev/mem\"...\n" );
                return( 1 );
        }

        //映射得到外部总线在Linux用户空间
        virtual_base = mmap( NULL, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, HW_REGS_BASE );
        if( virtual_base == MAP_FAILED ) {
                printf( "ERROR: mmap() failed...\n" );
                close( fd );
                return(1);
        }

        //得到LED的寄存器基地址虚拟地址
        h2p_lw_led_addr=virtual_base + ( ( unsigned long  )( ALT_LWFPGASLVS_OFST + LED_PIO_BASE ) & ( unsigned long)( HW_REGS_MASK ) );
[/code]
4、程序中用到的几个宏定义
暂时不清楚什么意思,应该是HPS硬件部分在MMU上的映射信息。
#define HW_REGS_BASE ( ALT_STM_OFST )
#define HW_REGS_SPAN ( 0x04000000 )
#define HW_REGS_MASK ( HW_REGS_SPAN - 1 )

 

 

此帖出自FPGA/CPLD论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表