当前位置: 首页 > news >正文

通过Quartus II实现Nios II编程

目录

    • 一、认识Nios II
    • 二、使用Quartus II 18.0Lite搭建Nios II硬件部分
    • 三、软件部分
    • 四、运行项目

一、认识Nios II

  1. Nios II软核处理器简介

Nios II是Altera公司推出的一款32位RISC嵌入式处理器,专门设计用于在FPGA上运行。作为软核处理器,Nios II可以通过硬件描述语言在FPGA内部实现,这使得它具有极高的灵活性和可定制性。Nios II处理器能够满足各种应用对32位嵌入式微处理器的需求,用户可以根据自己的系统需求选择合适的处理器型号,以达到性能和成本的最佳平衡。

  1. Nios II的特点和优势

Nios II处理器的最大特点是它是运行在FPGA上的软核处理器。与传统的硬核处理器相比,软核处理器可以根据需要进行裁剪和定制,提供了更大的灵活性。Nios II支持使用专用指令,允许用户增加硬件模块来执行复杂运算任务,从而为时序要求紧张的软件提供加速算法。此外,Nios II系列支持60多个外设选项,使得开发者能够选择合适的外设,获得最合适的处理器、外设和接口组合。

  1. Nios II系列的分类

Nios II系列包括三种产品型号:Nios II/f(快速)、Nios II/s(标准)和Nios II/e(经济)。这三种产品型号都具有32位处理器的基本结构单元,包括32位指令大小、32位数据和地址路径、32位通用寄存器和32个外部中断源。它们使用相同的指令集架构(ISA),并且100%二进制代码兼容,这意味着设计者可以根据系统需求的变化更改CPU型号,而不会影响已有的软件投入。

二、使用Quartus II 18.0Lite搭建Nios II硬件部分

  1. 新建一个名为Nios_II的项目文件。
    在这里插入图片描述

  2. 选择与DE2-115板子上相同型号的芯片EP4CE115F29C7并点击Finish完成配置。
    在这里插入图片描述

  3. 点击Plateform Designer,开始搭建硬件部分
    在这里插入图片描述

  4. 在左上角搜索框输入NIOS,单击选择Embedded目录下的Nios II Processor
    在这里插入图片描述

  5. 如果Quartus II是Lite版本的要把Nios II Core选为Nios II/e,因为Lite版本不支持高性能的Nios II,编译的时候会报错,若想使用Quartus需要标准版及以上版本,如果是标准及以上版本就可以选择NIos II/f。其余配置默认即可,点击Finish完成该部分配置。然后再将其更名为cpu。
    在这里插入图片描述
    在这里插入图片描述

  6. 添加JTAG_UART接口,选择Interface目录下的JTAG UART,配置默认即可,点击finish并更名为jtag_uart。
    在这里插入图片描述

  7. 配置片上存储器 On-Chip Memory,选择Basic目录下的On-Chip Memory,并将总存储大小改为40k,完成配置,然后改名为onchip_ram。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  8. 添加PIO接口,默认即可,更名为pio_led。
    在这里插入图片描述
    在这里插入图片描述

  9. 添加System ID,默认即可,更名为sysid。
    在这里插入图片描述
    在这里插入图片描述

  10. 根据下图进行连接,并在pio_led的external处添加名为out_led的输出端口。
    在这里插入图片描述

  11. 双击cpu在Vectors中进行如图配置,如果找不到onchip_ram.s1应该检查连线是否正确,点击System => Assign Base Address,使Base栏不出现重复的地址。点击File => Save保存该项目。
    在这里插入图片描述

  12. 点击Generate => Generate HDL开始生成,等待其生成完毕,关闭Plateform Designer。
    在这里插入图片描述

  13. 新建BDF(Block Diagram/Schematic File)文件,按照图中顺序添加kernel
    在这里插入图片描述
    在这里插入图片描述

  14. 右键单击kernel选择Generate Pins for Symbol Ports为其添加管脚。并将clk_clk管脚更名为clk,out_led_export[7:0]管脚更名为pio_led[7:0],reset_reset_n管脚更名为reset_n。
    在这里插入图片描述
    15.添加kernel.qip后保存bdf文件为Nios_II.bdf进行语法编译,芯片引脚设计保持默认即可。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  15. 点击Pin Planner,参考DE2-115管脚图开始配置管脚
    在这里插入图片描述
    在这里插入图片描述

  16. 完成针脚配置后关闭Pin Planner,完全编译项目,编译通过即表示硬件部分设计完成。
    在这里插入图片描述

