【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包
STM32-MBD(1)安装 STM32 硬件支持包
【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包
- 1. 必须的软硬件条件
- 2. 嵌入式硬件支持包
- 2.1 Embedded Coder
- 2.2 嵌入式硬件支持包
- 2.3 Embedded Coder Support Package for STMicroelectronics STM32 Processors
- 2.4 Simulink Coder Support Package for STMicroelectronics Nucleo Boards
- 3. 安装 MATLAB 硬件支持包
- 3.1 在线安装硬件支持包
- 3.2 离线下载硬件支持包
- 3.3 离线安装硬件支持包
- 4. STM32 硬件板的设置
通过安装MATLAB 硬件支持包,可以将 STM32 微处理器与 MATLAB/Simulink 结合使用,让开发者可以直接在MATLAB环境中进行嵌入式系统的设计和调试。
本节详细介绍如何下载和安装 STM32 硬件支持包,在基于 STM32 处理器的硬件板上运行 Simulink 模型。
1. 必须的软硬件条件
必需的硬件:
- STM32 Nucleo 开发板(如:NUCLEO-G431RB 开发板,也可以选择其它 STM32 开发板)
- Micro-micro USB 数据线,或 USB Type-A 至 Micro-B 连接线缆,用于将STM32 Nucleo 板连接到 PC
必需的软件:
-
STM32CubeMX ver6.4 及以上版本(本文使用 ver6.12)
-
STM32CubeProgrammer ver2.6 及以上版本(本文使用 ver 2.18)
-
MATLAB/Simulink(本文使用 MATLAB R2022b)
-
Embedded Coder:生成可读、紧凑且快速的 C 和 C++ 代码,用于量产使用的嵌入式处理器。
-
Simulink Coder:从 Simulink 模型、Stateflow 图和 MATLAB 函数生成并执行 C 和 C++ 代码,用于实时和非实时应用,包括仿真加速、快速原型构建和硬件在环测试
-
Embedded Coder Support Package:嵌入式硬件支持包,根据使用的MCU或板卡选择对应的硬件支持包
- Embedded Coder Support Package for ARM Cortex-M Processors,ARM Cortex-M 处理器的嵌入式硬件支持包
- Embedded Coder Support Package for STMicroelectronics STM32 Processors,STM32 处理器的嵌入式硬件支持包
使用 CubeMX 在任意的 STM32 F4、F7、G4或H7 系列处理器的 Nucleo开发板、Discovery探索板 或用户自制的开发板上,设计、仿真和部署 Simulink 模型,适用于从快速原型设计到产品化的全过程。 - Embedded Coder Support Package for STMicroelectronics Discovery Boards,支持在 STM32 探索板构建、加载和运行Simulink模型,可选
- Simulink Coder Support Package for STMicroelectronics Nucleo Boards,支持在 STM32 Nucleo板上构建、加载和运行Simulink模型,可选
用于设计、仿真和部署 Simulink 模型到某些型号的 STM32 Nucleo 开发板,适用于快速原型。由于所支持的 Nucleo 开发板型号限制,特别是并不支持 G4系列的开发,也不支持用户自制开发板,由此通常只能用于算法研究。
2. 嵌入式硬件支持包
2.1 Embedded Coder
Embedded Coder 为量产使用的嵌入式处理器生成可读、紧凑且快速的 C 和 C++ 代码。它对 MATLAB Coder 和 Simulink Coder 进行了高级优化,以精确控制生成的函数、文件和数据。这些优化可以提高代码效率,简化与现有代码、数据类型和标定参数的集成。您可以结合使用第三方开发工具编译可执行文件,以在您的嵌入式系统或快速原型构建板上实现即交即用式部署。
Embedded Coder 对 AUTOSAR、MISRA C 和 ASAP2 软件标准提供内置支持。它还提供可追溯性报告和代码文档,以及支持 DO178、IEC 61508 和 ISO 26262 软件开发的自动化软件验证。Embedded Coder 代码是可移植的,并且可以在任何处理器上编译和执行。此外,它还为特定硬件提供具有高级优化和设备驱动的支持包。
功能特点:
- 模型编译与代码生成:将MATLAB/Simulink模型转换为符合ANSI C或C++标准的代码,可直接在目标硬件上运行。
- 硬件接口支持:包括GPIO、中断、定时器、串行通信等外设驱动,使开发者能直接在模型中操作硬件资源。
- 实时仿真:在MATLAB/Simulink环境中进行硬件在环(HIL)仿真,以验证代码在实际硬件上的行为。
- 代码优化:自动优化代码以提高执行效率,减少存储和计算资源的占用。
- 内存管理:智能分配内存,考虑目标硬件的限制,如RAM和Flash大小。
- 版本兼容性:支持多种ARM Cortex-M处理器,包括不同供应商的产品。
2.2 嵌入式硬件支持包
硬件支持包是 MATLAB 针对特定硬件平台提供的软件接口,它包含了与特定硬件平台相关的代码生成和仿真支持。这些包通常包括用于代码生成的特定硬件平台的头文件、库文件和配置文件,以及用于Simulink仿真的硬件模型。
在嵌入式系统开发中,HSP允许用户能够直接在MATLAB和Simulink环境中开发、测试和部署代码到目标硬件。这包括:
- 代码生成:HSP允许MATLAB自动生成针对特定硬件优化的代码。
- 仿真支持:提供处理器模型,使得在Simulink中可以进行处理器级的仿真。
- 硬件交互:支持与硬件设备的数据交互和测试。
使用HSP进行代码生成通常包括以下步骤:
- 创建或导入模型:在Simulink中创建模型或导入现有的模型。
- 设置目标硬件参数:根据目标硬件配置模型参数。
- 生成代码:使用Embedded Coder或其他相关工具生成代码。
2.3 Embedded Coder Support Package for STMicroelectronics STM32 Processors
Embedded Coder Support Package for STMicroelectronics STM32 Processors 硬件支持包,是 MATLAB 开发环境为 STM32 微处理器提供的一套专用工具,使用户能够在STM32设备上构建、加载和运行Simulink模型,帮助工程师和开发者将 MATLAB 代码高效地转换为能够在这些微控制器上运行的 C/C++ 代码。这个支持包为 STM32 处理器提供了强大的开发环境和工具链,让开发者可以直接在MATLAB环境中进行嵌入式系统的设计和调试,而无需深入底层硬件细节。
功能特点:
- 使用自动构建、部署和执行在片上快速原型化算法
- 使用监控和调整模式(外部模式)执行实时参数调整和记录
- 使用执行分析执行循环中的处理器(PIL)
- 生成处理器优化代码,包括 CMSIS-DSP
- 支持使用 STM32CubeMX 集成进行外围配置
- 用于片上和板上外围设备的驱动程序块库
- 使用 Motor Control Blockset 示例模型加速电机控制开发
支持的处理器
支持以下STM32处理器系列以及每个系列的相应硬件板,包括Nucleo、Discovery和Custom板。
- STM32F3xx
- STM32F4xx
- STM32F7xx
- STM32G4xx
- STM32L4xx
- STM32L5xx
- STM32WBxx
- STM32U5xx
- STM32H7xx
借助 Embedded Coder Support Package for STMicroelectronics STM32 Processors,可以自动编译和部署针对 STM32 处理器的处理器优化代码。使用提供的模块和 STM32CubeMX 集成,可以为外设和 I/O 设计算法和使用模块库。
2.4 Simulink Coder Support Package for STMicroelectronics Nucleo Boards
Simulink Coder Support Package for STMicroelectronics Nucleo Boards 支持包使用户能够在STM32 Nucleo板上构建、加载和运行Simulink模型。
功能特点:
- 使用自动构建、部署和执行在片上快速原型化算法
- 使用外部模式执行实时参数调整和记录
- 包括连接的IO(在主机运行时访问外设)
用于片上和板上外设的驱动模块:
- 数字I/O、ADC、PWM、IRQ
- I2C、SCI、SPI、Modbus
- F7x/H7x板卡:CAN、TCP、UDP、ThingSpeak
- 传感器:湿度、磁强计、压力、IMU
如果需要对 STM32 控制板(Nucleo)进行高级和深入的配置,请使用 Embedded Coder Support Package for STMicroelectronics STM32 Processors 支持包。
3. 安装 MATLAB 硬件支持包
通过安装MATLAB 硬件支持包,可以将 STM32 微处理器与 MATLAB/Simulink 结合使用。
3.1 在线安装硬件支持包
- 在 MATLAB 主页选项卡的环境部分中,选择附加功能 > 获取硬件支持包。
- 在附加功能资源管理器窗口中,点击支持包,然后点击安装。
由于国内软件状态及网络条件的原因,在线安装很难成功。一次不推荐采用在线安装。
3.2 离线下载硬件支持包
- 下载 MathWorks 硬件支持包下载软件:
下载地址:https://ww2.mathworks.cn/support/install/support-software-downloader.html
根据操作系统(Windows/Linux/Mac)选择对应的支持包下载软件。以 Windows-64bit 为例,下载 SupportSoftwareDownloader_R2024b_win64.exe。
- 运行硬件支持包下载软件 SupportSoftwareDownloader_R2024b_win64.exe,进入下载支持包过滤器列表,勾选和必要的硬件支持包,点击“下一步”继续安装。
- Embedded Coder Support Package for ARM Cortex-M Processors
- Embedded Coder Support Package for STMicroelectronics STM32 Processors
-
出现第三方软件限制条款,点击“下一步”继续安装。
-
开展下载选择的硬件支持包。安装完成后将提示安装成功。
由于国内网络状态,离线安装经常出现安装失败。可以再试几次,直到安装成功。也可以复制他人已下载好的 Matlab2022b 硬件支持包使用。
我已将以下的 Matlab2022b 硬件支持包上传到网络硬盘,供大家下载使用:
- SupportPackages_ARM_CortexM:Embedded Coder Support Package for ARM Cortex-M Processors
- SupportPackages_STM32Processors,Embedded Coder Support Package for STMicroelectronics Discovery Boards
- SupportPackages_STM32NucleoBoard,Simulink Coder Support Package for STMicroelectronics Nucleo Boards
3.3 离线安装硬件支持包
-
下载或复制 Matlab 硬件支持包,进行离线安装。
-
找到本机的 MATLAB 安装路径,选择交互式安装程序(install_supportsoftware.exe)或静默安装程序(SupportSoftwareInstaller.exe)安装 Matlab 硬件支持包,准备启动离线安装。
注意:静默安装仅在 MATLAB R2018a 及更高版本中可用。
- 打开 Windows 控制台命令行窗口(command prompt),通过交互式安装程序(install_supportsoftware.exe)安装 Matlab 硬件支持包。
交互式安装程序的可执行文件只需要一个参数:下载硬件支持包的位置路径(路径中不要使用中文字符)。
cd DRIVE:<MATLAB_PATH>\bin\win64
install_supportsoftware.exe -archives <path_to_download_folder> [-matlabroot DRIVE:\MATLAB_PATH]
例如,本机的 MATLAB 安装路径为 D:\MATLAB\R2022b\,硬件支持包的保存路径为 D:\MATLAB\SupportPackages_STM32Processors\R2022b,则在命令行窗口输入以下命令安装支持包:
cd C:\MATLAB\R2018b\bin\win64
.\install_supportsoftware.exe -archives D:\Matlab\SupportPackages_STM32Processors\R2022b
- 交互式安装程序将启动 MATLAB,并生成“安装支持包”窗口启动支持包安装程序。选择所需的硬件支持包,点击“下一步”就开始安装。
- 验证是否安装成功
打开 Matlab 和 Simulink,打开或新建一个项目文件,点击菜单“库浏览器”唤出库浏览器侧边栏,查看 “Embedded Coder Support Package” 和/或 “Simulink Coder Support Package”。
如下图所示,库浏览器中正常显示所安装的硬件支持包,表明安装成功。
4. STM32 硬件板的设置
MathWorks 支持的硬件板和设备需要额外的配置和设置步骤才能连接到 MATLAB 和 Simulink。
安装完支持包之后,要对硬件目标板进行设置,以注册所需的 STM32 软件工具(选择STM32 CubeMX)来生成代码,并将其部署到连接的 STM32 硬件板上(如 NUCLEO-G431RB 开发板)。
如果已安装支持包,则可以使用 Add-On Manager 启动硬件设置。也可以运行以下命令从 MATLAB 命令行窗口启动该设置:“stm32cube.tools.launchHardwareSetup”。
MATLAB 将启动硬件设置,按照提示选择所需的硬件、软件,检查 STM32CubeMX 的软件安装路径,点击 “Validate” 以验证 STM32 软件(STM32CubeMX和STM32CubeProgrammer)的安装及版本是否正确。
具体操作步骤如下:
- 启动 MATLAB,运行以下命令启动 STM32 硬件设置。
stm32cube.tools.launchHardwareSetup
- 进入MCU Family 选择需要支持的 STM32 硬件。点击“Next”。
- 提示必需的 STM32 工具及版本(STM32CubeMX、STM32CubeProgrammer),如尚未安装可以点击 “Download” 下载并安装。点击“Next”。
-
对 STM32CubeMX 进行安装配置。
点击“Browse”选择本机安装 STM32CubeMX 的路径。
点击 “Validate” 进行验证。等待验证完成后,点击“Next” 完成 STM32CubeMX 的配置。
如下图所示,如果 STM32CubeMX 的版本较新,将出现软件版本兼容性提示。对此不需要进行处理,点击 “Next” 继续。 -
对 STM32CubeProgrammer 进行安装配置。
点击“Browse”选择本机安装 STM32CubeProgrammer 的路径。
点击 “Validate” 进行验证。等待验证完成后,点击“Next” 完成 STM32CubeProgrammer 的配置。
如下图所示,如果 STM32CubeProgrammer 的版本较新,将出现软件版本兼容性提示。对此不需要进行处理,点击 “Next” 继续。
-
设置 STM32 固件包存储位置,点击“Next”继续。
-
下载STM32固件包,点击“Install”开始安装。安装中提示许可证确认,选择 “Accept” 继续安装。
-
如下图所示,STM32固件包下载成功,点击“Next”。
安装 STM32 所需固件时,由于网络原因,如果安装失败,重新运行本硬件设置过程,直到安装成功。
-
如果选择了 STM32 Discovery 板级支持,需要继续安装相应的 STM32 DISCOVERY Board firmware package
并进行验证。本文未安装 Discovery 板级,除非用户确定需要使用该 Discovery 板,否则不推荐安装。 -
完成STM32 硬件设置,如上图所示。
至此,我们完成了 STM32 硬件支持包 的安装和配置,就可以将 STM32 微处理器与 MATLAB/Simulink 结合使用,让开发者可以直接在MATLAB环境中进行嵌入式系统的设计和调试。
在下节中,我们将通过 MATLAB/Simulink,创建一个简单的 LED 点亮工程,在 STM32G431 开发板上应用。
(本节完)
参考资料:
-
Embedded Coder 快速入门,(https://ww2.mathworks.cn/help/ecoder/product-fundamentals.html?s_tid=CRUX_lftnav)
-
安装 STMicroelectronics STM32 处理器的支持程序,(https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ug/install-support-for-stm32-board-processors.html)
-
基于 STMicroelectronics STM32 处理器的板快速入门, (https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ug/Getting-started-stm32cubemx.html?searchHighlight=STM32&s_tid=srchtitle_support_results_2_STM32)
版权声明:
youcans@qq 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/144281802)
Copyright@youcans 2024
Crated:2024-12
相关文章:

