【【Micro Blaze 的 最后补充 与 回顾 】】

news2025/1/17 6:17:31

Micro Blaze 的 最后补充 与 回顾

Micro Blaze 最小系统
在这里插入图片描述

以 MicroBlaze 为核心、LocalMemory(片上存储)为内存,加上传输信息使用的 UART串口就构成了嵌入式最小系统。当程序比较简单时,Local Memory 可以作为程序的运行空间以及存储空间,空间大小可以根据需要设置最小 8KB 到最大 128KB;当程序比较复杂的时候,我们也可以使用片上搭载的外部存储器(如 DDR3)作为程序的运行空间以及存储空间。AXI Interconnect IP 核用于将一个(或多个)AXI 存储器映射的主器件与一个(或多个)存储器映射互联。在这里我们解释一下这个术语——互联(Interconnect):互联实际上是一个开关,它管理并指挥所连接的 AXI 接口之间的通信。

另外一个想法
其实我们使用的外部 LED 按键都是 我们自己认为是这个东西 它的本质都属于 GPIO 设备
我们通过管脚绑定 让 这个 GPIO 变成独属于 设备的 控制器
详情我们可以看 《正点原子 达芬奇 Micro Blaze 的 第四节 》先看结构框图
在这里插入图片描述

这个是整个的 Block Design

在这里插入图片描述

接下来 见解 最深的是 第八章
自定义 IP 核-呼吸灯实验
我们来看 系统框图
在这里插入图片描述

我们注意到的其实是这个 Breath LED 的 自定义 IP核

我们以这个 AXI 接口为核心 添加了端口 out
其实对我们整个设计来说 我们并不需要知道这是怎么完成的
我们 要把 整个设备当成黑盒器件使用

补充了一个 output 在最后有一个 led 的 引脚引出
先说一下 黑盒的用法 里面 分为 3部分 第一部分是 AXI的主函数 我们内部添加了 一个output
第二部分是 AXI 的内容 我们在里面添加了 LED的例化 就是相当于 把寄存器 绑定到 LED 的输入输出
第三部分是 LED的实现内容
其实我们主要关注 主函数的实现 发现就是一个 AXI的接口 还有一个 output LED

我们不理解的话 可以看管脚约束 将这个管脚接在了 PIN R2 上
我们再看 引出的 UART 也会有 管脚绑定 这就是 这两个的相同点

这里面更重要的 一点是 我们需要知道 自定义的IP核 打包之后 会生成一个 .c .h文件供我们使用
我们先介绍一个非常重要的基本概念
IP的接口就是函数的输入参数
生成的.c文件 就相当于 把硬件抽象 成 一个库函数
通过库函数 来设置 输入参数
所以生成的逻辑 就是 根据你的硬件IP 的接口来的

ok 我们在做设计的时候 当合成一个IP之后 进入 C语言的层次之后 其实我们并不需要 知道 这个模块究竟是如何连接的 我们只需要知道这个模块的引脚是什么 功能是什么即可
对于这里的设计 我们需要在意的是 IP的 工作 输入输出 是什么 输入是 S_AXI 而 输出是 LED (LED 我们知道是寄存器达标的值)
那么 功能是 把 数写进 寄存器
LED的改变只是 因为寄存器变化而带来的附加效果
其实相当于把 数据存进到 寄存器
所以可想而知 .c 文件大概率也是这些功能
因为是系统来完成的 我们所能做的就是 观察 得出结论
在这里插入图片描述

这句话 就相当于 把数据放进基地址+偏移量的位置
在这里插入图片描述

这句话 就相当于 输出的意思
over

接下来 我们来学习第九章
AXI4 接口之 DDR 读写实验

本次设计 不在单单的使用 内部逻辑缓存 而是外挂 DDR
我们来看一下 整个结构框图
在这里插入图片描述

我们使用的 是 自己创建的 DDR_TEST 这个 DDR 的 目的是 在 4K 的 存储空间 写入 1024个数据 写入1到1024 每个数据 占用 32Bit
4K = 4096 x 8 bit = 1024 x 32