三、软件部分

  1. 点击 Tools => Nios II Software Build Tools for Eclipse 打开 Nios II SBT for Eclipse,把默认目录更改到这个项目目录。
    在这里插入图片描述
  2. 创建新的软件应用,点击File => New => Nios II Application and BSP from Template。选择项目目录下的.sopcinfo文件,并将其命名为hello_led,点击finish开始生成Template。
    在这里插入图片描述

在这里插入图片描述

  1. 打开hello_led文件夹下单hello_world.c文件,并对.c文件内容进行更改以实现Console输出以及流水灯。
    在这里插入图片描述
    代码尚有不完善的地方,比如难以分辨新的输出语句“Hello from Nios II!\n",可在后面添加变量n加以分辨,原始代码如下:
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include <stdio.h>  // 新增标准输入输出头文件,用于printf/** "Hello World" example.** This example prints 'Hello from Nios II' to the STDOUT stream. It runs on* the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example* designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT* device in your system's hardware.* The memory footprint of this hosted application is ~69 kbytes by default* using the standard reference design.** For a reduced footprint version of this template, and an explanation of how* to reduce the memory footprint for a given application, see the* "small_hello_world" template.**/const alt_u8 led_data[8] = {0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF};int main(void) {int count = 0;alt_u8 led;volatile int i;// 融合后的新增功能:打印Nios II启动信息
//    printf("Hello from Nios II!\n");while (1) {if (count == 7) {count = 0;} else {count++;printf("Hello from Nios II!\n");}led = led_data[count];IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);// 保留原有的延时逻辑i = 0;while (i < 500000) {i++;}}return 0;  // 理论上无法执行到这里,但保持代码完整性
}

应该修改的代码为此:

printf("Hello from Nios II!\n",n);

理论修改后的10个循环内的输出如下:

1 次:Hello from Nios II! 12 次:Hello from Nios II! 23 次:Hello from Nios II! 34 次:Hello from Nios II! 45 次:Hello from Nios II! 56 次:Hello from Nios II! 67 次:Hello from Nios II! 78 次:无输出(count 重置为 0,未执行 printf)
第 9 次:Hello from Nios II! 110 次:Hello from Nios II! 2

四、运行项目

  1. . 右键单击hello_led目录再单击Build Project ,完成编译后点击右上角的Nios II => Quartus Prime Programmer;点击Add File添加.sof文件,将其下载到DE2-115板子上,如果出现管脚连接错误,可能是SW19开关在PROG上,切换到RUN即可下载。

在这里插入图片描述

在这里插入图片描述

  1. 在Eclipss中点击右上角的Run => Run As Nios II Hardware;点击Target Connection => Refresh Connections出现接口即可先后按下Apply和Run开始运行项目。
    在这里插入图片描述
  2. 运行视频

studio_video_1745415137269

相关文章:

通过Quartus II实现Nios II编程

目录 一、认识Nios II二、使用Quartus II 18.0Lite搭建Nios II硬件部分三、软件部分四、运行项目 一、认识Nios II Nios II软核处理器简介 Nios II是Altera公司推出的一款32位RISC嵌入式处理器&#xff0c;专门设计用于在FPGA上运行。作为软核处理器&#xff0c;Nios II可以通…...

拥抱基因体检,迎接精准健康管理新时代

2025年4月20日&#xff0c;由早筛网、细胞科技网联合中国食品药品企业质量安全促进会细胞医药分会、中国抗衰老促进会健康管理工作委员会、中国抗癌协会肿瘤分子医学专业委员会、广东省保健协会&#xff0c;伯温生物冠名支持的《基因体检赋能精准健康管理新时代》圆满召开。 伯…...

