zynq PS点灯

摸鱼碎碎念:

需要做ADC采集并在TFT屏幕实时显示波形(简易示波器)

发现只使用fpga实现比较困难

使用的是zynq,刚好来把arm部分也学到

参考视频

     与

教材文档

01_Zynq SoC FPGA的诞生_哔哩哔哩_bilibili

(这是俺点开AXI4接口协议后发现的系列视频教程T_T)

03_【裸机教程】基于C编程的Zynq裸机程序设计与应用教程v2.4.5.pdf

【产品资料】【Zynq开发板】小梅哥ACZ702开发板全套资料下载 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

(这个在网盘下载就好)

zynq ug585文档下载链接:

ug585-Zynq-7000-TRM.pdf · adba5616e0bc482c1dc162123773ced75670d679 · POZ_FPGA / hardware · GitLab

(这是俺在edge随便找的,俺安装vivado的那个找不到T_T)

小梅哥裸机编程课程笔记链接:【zynq裸机编程课程笔记合集】 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

1. 今日摸鱼任务

实现PS端点灯

第一次走流程搞了很久,也踩了一些坑,记录一下摸鱼历程

//本次先走一下流程

        //具体C程序编写下次发

2. zynq开发流程

3.  vivado基础配置设置   xc7z010clg400-1 

        //先搞完fpga部分,再搞arm       

①创建工程    

                                      xc7z010clg400-1 

②创建模块设计

③构建硬件系统

添加并配置IP核

注意上面的电平!!!!!
设置后,图形界面就会出现一个小对号

点击OK,可以得到:多了配置好的GPIO_0

导出引脚

④生成封装

然后可以得到:

⑤管脚约束

在管脚约束界面中,我们需要做的是对使用到的 PL 端的管脚进行分配并对管脚电平进行约束,本次设计所涉及到的为 PL 端的按键和 PL 端的 LED 灯:

Ctrl + S

⑥生成比特流

⑦导出硬件

⑧启动SDK

4. CPU软件程序设计

①创建SDK工程

此时,多了两个文件夹

②添加应用库

//这里是按照  03_【裸机教程】基于C编程的Zynq裸机程序设计与应用教程v2.4.5.pdf

所以与视频课程不太相同

【产品资料】【Zynq开发板】小梅哥ACZ702开发板全套资料下载 - ACZ702开发板 - 芯路恒电子技术论坛 - Powered by Discuz! (corecourse.cn)

(这个在网盘下载就好)

工程创建完成后新建一个 ACZ702_Lib 文件夹,用来存放提供的库。
路径如下: 小梅哥 ACZ702 Zynq 开发板资料 \ 盘A_ACZ702 开发板标准配套资料 \02_ 设计实例 \03_ 【裸机例程】基于 C 编程的 Zynq 裸机例程 \ ACZ702_Lib
//这个网盘路径自己下载哈,不是放的链接。
通用中断控制器和私有定时器是 Zynq 上十分常用的资源,在 SDK 中就可以直接配置使用,因此在我们的设计中都会默认加上 SCU 应用库。本次设计虽然没有使用到这两个资源,但是考虑到工程的适用性,将会添加 SCU 应用库(但是并没有使用)。
PS_GPIO SCU 拷贝到 ACZ702_Lib 中,
USER 文件夹下的文件拷贝 到 src 下,

③添加头文件路径

会出现

(这里是有一定的小问题的,就是俺有时候会不现实,重新操作一下又就有显示了,俺还没有搞懂)

这里注意选择到PS_GPIO 、 SCU 、USER三个文件夹处就OK

要重复三次

④添加用户代码