【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包
STM32-MBD(1)安装 STM32 硬件支持包 【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包 1. 必须的软硬件条件2. 嵌入式硬件支持包2.1 Embedded Coder2.2 嵌入式硬件支持包2.3 Embedded Coder Support Package for STMicroelec…...
书后习题答案:《Python程序设计基础(第2版)》,电子工业出版社,2020.01
【持续更新】 第3章 from math import *x1 float(input("请输入x1: ")) # print(x1) x2 float(input("请输入x2: ")) y1 float(input("请输入y1: ")) y2 float(input("请输入y2: "))dis sqrt(pow(x1 - x2, 2) pow(y1 - y2, 2))…...

Qt之第三方库QXlsx使用(三)
Qt开发 系列文章 - QXlsx(三) 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…...
Python通过global实现多文件共享全局参数,方法
Python通过global实现多文件共享全局参数 global关键字,全局变量 基础用法 这种用法,不能在其他的py文件中使用, x 6 def func():global x #定义外部的xx 10 func() print (x) #输出10共享参数 新建glo.py文件(全局变量文件)…...

DevOps工程技术价值流:项目构建工具的选择与实践
在快速迭代的软件工程领域,项目构建工具扮演着举足轻重的角色。它们不仅自动化了构建、测试、打包和部署等关键环节,还显著提升了开发效率和质量。本文将深入探讨后端常用的Maven和Gradle,以及前端不可或缺的NPM,并重点对比Maven与…...