QT容器类控件及其属性

Group Box 使用QGroupBox实现一个带有标题的分组框&#xff0c;可以把其它的控件放到里面作为一组 例&#xff1a; 核心属性 属性 说明 title 分组框的标题 alignment 分组框内部内容的对齐方式 flat 是否”扁平模式” checkable 是否可选中 设为true&#xff0c;则…...

云原生--CNCF-3-核心工具介绍(容器和编排、服务网格和通信、监控和日志、运行时和资源管理,安全和存储、CI/CD等)

1、核心工具分类介绍 &#xff08;1&#xff09;、容器编排与管理 1、Docker 它是一款轻量级的容器化技术&#xff0c;可把应用及其依赖打包成独立的容器。借助Docker&#xff0c;开发者能够确保应用在不同环境中保持一致的运行状态。比如在开发环境中创建的容器&#xff0c…...

网络基础知识

文章目录 一、网络架构1. 网络架构图2. 各层级功能3. 机房网络常见问题及解决方案 二、交换技术1. 交换技术基础2. 交换技术分类3. 广播域相关概念4. ARP 协议5. 三层交换机6. VLAN&#xff08;虚拟局域网&#xff09; 三、路由技术1. 路由器端口类型及功能2. 路由器功能3. 路由…...

第3课:运算符与流程控制——JS的“决策者”

一切美好都值得你全力以赴。即使过程艰难&#xff0c;但只要坚持&#xff0c;必有回响。加油&#xff01; 欢迎来到「JavaScript 魔法学院」第 3 课&#xff01;今天我们将化身代码世界的“指挥官”&#xff0c;用运算符计算数据&#xff0c;用流程控制做出决策&#xff01;文…...

VUE3中使用echarts,配置都正确,不出现tooltip

在vue3中使用echarts&#xff0c;出现个别问题&#xff0c;需要注意echars对象的定义&#xff0c;不能使用reactive或者ref定义响应式变量&#xff0c;要使用shallowRef &#xff1b; shallowRef 是 Vue 3 提供的一个 API&#xff0c;它创建一个响应式引用(ref)&#xff0c;但…...

Python实现邮件发送

一、创造灵感 这几天在指导学生做毕业设计&#xff0c;学生做的是跌倒检测。然后我突然想到&#xff0c;如果这个系统只是单纯地从视频流中检测到人的跌倒动作&#xff0c;其实并没有任何的用途和意义。于是&#xff0c;我又想到&#xff0c;如果跌倒的检测结果&#xff0c;能…...

OSPF的优化

OSPF的优化 1、汇总 --- 减少骨干区域LSA的更新量 汇总 --- 区域汇总 域间路由汇总 --- 在ABR设备上&#xff0c;针对3类LSA进行汇总 [r1-ospf-1-area-0.0.0.2]abr-summary 192.168.0.0 255.255.252.0 注&#xff1a;在进行域间路由汇总时&#xff0c;必须是ABR设备自己通过拓…...

IP-guard离线卸载客户端及清除策略说明

1、控制台生成客户端工具 控制台选择“工具-客户端工具-客户端离线辅助工具”&#xff0c;可生成客户端离线卸载工具及 离线策略清除工具&#xff0c;打包生成exe后&#xff0c;可在离线的客户端上运行&#xff0c;实现离线情况下对客户端 进行卸载或者清除策略。 在控制台上“…...

腾讯秋招面试题:bug生命周期中有哪些状态?

在软件测试中,Bug生命周期是质量管控的核心脉络。不同企业的流程或有差异,但核心状态遵循行业通用规范。以下以腾讯TAPD缺陷管理模型为基础,结合互联网大厂主流实践,详解Bug生命周期的关键状态及流转逻辑。 一、基础状态图谱 图表 代码 下载 确认有效 非缺陷/需求不符…...

PyCharm 链接 Podman Desktop 的 podman-machine-default Linux 虚拟环境