在main.c中:
/*
* 使用 PS_GPIO 实现了按键控制 LED 功能 :
* PS 端按键按下 →PL 端的灯亮起,松开熄灭
* PL 端按键按下 →PS 端的灯亮起,松开熄灭
*/
#include "COMMON.h"
int main ( void )
{
u8 State; // 存放按键 (MIO47) 的电平状态, 0 为低电平, 1 为高电平
PS_GPIO_Init (); // 初始化 PS MIO EMIO
// 设置 PS_LED(MIO7) 为输出并且初始为低电平
PS_GPIO_SetMode (PS_LED, OUTPUT, 0 );
// 设置 PL_LED(EMIO0) 为输出并且初始为低电平
PS_GPIO_SetMode (PL_LED, OUTPUT, 0 );
PS_GPIO_SetMode (PS_KEY, INPUT, 0 ); // 设置 PS_KEY(MIO47) 方向为输入
PS_GPIO_SetMode (PL_KEY, INPUT, 0 ); // 设置 PL_KEY(EMIO1) 方向为输入
while ( 1 )
{
// 读取 PS_KEY 的电平值并存储到 State 变量里
State = PS_GPIO_GetPort (PS_KEY);
// State 变量的值取非赋予 PL_LED 来输出
PS_GPIO_SetPort (PL_LED,!State);
// 读取 PL_KEY 的电平值并存储到 State 变量里
State = PS_GPIO_GetPort (PL_KEY);
// State 变量的值取非赋予 PS_LED 来输出
PS_GPIO_SetPort (PS_LED,!State);
}
return 0 ;
}
可以调整字体大小
打开 COMMON.h ACZ702 头文件下添加本次设计所使用库的头文件声明,这里已经预先对 ISR.h SCU_GIC.h SCU_TIMER.h 进行了声明,所以只需添加 PS_GPIO.h 即可。
#include "PS_GPIO.h"
接下来在用户宏定义下添加 GPIO 的定义,代码如下:
//MIOn 对应的 GPIO 编号为 n
#define PS_LED 7 //MIO_LED MIO7 ,对应的 GPIO 编号为 7
#define PS_KEY 47 //MIO_KEY MIO47 ,对应的 GPIO 编号为 47
//EMIOn 对应的 GPIO 编号为 54+n ,因为 MIO 总数为 54 EMIO 是从 54 开始算的
#define PL_LED ( 54 + 0 ) //EMIO_LED EMIO0 ,对应的 GPIO 编号为 54+0=54
#define PL_KEY ( 54 + 1 ) //EMIO_KEY EMIO1 ,对应的 GPIO 编号为 54+1=55
Ctrl+S 保存设计, SDK 会自动编译,在确认编译无误后,接下来便可以开始进行板级验证了。

5.板级验证

连接好开发板

//摸鱼结束!!!

//过程还是遇到了很多弯弯绕绕

//下次学习C编程~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫学习2

中国国家地理网 单张图片爬取 import requests url http://img0.dili360.com/ga/M00/02/AB/wKgBzFQ26i2AWujSAA_-xvEYLbU441.jpg!rw9 headers {"User-Agent": Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0…

解锁 JavaScript ES6:函数与对象的高级扩展功能

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! ES5、ES6介绍 文章目录 ES6函数扩展1 默认参数1.1 之前写法1.2 ES6 写法1.3 注意点 2 …

基于VGG16使用图像特征进行迁移学习的时装推荐系统

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

【React篇】简述React-Router 的实现原理及工作方式

React Router 路由的基础实现原理分为两种,如果是切换 Hash 的方式,那么依靠浏览器 Hash 变化即可;如果是切换网址中的 Path,就要用到 HTML5 History API 中的 pushState、replaceState 等。在使用这个方式时,还需要在…

数据库管理软件:Navicat Premium 17 中文激活版

Navicat Premium 是一套可创建多个连接的数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 。它与 OceanBase 数据库及 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Clo…

万字解析线控底盘技术

文章出处:汽车学堂Automooc 引言 在当今这个由科技驱动的时代,汽车电动化、智能化已成为汽车行业的热门话题。特斯拉的自动驾驶功能、蔚来的换电模式、以及比亚迪的刀片电池技术,这些创新不仅引领着市场趋势,也推动着消费者对智…

Leetcode2028. 找出缺失的观测数据

Every day a Leetcode 题目来源:2028. 找出缺失的观测数据 解法1:模拟 统计当前 m 个元素的总和 curSum sum(rolls),总共 mn 个元素和为 total (m n) * mean。 排除 2 种情况: total - curSum > 6 * n:n 个…

链表(2)反转链表

题目描述 反转一个单链表。(题目来源) 思路一 其实,反转一个单向链表,我们可以看成是将链表中的每个结点的指向反向(即从后一个结点指向前一个结点)。 我们在考虑情况的时候,还是可以先考虑一般…