我们在 Micro Blaze 定义了 cache 所指向的地址 就是内存中的 我们需要使用的地址
在这里插入图片描述

然后需要注意的是 这里的地址 必须 和 我们在 IP INTEGRATOR 下的 Address Editor
MIG 内的地址 一致 毕竟我们都是指向的同一个东西嘛
在这里插入图片描述

但是 我们 自己定义的IP DDR3_ Test 并不是 写基地址 而是把 偏移量什么的 都需要考虑进去 毕竟 DDR3 _Test 作为一个设施 是直接访问 DDR3 的内存 空间
我们将变量 C M AXI TARGET SLAVE BASE ADDR 的值修改为 0x88000_0000(DDR3的基地址为 0x80000000),它位于 DDR3 存储器的地址空间,是 DDR3_TEST IP 核进行读写操作的起始地址。
在这里插入图片描述

懂你意思

接下来我们来看 第十三章 AXI DMA 环路测试实验
下面是这个实验的系统框图

在这里插入图片描述

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

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

相关文章

OCR原理解析

目录 1.概述 2.应用场景 3.发展历史 4.基于传统算法的OCR技术原理 4.1 图像预处理 4.1.1 灰度化 4.1.2 二值化 4.1.3 去噪 4.1.4 倾斜检测与校正 4.1.4.2 轮廓矫正 4.1.5 透视矫正 4.2 版面分析 4.2.1 连通域检测文本 4.2.2 MSER检测文本 4.3 字符切割 4.3.1 连…

Excel 分列功能

一. 需求 ⏹有一段文本,文本一共有7列。这7列文本之间的分隔符不相同 有一个空格的有多个空格的有Tab的jmw_state 和 method 之间用 & 连接 现在要求,将这段文本粘贴到Excel中,进行分列。并且需要将 jmw_state 和 method 也进行分列 也…

LASSO vs GridSearchCV