#工作记录 PyCharm Community 连接到Podman Desktop 的 podman-machine-default Linux 虚拟环境详细步骤 1. 准备工作 确保我们已在 Windows 系统中正确安装并启动了 Podman Desktop。 我们将通过 Podman Desktop 提供的名为 podman-machine-default 的 Fedora Linux 41 WSL…...

学习海康VisionMaster之卡尺工具

一&#xff1a;进一步学习了 今天学习下VisionMaster中的卡尺工具&#xff1a;主要用于测量物体的宽度、边缘的特征的位置以及图像中边缘对的位置和间距 二&#xff1a;开始学习 1&#xff1a;什么是卡尺工具&#xff1f; 如果我需要检测芯片的每一个PIN的宽度和坐标&#xff…...

私有知识库 Coco AI 实战(二):摄入 MongoDB 数据

在之前的文章中&#xff0c;我们介绍过如何使用《 Logstash 迁移 MongoDB 数据到 Easyseach》&#xff0c;既然 Coco AI 后台数据存储也使用 Easysearch&#xff0c;我们能否直接把 MongoDB 的数据迁移到 Coco AI 的 Easysearch&#xff0c;使用 Coco AI 对数据进行检索呢&…...

【C/C++】插件机制:基于工厂函数的动态插件加载

本文介绍了如何通过 C 的 工厂函数、动态库&#xff08;.so 文件&#xff09;和 dlopen / dlsym 实现插件机制。这个机制允许程序在运行时动态加载和调用插件&#xff0c;而无需在编译时知道插件的具体类型。 一、 动态插件机制 在现代 C 中&#xff0c;插件机制广泛应用于需要…...

硬核科普丨2025年安全、高效网络准入控制系统深度解析

阳途网络准入控制系统&#xff08;Network Access Control&#xff0c;简称NAC&#xff09;是当代网络安全领域的重要工具&#xff0c;有效防止未经授权的访问和数据泄露&#xff0c;保障网络资源的安全性和完整性。本文将深入探讨阳途网络准入控制系统的的重要性和作用。 一、…...

2025知识管理趋势解析:AI、协作与用户体验引领变革

知识管理软件是多元化的商业工具&#xff0c;包括知识库系统、wiki、协作平台、文档管理工具、聊天机器人和帮助系统&#xff0c;针对企业信息爆炸式增长的趋势&#xff0c;这些工具正逐步成为提升知识工作者效率和客户服务水平的关键支撑。 知识成为新资产&#xff1a;知识工…...

杂谈-有感而发

今天又拜读了线性代数的几何意义这本书&#xff0c;感觉确实是很不错的&#xff0c;从几何角度讲解线性代数&#xff0c;而且将线性代数、几何、数学、物理有机结合起来了&#xff0c;不仅仅是可视化&#xff0c;重要的是能便于自己独立思考下去。   从大一开始&#xff0c;就…...

使用nodeJs的express+axios+cors做代理

使用nodeJs的expressaxioscors做代理 前端在请求后端时通常会遇到跨域cors问题&#xff0c;如果只在本地开发可以通过webpack或vite的proxy设置。但如果需要在线上或者其他地方绕过跨域&#xff0c;可以使用代理的方法。 1. 创建文件夹 并创建以下文件 package.json {"…...

SQL进阶知识:四、索引优化

今天介绍下关于索引优化的详细介绍&#xff0c;并结合MySQL数据库提供实际例子。 索引优化是数据库性能优化的关键环节之一&#xff0c;尤其是在处理大量数据时。索引可以加快查询速度&#xff0c;减少数据扫描范围&#xff0c;但不当的索引设计也可能导致性能问题。以下是关于…...

C++初阶-类和对象(下)

目录 1.再探构造函数 2.类型转换 3.友元 4.static成员 5.内部类 6.匿名对象 *7.对象拷贝时的编译器优化&#xff08;非必学&#xff09; 8.总结 1.再探构造函数 &#xff08;1&#xff09;之前我们实现构造函数时&#xff0c;初始化成员变量主要使用函数体内赋值&#…...