变种水仙花

变种水仙花 题干要求: 变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于…

Ollama 本地大模型框架

该篇教程主要讲解*Ollama的安装和简单使用* Ollama: 在本地启动并运行大型语言模型。 主要流程目录: 1.安装 2.使用 2.1.下载模型 2.2.简单使用 2.3.中文模型 2.4.中文社区 3.总结 1.安装 创建一个容器 切换”高级视图“ 参考填写 ollama oll…

java家政上门系统源码,App端采用uniapp开发编写,可打包H5 、微信小程序、微信公众号、Android、IOS等。

家政上门系统是一种通过互联网或移动应用平台,为用户提供在线预约、下单、支付和评价家政服务的系统。该系统整合了家政服务资源,使用户能够便捷地找到合适的服务人员,同时也为家政服务人员提供了更多的工作机会。 本套家政上门系统源码&…

Golang | Leetcode Golang题解之第120题三角形最小路径和

题目&#xff1a; 题解&#xff1a; func minimumTotal(triangle [][]int) int {n : len(triangle)f : make([]int, n)f[0] triangle[0][0]for i : 1; i < n; i {f[i] f[i - 1] triangle[i][i]for j : i - 1; j > 0; j-- {f[j] min(f[j - 1], f[j]) triangle[i][j]…

旅游行业:解锁收入增长的新策略!

随着科技的飞速发展和人们生活水平的提高&#xff0c;旅游行业已成为全球范围内最具活力和潜力的行业之一。然而&#xff0c;在这个充满机遇与挑战的市场中&#xff0c;如何确保收入的持续增长&#xff0c;成为每一家旅游企业都必须面对的问题。在这个背景下&#xff0c;用友BI…

虚拟现实环境下的远程教育和智能评估系统(七)

在后端代码的基础上&#xff0c;利用vue框架设计前端界面&#xff0c;至此&#xff0c;用户界面基本成型&#xff0c;后续添加其他进阶功能&#xff1b; 另&#xff0c;前后端交互相关&#xff1a; UsersVO.java package com.roncoo.education.user.feign.interfaces.vo;impor…

Llama改进之——分组查询注意力

引言 今天介绍LLAMA2模型引入的关于注意力的改进——分组查询注意力(Grouped-query attention,GQA)1。 Transformer中的多头注意力在解码阶段来说是一个性能瓶颈。多查询注意力2通过共享单个key和value头&#xff0c;同时不减少query头来提升性能。多查询注意力可能导致质量下…

易联众智能自动办理平台,AI赋能让数字政务服务“触手可及”

“城乡居民参保怎么办”“要去XX省工作了,帮我办理异地就医备案”……通过口语化的文字、语音提问,易联众智能自动办理平台的AI助理都可以准确理解对话,并依据政策文件给出详细回答,人机对话像聊天一样轻松。 近日,宁德市民王先生高兴地说:“过去办理医保业务不懂流程,容易走弯…

Vue常用自定义指令、纪录篇

文章目录 一、元素尺寸发生变化时二、点击元素外自定义指令三、元素拖拽自定义指令四、防抖自定义指令五、节流自定义指令六、权限判断自定义指令 一、元素尺寸发生变化时 使用场景&#xff1a; 当元素的尺寸发生变化时需要去适配一些元素时。 或者在元素尺寸发生变化时要去适配…

TiDB学习9:Ti Cloud简介

目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…

[HUBUCTF 2022 新生赛]RSAaaa

题目&#xff1a; EXP 就你小子是黑客&#xff1f; 我忘记怎么解密了&#xff01; 靠你了&#xff0c;大黑阔&#xff01;(536970330703, 65537) message: 473878130775 40132555282 40132555282 94619939727 72818765591 208015808884 42561234694 159353248388 27748063975 1…

逆天工具一键修复图片,视频去码。简直不要太好用!

今天&#xff0c;我要向您推荐一款功能强大的本地部署软件&#xff0c;它能够在您的计算机上一键修复图片和视频&#xff0c;去除令人不悦的码赛克&#xff08;轻度马赛克&#xff09;。这款软件是开源的&#xff0c;并在GitHub上公开可用&#xff0c;您可以免费下载并使用。 …