【数据库】复习
数据库期中复习——概念填空_在修改数据结构时,为了保证数据库的数据独立性-CSDN博客 选择题 关系数据理论-数据库习题_数据库关系理论考题-CSDN博客 关系、关系模式、关系模型区别和联系 关系:元组的集合,一张表 关系模式:关系的描述 R(…...

CorsConfig前后端数据跨域连接,IDEA右侧Maven窗口消失
前后端数据跨域连接(分页查询并显示) 一、后端添加分页查询 分页查询核心就是:每页需要显示多少条记录(pageSize),当前查看第几页(pageNum);MySQL提供了分页函数limit m,n select * from table limit (pageNum-1)*pageSize, pa…...

Python微博动态爬虫
本文是刘金路的《语言数据获取与分析基础》第十章的扩展,详细解释了如何利用Python进行微博爬虫,爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了,就是用户利用代码模拟Ajax请求,发…...
【设计模式】单例模式 在java中的应用
文章目录 引言什么是单例模式单例模式的应用场景单例模式的优缺点优点缺点 单例模式的基本实现饿汉式单例模式懒汉式单例模式双重检查锁定静态内部类枚举单例 单例模式的线程安全问题多线程环境下的单例模式线程安全的实现方式1. **懒汉式单例模式(线程不安全&#…...

burp suite 8
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
为什么在Java中super与this不能共存于子类构造器中,其中this起什么作用
在 Java 中,super 和 this 是两个关键字,它们在子类的构造器中有特定的用途和限制。 super 关键字: super 用于从父类(超类)访问成员(属性和方法)或者调用父类的构造方法。 在子类的构造器中&…...

Hypothesis:高效的 Python 测试工具
简介:Hypothesis 是一个强大的 Python 测试库,旨在自动生成各种测试案例,以帮助开发者发现潜在的边界问题和隐藏的错误。通过对输入数据进行智能化的探索,Hypothesis 能够为测试提供更全面的覆盖,避免遗漏一些极端或不…...

Terminus Calculator 计算原理分享
在《使命召唤:黑色行动 6》僵尸模式中,Terminus 关卡的研究办公室里有一个复杂的数学谜题需要解决。为了获得多相共振器,玩家需要计算出三个数字并输入电脑。虽然可以花费 5000 精华来获得答案,但使用 Terminus Calculator 可以更…...

Wwise 使用MIDI文件、采样音频
第一种:当采样音频只有一个文件的时候 1.拖入MIDI文件到Interactive Music Hierarchy层级 2.拖入采样音频到Actor-Mixer Hierarchy层级 3.勾选MIDI显示出面板,设置Root Note与采样音频音高相同,这里是C#5 4.播放测试,成功&…...

在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案
在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案 背景概述解决方案脚本实现脚本说明使用指南注意事项在CentOS操作系统环境中,若需并发上传特定目录下的.wav文件至HTTP服务器,而系统未安装GNU parallel工具,我们可通过其他方法实现此需求。本文将介绍一种利用Sh…...

【RocketMQ 源码分析(一)】设计理念与源码阅读技巧
RocketMQ 的设计理念与源码阅读技巧 一、设计理念二、源码设计三、源码阅读技巧 一直想仔细仔细看看这个 RocketMQ 的源码,学学它的设计思想和编码风格,没准在以后自己在设计和编码的时候有思考的方向。这是专栏的第一篇 —— 介绍下 RocketMQ 的一些设计…...
独立ip服务器有什么优点?
网站的性能和安全性直接影响到用户体验和业务发,独立IP服务器作为一种主流的托管方式,因其独特的优势而受到许多企业和个人站长的青睐。与共享IP相比,独立IP服务器到底有哪些优点呢? 使用独立IP的用户不必担心与其他网站共享同一…...
如何使用Python库连接Redis
1、redis-py 库封装一个 Redis 工具类可以帮助我们简化 Redis 的操作并提高代码的复用性和可维护性。 安装redis pip install redisimport redis import logginglogging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__)class RedisUtils:def __init__(s…...

Vant UI +Golang(gin) 上传文件
前端基本用法:点击查看 实现代码: const afterRead (file) > {console.log(file);//set content-type to multipart/form-dataconst formData new FormData();formData.append("file", file.file);request.POST("/api/v1/users/up…...

【Unity高级】如何实现粒子系统的间歇式喷射
先看下要最终实现的效果: 代码如下: using UnityEngine; using System.Collections;public class ParticleBurstController : MonoBehaviour {private ParticleSystem _particleSystem; // 获取粒子系统public float burstDuration 2f; // 每次…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
如何通过git命令查看项目连接的仓库地址?
要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...

以太网PHY布局布线指南
1. 简介 对于以太网布局布线遵循以下准则很重要,因为这将有助于减少信号发射,最大程度地减少噪声,确保器件作用,最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确,然…...