RPC通信原理实战

RPC概念及RPC请求响应流程 RPC概念引入 假设有两个模块&#xff0c;用户和订单 在单体项目中&#xff0c;两个模块被打包到一个包&#xff0c;都处在一个tomcat进程中&#xff0c;用户模块调用订单模块属于同一进程内的本地调用 在微服务项目中&#xff0c;用户模块和订单模…...

自动创建 中国古代故事人物一致性图画,看看扣子的空间是否能达到你的满意,自媒体的福音?

欢迎来到涛涛聊AI 看效果&#xff1a; AI绘画最难的人物一致性问题&#xff0c;每次得到的结果都不一致。 官方介绍&#xff1a; 扣子空间是你和 AI Agent 协同办公的最佳场所。 在扣子空间里&#xff0c;精通各项技能的「通用实习生」&#xff0c;各行各业的「领域专家」&…...

【Unity笔记】Unity音效管理:ScriptableObject配置 + 音量控制 + 编辑器预览播放自动化实现

摘要&#xff1a; 本文介绍了如何在 Unity 中构建一个高效的音效管理系统&#xff0c;通过 ScriptableObject 实现音效集中配置&#xff0c;支持为每个音效单独设置音量&#xff0c;并通过自定义 Editor 实现音效的可视化预览播放与下拉选择播放功能&#xff0c;整个系统无场景…...

面向高可靠场景的RISC-V低功耗MCU硬件安全设计

该RISC-V架构的低功耗MCU通过多项硬件级安全技术满足工业控制、汽车电子及物联网等领域对可靠性与安全性的需求。其核心特性包含六个方面&#xff1a; 在数据完整性验证与固件安全升级方面&#xff0c;该MCU通过硬件级校验机制&#xff08;如CRC、哈希算法&#xff09;确保固件…...

OpenVINO教程(五):实现YOLOv11+OpenVINO实时视频目标检测

目录 实现讲解效果展示完整代码 本文作为上篇博客的延续&#xff0c;在之前实现了图片推理的基础上&#xff0c;进一步介绍如何进行视频推理。 实现讲解 首先&#xff0c;我们需要对之前的 predict_and_show_image 函数进行拆分&#xff0c;将图像显示与推理器&#xff08;pre…...

【新能源科学与技术】MATALB/Simulink小白教程(一)实验文档【新能源电力转换与控制仿真】

DP读书&#xff1a;新能源科学与工程——专业课「新能源发电系统」 2025a 版本 MATLAB下面进入正题 仿真一&#xff1a;Buck 电路一、仿真目的二、仿真内容&#xff08;一&#xff09;Buck电路基本构成及工作原理&#xff08;二&#xff09;Buck电路仿真模型及元件连接&#xf…...

软件项目实施全流程及交付物清单

需求分析 -> 概要设计 -> 详细设计 -> 开发 -> 测试 -> 部署 -> 上线运行 一、确认项目目标、范围和团队成员 二、收集和分析客户需求&#xff0c;确定需求规格 三、制定详细的项目计划&#xff0c;包括时间表、资源计划、预算 四、系统架构设计&#xf…...

Docker安装ES :确保 Kibana 正确连接 Elasticsearch

在使用 Docker 部署 ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;堆栈时&#xff0c;正确的服务配置和依赖管理至关重要。本文将分享如何优化 Docker Compose 配置&#xff0c;确保 Kibana 能稳定连接到 Elasticsearch&#xff0c;并提供故障排查建议 cd /opt/…...

云贝餐饮 最新 V3 独立连锁版 全开源 多端源码 VUE 可二开

云贝餐饮源码 最新 V3 独立连锁版 全开源 多端源码 VUE 可二开 vue uniapp 独家优化版本 后台管理 Vue 源文件 后台管理文件 yii2 升级包 &#xff08;全开源&#xff09; 收银台 Vue 源文件 装修 Vue 源文件 商家端 uni-app 源文件 用户端 uni-app 源文件 数据库文件 云贝餐饮…...