LASSO VS GridSearchCV LASSO定义目的使用方法原理示例总结 GridSearchCV定义目的使用方法原理网格搜索(Grid Search)交叉验证(Cross-Validation)总结 示例总结 总结 LASSO 定义 LASSO(Least Absolute Shrinkage and…

机器人阻抗控制性能及其实验验证

Impedance Control 机器人阻抗控制是一种控制方法,其目的是构建一个系统使得执行器(如机械臂)能同时控制力和位置。它基于阻抗模型,通过调节机器人的行为,以维持理想的动态关系。这种动态关系可以理解为机器人末端位置…

【微信小程序】上传头像 微信小程序内接小程序客服

这里写目录标题 微信小程序上传头像使用button按钮包裹img 微信小程序内接小程序客服使用button按钮跳转客服 微信小程序上传头像 使用button按钮包裹img 原本思路是只使用image标签再加上chooseImg,但发现使用button标签上传头像这种方法更实用。微信小程序文档上…

钉钉聊天审计软件有哪些

钉钉在企业中的广泛应用,聊天审计软件也日益受到关注。这类软件主要针对企业微信、钉钉等即时通讯工具,对其中的聊天记录进行审计,以便企业能够更好地管理员工的在线行为,并保障信息安全。 一、聊天审计软件的作用 1、监管员工行…

Python编程技巧 – 迭代器(Iterator)

Python编程技巧 – 迭代器(Iterator) By JacksonML Iterator(迭代器)是Python语言的核心概念之一。它常常与装饰器和生成器一道被人们提及,也是所有Python书籍需要涉及的部分。 本文简要介绍迭代器的功能以及实际的案例,希望对广大读者和学生有所帮助。…

判断二叉树是否为完全二叉树

具体思路: 将二叉树层序遍历(节点)插进队列中,遇到空时就break(退出循环),再重新遍历一遍,若空的后面又再次出现数据,则返回false(不是完全二叉树&#xff0…

MySQL 8创建数据库、数据表、插入数据并且查询数据

我使用的数据库是MySQL 8。 创建数据库 create database Bookbought; -- 创建数据库Bookbought use Bookbought; -- 使用数据库Bookbought创建数据表 创建用户表bookuser。 create table ## 往allbook里边插入数据(id INT PRIMARY KEY AUTO_INCREMENT, -- id 为 主键userna…

KubeShark: Kubernetes的Wireshark

Wireshark可以帮助我们抓取并分析网络数据包,理解网络中发生的事情,那是否有工具可以帮助我们理解在K8S集群中发生的事情,帮助排查集群故障,Kubeshark就是这样的工具。原文: KubeShark: Wireshark for Kubernetes[1] 简介 Wiresha…

LLM大语言模型(一):ChatGLM3-6B试用

前言 LLM大语言模型工程化,在本地搭建一套开源的LLM,方便后续的Agent等特性的研究。 本机环境 CPU:AMD Ryzen 5 3600X 6-Core Processor Mem:32GB GPU:RTX 4060Ti 16G ChatGLM3代码库下载 # 下载代码库 ​git c…

使用求2个字符串最短编辑距离动态规划算法实现 git diff 算法 java 实现

测试类 MyDiffTest.java&#xff1a; import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.List;public class MyDiffTest {private static String path "\\xxx\\";private static List<String> lines…

java操作windows系统功能案例(三)

以下是一些 Java 操作 Windows 系统功能的案例&#xff1a; 打开 Windows 计算器 public class Calculator {public static void main(String[] args) throws Exception {Runtime.getRuntime().exec("calc.exe");} }打开 Windows 默认浏览器 public class Browser…

数学字体 Mathematical fonts

Mathematical fonts 数学字体&#xff1a; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ \\ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathbb{ABC…

332. 重新安排行程

题目描述 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必须从 JFK 开始。如…

谷歌 Gemini 模型发布计划推迟:无法可靠处理部分非英语沟通

本心、输入输出、结果 文章目录 谷歌 Gemini 模型发布计划推迟&#xff1a;无法可靠处理部分非英语沟通前言由谷歌 CEO 桑达尔・皮查伊做出决策从一开始&#xff0c;Gemini 的目标就是多模态、高效集成工具、API花有重开日&#xff0c;人无再少年实践是检验真理的唯一标准 谷歌…

《微信小程序开发从入门到实战》学习四十

4.2 云开发JSON数据库 4.2.11 更新数据 使用数据库API更新数据有两种方法&#xff1a;一.将记录局部更新的update方法&#xff1b;二.以替换的方式更新记录的set方法 update方法可以局部更新一个记录或一个集合的多个记录&#xff0c;更新时只有指定字段更新&#xff0c;其他…

【数电笔记】18-卡诺图化简

目录 说明&#xff1a; 用卡诺图化简逻辑函数 1. 公式法化简与卡诺图化简对比 2. 化简依据 3. 化简规律 3.1 两个小方块相邻 3.2 四个小方块相邻 3.3 八个小方块相邻 4. 卡诺图化简法步骤 4.1 例1 4.2 例2 5. 画卡诺圈规则 5.1 例1 6. 特殊情况 6.1 例1 6.2 例…

算法设计与实现--贪心篇

贪心算法 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法&#xff0c;以期望能够通过一系列局部最优的选择达到全局最优。贪心算法的关键是定义好局部最优的选择&#xff0c;并且不回退&#xff0c;即一旦做出了选择&#xff0c;就不能撤销。 一般来说&#xf…

【栈和队列(2)】

文章目录 前言队列队列方法队列模拟实现循环队列练习1 队列实现栈 前言 队列和栈是相反的&#xff0c;栈是先进后出&#xff0c;队列是先进先出&#xff0c;相当于排队打饭&#xff0c;排第一的是最先打到饭出去的。 队列 队列&#xff1a;只允许在一端进行插入数据操作&…