python异步协程async调用过程图解

1.背景&#xff1a; 项目中有用到协程&#xff0c;但是对于协程&#xff0c;线程&#xff0c;进程的区别还不是特别了解&#xff0c;所以用图示的方式画了出来&#xff0c;用于理清三者的概念。 2.概念理解&#xff1a; 2.1协程&#xff0c;线程&#xff0c;进程包含关系 一…...

【Java学习笔记】选择结构

选择结构 内容结构 一、顺序结构 二、分支控制 &#xff08;1&#xff09;单分支 &#xff08;2&#xff09;双分支 &#xff08;3&#xff09;多分支 &#xff08;4&#xff09;嵌套分支 &#xff08;5&#xff09;switch 分支结构 三、switch和if的比较 一、顺序结构…...

java Nacos

windows下载nacos&#xff0c;版本2.x的&#xff0c;1.0的话会出现“Server check fail, please check server 127.0.0.1 ,port 9848 is available , error {}” 这个鬼问题 下载链接 这里用的是2.0.4版本&#xff0c;启动的话用 startup.cmd -m standalone&#xff0c;单体启…...

c语言之杂识

前言 主要说一下c语言的杂知识 一、预处理指令 1. #include #include指令用于包含其他头文件的内容到当前文件中。这允许您在程序中使用其他模块定义的函数和变量。 示例&#xff1a; #include <stdio.h> // 包含标准输入输出头文件int main() {printf("Hello…...

CSS内边距、外边距、边框

CSS内边距 内边距 &#xff1a;内容区&#xff08;Content&#xff09;与边框&#xff08;Border&#xff09;之间的透明间距&#xff0c;用于增加元素内部的留白。不影响元素内容本身的尺寸&#xff08;如文字大小&#xff09;&#xff0c;但会增大元素的总占用空间。 以下是…...

融山科技前端面经

前端面试问题解答 这次是波珠的第三次面试&#xff0c;持续打怪升级&#xff0c;积累面试中面试官问到的不会的点子。 1.自我介绍 面试官您好&#xff0c;我是来自XX学校XX专业本科的XX名字&#xff0c;然后介绍在学校情况&#xff0c;我就介绍了大一自学前端&#xff0c;然…...

元素滚动和内容垂直居中同时存在,完美的 html 元素垂直居中的方法flex + margin: auto

假设有一个元素 div 作为父容器且宽高固定&#xff0c;里面的内容 content 在父容器中垂直/水平都居中&#xff0c;且当内容很多时&#xff0c;父元素滚动overflow: auto&#xff0c;content的内容要能够完全展示。 我之前在这篇文档提到了两个方法&#xff1a; 使用 flex s…...

STM32F103 单片机(基于 ARM Cortex-M3 内核)的启动过程涉及硬件初始化、固件配置和程序执行流程。

1. 启动模式与地址映射 STM32F103 的启动模式由 BOOT0 和 BOOT1 引脚配置决定&#xff0c;不同的启动模式对应不同的存储器映射&#xff1a; 启动模式 映射地址范围 说明 主 Flash 0x08000000~0x0807FFFF 用户程序存储在 Flash 中&#xff0c;复位后从 Flash 启动&#xff08…...

c++中iota容器和fill的区别

在C 中&#xff0c;std::iota 和 std::fill 都是标准库中的函数&#xff0c;用于对序列进行操作&#xff0c;它们的功能和用法如下&#xff1a; std::iota 功能&#xff1a;std::iota 函数用于将一个连续的递增序列赋值给指定范围的元素。它接受三个参数&#xff0c;第一个参…...

Kafka集群

kafka集群: kafka-server-start.sh;kafka-server-stop.sh cd/opt/software/kafka/ kafka.sh上传:cd /usr/local/bin/ 执行文件变成绿色&#xff1a;chmod 777 kafka.sh Kafka.sh start Xcall.sh jps...

多源数据集成技术分析与应用实践探索

摘要&#xff1a;本文聚焦多源数据集成技术&#xff0c;深入剖析联邦式、基于中间件模型及数据仓库三类主流技术的侧重点与应用场景。通过实际案例阐述多源数据集成应用构建过程&#xff0c;旨在为企业数据整合与共享提供理论指导与实践参考&#xff0c;助力企业提升数据利用效…...

UniOcc:自动驾驶占用预测和预报的统一基准

25年3月来自 UC Riverside、U Wisconsin 和 TAMU 的论文"UniOcc: A Unified Benchmark for Occupancy Forecasting and Prediction in Autonomous Driving"。 UniOcc 是一个全面统一的占用预测基准&#xff08;即基于历史信息预测未来占用&#xff09;和基于摄像头图…...

反向代理和DDNS的区别是什么?

反向代理&#xff08;Reverse Proxy&#xff09;和动态域名解析&#xff08;DDNS&#xff0c;Dynamic Domain Name System&#xff09;是两种不同的网络技术&#xff0c;虽然它们都与外部访问内部服务相关&#xff0c;但解决的问题和应用场景完全不同。具体区别如下&#xff1a…...

markdown展示数学公式

要让Markdown正确展示数学公式&#xff0c;你需要使用支持数学公式渲染的工具&#xff0c;比如在支持LaTeX语法的Markdown编辑器中进行编写。 Markdown本身并不原生支持数学公式的渲染&#xff0c;但许多Markdown解析器&#xff08;例如在GitHub、Jupyter Notebooks、或一些博…...

服务器编译环境配置及数据接收脚本编写(11)

文章目录 一、本章说明二、云端服务器Python编译环境配置三、传感数据解析脚本编写一、本章说明 注:本节为【基于STM的环境监测系统(节点+云服务器存储+QT界面设计)】项目第11篇文章,上面两篇介绍了云服务器数据库的安装与相关设置,本章主要介绍在服务器中安装Python编译…...

硬件基本概念

目录 基本概念 电压 电流 串联、并联 欧姆定律 电路仿真网址&#xff1a; 功率 焦耳定律 AC220V 转 DC5V 基本电子元器件了解 电阻&#xff1a;&#xff08;电阻器&#xff09; 电容 电感 继电器 二极管 三极管 晶振&#xff08;晶体振荡器&#xff09; 光耦…...

Spark与Hadoop之间的联系与区别

联系 生态系统互补&#xff1a; Hadoop 是一个分布式存储和计算平台&#xff0c;主要包括 HDFS&#xff08;分布式文件系统&#xff09;和 MapReduce&#xff08;分布式计算框架&#xff09;。Hadoop 提供了可靠的数据存储和分布式计算的基础。 Spark 是一个高性能的分布式计算…...

spark和Hadoop之间的对比与联系

对比 计算模型&#xff1a; Hadoop&#xff1a;采用MapReduce计算模型&#xff0c;分map与reduce两个阶段&#xff0c;数据处理按阶段顺序执行&#xff0c;数据处理按阶段顺序执行&#xff0c;中间结果会写入磁盘&#xff0c;I/O开销大。 Spark&#xff1a;基于弹性分布式数…...

0802api设计和实战-网络ajax请求1-react-仿低代码平台项目

文章目录 1 API设计1.1 用户功能1.1.1 获取用户信息1.1.2 注册1.1.3 登录 1.2 问卷功能1.2.1 获取单个问卷1.2.2 获取问卷列表1.2.3 创建问卷1.2.4 更新问卷1.2.5 批量彻底删除问卷1.2.6 复制问卷 1.3 小结 2 实战2.1配置axios2.2 封装API和测试2.3 新建问卷2.4 自定义hooks封装…...

什么是CAN的非破坏仲裁?

‌CAN总线的非破坏性仲裁‌是一种在多个设备同时发送数据时&#xff0c;通过标识符&#xff08;ID&#xff09;优先级来决定哪个设备可以优先发送数据的机制。其核心思想是&#xff1a;当多个设备同时发送数据时&#xff0c;ID值较小的数据具有更高的优先级&#xff0c;能够优先…...