Uboot(一)

uboot的基本概念

        U-Boot(Universal Boot Loader)是一个开源的引导加载程序,用于嵌入式系统中的启动流程管理。它是一个多功能的引导加载程序,可以在各种硬件平台上运行,并支持多种操作系统和引导方式。U-Boot 最初是为 PowerPC 架构开发的,但现在已经被移植到了许多其他的处理器架构上,包括 ARM、x86 等。

U-Boot 的主要功能包括:

  1. 引导加载:U-Boot 负责在系统上电后执行引导过程,加载操作系统内核到内存中并启动。

  2. 硬件初始化:U-Boot 负责初始化系统中的各种硬件设备,例如 CPU、内存、外设等。

  3. 环境变量管理:U-Boot 允许用户配置环境变量,这些变量可用于指定引导参数、引导命令等,使得系统启动过程更加灵活。

  4. 固件升级:U-Boot 支持从不同的介质(如网络、串口、存储设备等)加载固件,用于系统的升级和维护。

  5. 调试功能:U-Boot 提供了一些调试功能,如命令行界面、日志输出等,方便用户诊断和调试系统问题。

  6. 多平台支持:U-Boot 可以在多种硬件平台上运行,并支持多种操作系统的引导,因此被广泛应用于嵌入式系统开发中。

        总的来说,U-Boot 是嵌入式系统中的重要组成部分,它的灵活性和可定制性使得开发者可以根据具体的硬件和应用需求进行定制和扩展。

如何启动uboot

        启动 U-Boot 可以分为几个步骤,具体流程可能会因为硬件平台的不同而有所差异。一般来说,以下是启动 U-Boot 的一般步骤:

  1. 上电或复位:将嵌入式设备上电或者执行复位操作。

  2. 引导设备选择:根据硬件配置,选择正确的引导设备,比如 SPI Flash、SD 卡、eMMC、NOR Flash 等。

  3. 引导加载程序加载:硬件在上电或复位后会执行引导加载程序(Bootloader)的代码。通常情况下,引导加载程序会加载 U-Boot 的二进制文件到内存中。

  4. 执行 U-Boot:一旦 U-Boot 被加载到内存中,引导加载程序会将控制权转移到 U-Boot,从而开始执行 U-Boot 的代码。

  5. U-Boot 初始化:U-Boot 开始执行后,会进行硬件初始化、环境变量加载等操作。

  6. 启动系统:一旦 U-Boot 初始化完成,它将根据预先设定的引导方式(比如从存储设备加载 Linux 内核)启动操作系统。

uboot命令

U-Boot 提供了一系列命令,用于配置系统、加载内核、启动系统以及进行调试和维护等操作。这些命令通常可以通过串口终端或网络终端与 U-Boot 交互。以下是一些常用的 U-Boot 命令:

  1. boot:启动操作系统。

  2. help:显示帮助信息,列出可用的命令列表及其简要描述。

  3. printenv:显示环境变量的值。

  4. setenv:设置环境变量的值。

  5. saveenv:保存环境变量的修改,使其在下次启动时生效。

  6. md:内存数据显示,用于查看内存中的数据。

  7. mw:内存数据写入,用于向内存中写入数据。

  8. load:从引导设备加载文件到内存中。

  9. fatls:列出 FAT 文件系统中的文件列表。

  10. fatload:从 FAT 文件系统加载文件到内存中。

  11. tftpboot:从 TFTP 服务器下载文件到内存中。

  12. ping:向网络主机发送 ICMP 回显请求。

  13. reset:执行软件复位。

  14. bootm:启动指定内核映像。

  15. dhcp:执行 DHCP 请求,获取 IP 地址和其他网络配置信息。

  16. version:显示 U-Boot 的版本信息。

  17. usb:USB 子系统相关命令,用于在 U-Boot 中进行 USB 设备的操作。

  18. mmc:MMC 子系统相关命令,用于在 U-Boot 中进行 SD 卡或 eMMC 的操作。

  19. nand:NAND 子系统相关命令,用于在 U-Boot 中进行 NAND Flash 的操作。

  20. echo:显示消息。

  21. loadb:从网络加载二进制数据到内存。

  22. loads:从串口加载二进制数据到内存。

  23. go:执行内存中的指令。

  24. loop:循环执行一系列命令。

  25. source:执行指定的脚本文件。

  26. mdio:MDIO 总线相关命令,用于在 U-Boot 中进行 PHY 的操作。

  27. mwio:IO 子系统相关命令,用于在 U-Boot 中进行 IO 空间的操作。

  28. ping6:向网络主机发送 IPv6 的 ICMP 回显请求。

  29. sleep:延迟执行。

  30. setexpr:计算表达式并将结果赋值给变量。

  31. loady:从 YMODEM 协议加载文件到内存。

  32. bootp:执行 BOOTP 协议,获取 IP 地址和其他网络配置信息。

  33. crc32:计算 CRC32 校验值。

  34. iminfo:显示镜像信息。

  35. loadx:从 XMODEM 协议加载文件到内存。

  36. nfs:NFS 子系统相关命令,用于在 U-Boot 中进行 NFS 文件系统的操作。

  37. mwinfo:显示内存窗口信息。

  38. run:执行预定义的命令序列。

  39. setexpr:计算表达式并将结果赋值给变量。

  40. test:执行条件测试。

        这些只是 U-Boot 中的一部分命令,具体的命令列表和功能可能会因 U-Boot 的版本和配置而有所不同。可以通过输入 help 命令在 U-Boot 提示符下查看完整的命令列表及其用法。

mmc

        在 U-Boot 中,mmc 命令用于与 MMC(MultiMediaCard)设备进行交互,MMC 是一种常见的闪存存储设备,通常被用作嵌入式系统的启动设备或存储设备。

以下是一些常见的 mmc 命令及其用法:

  1. mmcinfo:显示 MMC 设备的信息,如容量、速度等。

    U-Boot> mmcinfo

  2. mmc read:从 MMC 设备中读取数据到内存。

    U-Boot> mmc read <addr> <blk#> <cnt>

    其中 <addr> 是要读取数据的内存地址,<blk#> 是要读取的起始块号,<cnt> 是要读取的块数量。

  3. mmc write:将数据从内存写入 MMC 设备。

    U-Boot> mmc write <addr> <blk#> <cnt>

    其中 <addr> 是要写入数据的内存地址,<blk#> 是要写入的起始块号,<cnt> 是要写入的块数量。

  4. mmc rescan:重新扫描 MMC 设备。

    U-Boot> mmc rescan

  5. mmc erase:擦除 MMC 设备中的数据。

    U-Boot> mmc erase <blk#> <cnt>

    其中 <blk#> 是要擦除的起始块号,<cnt> 是要擦除的块数量。

  6. mmc part:显示 MMC 设备的分区信息。

    U-Boot> mmc part

ext4文件系统操作

        在 U-Boot 中,通常不直接执行 Ext4 文件系统的操作,因为 U-Boot 主要负责引导加载和系统启动的任务,而不是文件系统的管理。但是,在 Linux 中,您可以使用一些命令行工具来执行 Ext4 文件系统的操作。以下是一些常见的 Ext4 文件系统操作和相应的命令:

  1. 挂载 Ext4 文件系统

    mount -t ext4 /dev/sdXn /mnt/point

    其中 /dev/sdXn 是您要挂载的 Ext4 分区的设备文件路径,/mnt/point 是挂载点的路径。

  2. 卸载 Ext4 文件系统

    umount /mnt/point

    这将卸载指定的挂载点上的 Ext4 文件系统。

  3. 创建 Ext4 文件系统

    mkfs.ext4 /dev/sdXn

    这将在指定的设备上创建一个新的 Ext4 文件系统。

  4. 查看 Ext4 文件系统信息

    dumpe2fs /dev/sdXn

    这将显示指定 Ext4 文件系统的详细信息,如超级块、inode 表等。

  5. 检查 Ext4 文件系统

    fsck.ext4 /dev/sdXn

    这将检查并修复指定 Ext4 文件系统上的错误。

  6. 调整 Ext4 文件系统大小

    resize2fs /dev/sdXn

    这将调整指定 Ext4 文件系统的大小以匹配其所在的分区大小。

        这些命令在 Linux 系统中使用,可用于管理 Ext4 文件系统的创建、挂载、卸载、查看、检查和调整大小等操作。请注意,在 U-Boot 中通常无法执行这些操作,因为 U-Boot 主要用于引导加载,而不是文件系统的管理。

uboot启动内核过程

在 U-Boot 中启动 Linux 内核的过程通常分为以下几个步骤:

  1. 加载内核镜像:首先,U-Boot 会加载 Linux 内核镜像文件(通常是 zImageImage 文件)到内存中的指定位置。这通常是通过 load 命令或类似的命令来完成的,指定了内核镜像的加载地址和文件路径。

  2. 加载设备树(Device Tree)文件:在许多现代的嵌入式系统中,设备树用于描述硬件设备的信息和配置。在启动 Linux 内核之前,U-Boot 会加载设备树文件(通常是 .dtb 文件)到内存中的指定位置,以便 Linux 内核可以使用它来识别硬件设备。

  3. 设置内核启动参数:U-Boot 会设置一些内核启动参数,比如根文件系统的位置、内核命令行参数等。这些参数通常存储在 U-Boot 的环境变量中,并在启动过程中传递给 Linux 内核。

  4. 启动内核:一旦内核镜像和设备树文件加载完毕,并设置了相应的启动参数,U-Boot 就会通过 boot 命令或类似的命令来启动 Linux 内核。在这一步,U-Boot 将控制权转移给内核,并将之前加载的设备树文件和启动参数传递给内核。

  5. 内核初始化:Linux 内核开始执行初始化过程,包括初始化硬件设备、挂载根文件系统、启动用户空间进程等。

        总的来说,U-Boot 主要负责加载 Linux 内核镜像和设备树文件,设置启动参数,并启动 Linux 内核。一旦内核启动,U-Boot 的任务就完成了,控制权转移到了 Linux 内核,接下来的系统初始化过程由 Linux 内核负责完成。

 uboot环境参数

        U-Boot 环境参数是一组配置参数,用于指定系统的启动选项、设备信息、内核命令行参数等。这些参数存储在 U-Boot 的环境中,并在启动过程中被加载到内存中,以便 U-Boot 和 Linux 内核使用。

以下是一些常见的 U-Boot 环境参数及其含义:

  1. bootargs:内核启动参数,包括根文件系统的位置、内核命令行参数等。

  2. bootcmd:引导命令序列,指定了 U-Boot 启动 Linux 内核的命令序列。

  3. bootdelay:启动延迟时间,指定了在启动过程中等待用户输入的时间。

  4. baudrate:串口波特率,指定了串口通信的波特率。

  5. ethaddr:以太网 MAC 地址,指定了以太网设备的 MAC 地址。

  6. ipaddr:IP 地址,指定了系统的 IP 地址。

  7. serverip:服务器 IP 地址,用于 TFTP 或 NFS 引导时指定服务器的 IP 地址。

  8. root:根文件系统的位置,指定了根文件系统的设备和分区。

  9. bootargs_linux:用于指定 Linux 内核的启动参数,通常在引导 Linux 内核时使用。

  10. bootcmd_linux:用于指定 Linux 内核的启动命令,通常在引导 Linux 内核时使用。

        这些参数可以通过 U-Boot 的命令行界面或者环境变量编辑器进行设置和修改。一旦设置完成,它们将被保存在 U-Boot 的环境中,并在系统启动时自动加载。这样,用户就可以方便地定制系统的启动选项和配置信息。

Uboot的编译

编译 U-Boot 通常涉及以下步骤:

  1. 获取源代码:首先,你需要获取 U-Boot 的源代码。你可以从 U-Boot 的官方 Git 仓库中获取最新的源代码,也可以从其他来源获取特定版本的源代码。

  2. 配置:在编译之前,你需要进行配置。这包括选择目标平台、设置交叉编译工具链的路径、配置启动选项、选择功能和驱动等。U-Boot 提供了一个命令行配置界面,你可以通过运行 make menuconfigmake nconfig 来进行配置。

  3. 交叉编译:U-Boot 是针对嵌入式系统的,因此你需要使用交叉编译工具链来编译它。你可以从交叉编译工具链的供应商处获取适合你的目标平台的工具链,或者使用一些开源的工具链,比如 Linaro。

  4. 编译:配置完成后,你可以运行 make 命令来开始编译。编译过程将使用你配置的交叉编译工具链来生成 U-Boot 的可执行文件。

  5. 生成镜像:U-Boot 通常以二进制镜像的形式存在,你可能需要将编译生成的可执行文件转换成适合你的目标平台的镜像格式。对于不同的目标平台,可能需要使用不同的工具来生成镜像,比如 mkimage 工具。

  6. 烧写:最后,你需要将生成的镜像文件烧写到目标设备上。这可以通过串口、网络、SD 卡或其他适合你的目标设备的方式来完成。

       需要注意的是,U-Boot 的编译过程可能会因目标平台、配置选项和环境而有所不同。在进行编译之前,最好查阅 U-Boot 的官方文档,以了解针对你的具体情况需要做哪些配置和操作。

安装编译工具和依赖

  1. 安装基本工具:确保你的系统已经安装了一些基本的开发工具,比如 gccmakegit 等。你可以使用包管理器来安装这些工具。例如,在 Ubuntu 上可以使用以下命令安装:

    sudo apt update sudo apt install build-essential git

  2. 安装交叉编译工具链:U-Boot 是针对嵌入式系统的,因此需要使用交叉编译工具链来编译它。你可以从交叉编译工具链的供应商处获取适合你的目标平台的工具链,或者使用一些开源的工具链,比如 Linaro。安装交叉编译工具链通常需要从官方网站下载并解压,然后将其添加到系统的 PATH 环境变量中。例如,假设你正在编译 ARM 架构的 U-Boot,你可以从 Linaro 下载适合 ARM 架构的交叉编译工具链,然后解压并添加到 PATH 中。

  3. 安装其他依赖项:除了基本的开发工具和交叉编译工具链之外,可能还需要安装一些其他的依赖项,比如 bisonflex 等。你可以根据 U-Boot 的编译文档或者错误信息来确定需要安装哪些依赖项。例如,在 Ubuntu 上可以使用以下命令安装:

    sudo apt install bison flex

  4. 获取 U-Boot 源代码:使用 Git 从 U-Boot 的官方仓库中克隆源代码。你可以在 U-Boot 的官方网站上找到仓库地址。克隆命令示例:

    git clone https://git.denx.de/u-boot.git

一旦安装了所需的工具和依赖项,并获取了 U-Boot 的源代码,你就可以根据 U-Boot 的编译文档进行进一步的配置和编译了。

获取uboot

要获取 U-Boot,可以通过以下几种方式之一:

  1. 从官方 Git 仓库获取:U-Boot 的源代码托管在 Git 仓库中。你可以直接克隆 U-Boot 的官方 Git 仓库来获取源代码。仓库地址通常是:https://git.denx.de/u-boot.git。你可以使用 Git 命令来克隆仓库:

    git clone https://git.denx.de/u-boot.git

  2. 从发布页面下载:U-Boot 的发布页面会提供预编译的源代码包,你可以直接从这些页面下载源代码。通常发布页面会提供 tarball 形式的源代码包,你可以从 U-Boot 的官方网站或者其他可靠的来源下载。

  3. 使用包管理器:有些 Linux 发行版的包管理器中可能提供了 U-Boot 的预编译版本。你可以通过包管理器来安装它。不过需要注意的是,这种方式可能不是最新版本,而且可能会根据你的发行版而有所不同。

查看切换分支

要查看当前所在的分支,可以使用以下 Git 命令:

git branch

这将列出所有本地分支,并在当前分支前面标记一个星号。当前分支所在的位置也可以在命令行提示符的前面显示。

如果你想查看所有分支(包括远程分支),可以使用 -a 选项:

git branch -a

如果你想查看远程分支,可以使用以下命令:

git branch -r

如果你想查看某个特定的分支的详细信息,可以使用以下命令:

git show <branch_name>

这些命令将帮助你了解当前所在的分支以及其他可用的分支。

uboot工程结构分析

U-Boot 的工程结构相对复杂,但通常包含以下一些关键的目录和文件:

  1. arch/:该目录包含了 U-Boot 在不同处理器架构上的特定代码,比如 ARM、x86 等。

  2. board/:该目录包含了各种硬件板级支持(BSP)的代码,每个板级支持都有一个对应的子目录,其中包含了该板的配置文件和初始化代码等。

  3. cmd/:该目录包含了 U-Boot 支持的命令的实现代码。每个命令通常都有一个对应的 .c 文件,实现了命令的功能。

  4. common/:该目录包含了一些通用的代码,比如启动代码、环境变量管理、设备树处理等。

  5. configs/:该目录包含了 U-Boot 的配置文件,每个配置文件对应一个特定的硬件平台或开发板,其中定义了编译 U-Boot 所需的配置选项。

  6. disk/:该目录包含了一些磁盘驱动程序的实现,用于支持不同的文件系统和存储设备。

  7. drivers/:该目录包含了一些硬件驱动程序的实现,包括串口、网络、存储等。

  8. include/:该目录包含了 U-Boot 的头文件,其中包含了各种结构体、宏定义和函数声明等。

  9. tools/:该目录包含了一些工具和脚本,用于辅助 U-Boot 的开发和调试。

  10. doc/:该目录包含了 U-Boot 的文档,包括使用手册、开发指南等。

  11. README:该文件包含了关于 U-Boot 的简要介绍和使用说明。

  12. Makefile:该文件是 U-Boot 的顶层 Makefile,定义了编译 U-Boot 的规则和依赖关系。

        以上是 U-Boot 工程结构中一些重要的目录和文件。U-Boot 的工程结构可能会因版本、配置和平台而有所不同,但通常都会包含类似的内容。要了解特定版本的 U-Boot 的详细结构和内容,建议查阅官方文档或源代码仓库。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web服务器--虚拟主机配置

实验1&#xff1a;建立两个基于ip地址访问的网站&#xff0c;要求如下 该网站ip地址的主机位为100&#xff0c;设置DocumentRoot为/www/ip/100&#xff0c;网页内容为&#xff1a;this is 100。 该网站ip地址主机位为200&#xff0c;设置DocumentRoot为/www/ip/200&#xff0c…

EmploLeaks:一款针对企业安全的组织员工信息收集OSINT工具

关于EmploLeaks EmploLeaks是一款针对企业安全的组织员工信息收集OSINT工具&#xff0c;在该工具的帮助下&#xff0c;企业内部的安全人员和管理员可以有效地收集组织内员工的各种信息&#xff0c;并以此来判断组织内部的网络安全态势。 工作机制 首先&#xff0c;该工具会在…

数据驱动实战二

目标 掌握数据驱动的开发流程掌握如何读取JSON数据文件巩固PO模式 1. 案例 对TPshop网站的登录模块进行单元测试 1.1 实现步骤 编写测试用例采用PO模式的分层思想对页面进行封装编写测试脚本定义数据文件&#xff0c;实现参数化 1.2 用例设计 1.3 数据文件 {"login…

STM32CubeMX学习笔记30---FreeRTOS内存管理

一、简介 1 基本概念 FreeRTOS 操作系统将内核与内存管理分开实现&#xff0c;操作系统内核仅规定了必要的内存管理函数原型&#xff0c;而不关心这些内存管理函数是如何实现的&#xff0c;所以在 FreeRTOS 中提供了多种内存分配算法&#xff08;分配策略&#xff09;&#xf…

【Web】2023浙江大学生省赛初赛 secObj 题解

目录 step 0 step 1 step 2 step 3 题目本身是不难&#xff0c;简单复健一下 step 0 pom依赖就是spring 反序列化入口在./admin/user/readObj 输入流做了黑名单的过滤&#xff0c;TemplatesImpl不能直接打 可以jackson打SignedObject二次反序列化绕过 具体原理看下面这…

基于ESP32和ESP8266的物联网开发过程(二)

在做这个项目前&#xff0c;也做了一些调研。项目的初衷是想要用于智能家居。我比较了小米IoT、阿里云、ESPHOME、巴沙云、点灯科技和ONENET等几个平台。最终选择了Onenet&#xff0c;部分原因是之前用过它的多协议版本&#xff0c;但现在这个版本已经下线了。 小米IoT的公测名…

基于JAVAEE的停车场管理系统(论文 + 源码)

【免费】基于JAVAEE的停车场管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89292324 基于JAVAEE的停车场管理系统 摘 要 如今&#xff0c;我国现代化发展迅速&#xff0c;人口比例急剧上升&#xff0c;在一些大型的商场&#xff0c;显得就格外拥挤&…

深入浅出JavaScript继承机制:解密原型、原型链与面向对象实战攻略

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f525; 引言&#x1f9f1; 原型基础⛓️ 原型链的形成&#x1f504; 修改原型的影响&#x1f3c1; 原型链的尽头为什么null标志着结束&#xff1f;实际意义 &#x1f310; &#x1f504; 继承的实现方式1. 原型链继承…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-11.1,11.2-BSP文件目录组织

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

基于SpringBoot的全国风景区WebGIS按省展示实践

目录 前言 一、全国风景区信息介绍 1、全国范围内数据分布 2、全国风景区分布 3、PostGIS空间关联查询 二、后台查询的设计与实现 1、Model和Mapper层 2、业务层和控制层设计 三、WebGIS可视化 1、省份范围可视化 2、省级风景区可视化展示 3、成果展示 总结 前…

【Vulhub靶场】Nginx 中间件漏洞复现

【Vulhub靶场】Nginx 中间件漏洞复现 一、Nginx 文件名逻辑漏洞&#xff08;CVE-2013-4547&#xff09;1. 影响版本2. 漏洞原理3. 漏洞复现 二、Nginx越界读取缓存漏洞&#xff08;CVE-2017-7529&#xff09;1. 漏洞详情2. 影响版本3. 漏洞复现 三、Nginx 配置错误导致漏洞&…

建发弘爱 X 袋鼠云:加速提升精细化、数字化医疗健康服务能力

厦门建发弘爱医疗集团有限公司&#xff08;简称“建发弘爱”&#xff09;创立于2022年&#xff0c;是厦门建发医疗健康投资有限公司的全资子公司&#xff0c;专业从事医疗健康领域的医疗服务。 建发弘爱通过医疗、健康及产业服务三大板块&#xff0c;为百姓提供医疗和健康全生…

【MySQL基本查询(下)】

文章目录 一、update案例 二、Delete案例注意&#xff1a;delete 全表数据的行为慎用&#xff01;truncate 三、插入查询结果案例 四、了解一些函数1.count函数2.sum函数3. avg函数4.max函数5. min函数 五、group by子句的使用案例having和where 一、update 该关键字的功能就是…

k8s遇到的常见问题及解决

1. error: open /var/lib/kubelet/config.yaml: no such file or directory 解决&#xff1a;关键文件缺失&#xff0c;多发生于没有做 kubeadm init就运行了systemctl start kubelet。 要先成功运行kubeadm init 2. 执行初始化kubeadm init ------的时候报错 The HTTP call…

(Mac)RocketMQ的本地安装测试(详细图示)

目录 部署服务 namesrv / broker下载解压缩运行 namesrvnohup ./bin/mqnamesrv & 启动命令详解运行 broker 测试收发消息运行自带的生产者测试类运行自带的消费者测试类 部署 Dashboard 可视化下载打包运行访问 部署服务 namesrv / broker 下载解压缩 官网下载 https://r…

Excel——项目管理,设置时间到期自动提醒及颜色高亮

效果图 第一步、自动获取合同到期日期 1、首先合同【签约日期】和【到期日期】下面的数据必须是日期格式&#xff0c;不能是其它的格式否则无法计算&#xff0c;如果是其它格式需要转换成标准的日期格式&#xff0c;如下图所示。 2、在“到期日期”下面的第一个单元格中输入公…

7 系列 FPGA 产品介绍及选型

目录 Spartan-7 FPGAsArtix-7 FPGAsKintex-7 FPGAsVirtex-7 FPGAsFPGA芯片命名规则DSP资源BRAM资源Transceivers 资源Transceivers 总带宽I/O 个数及带宽参考文档 Spartan-7 FPGAs Artix-7 FPGAs Kintex-7 FPGAs Virtex-7 FPGAs FPGA芯片命名规则 DSP资源 BRAM资源 Transceiver…

快速上手prometheaus grafana 监控

介绍 prometheaus 一个定时输出指标数据的巡检组件&#xff1f; grafana 一个读取指标&#xff0c;可视化的提供了好看界面的组件&#xff1f; 教程 如何和springboot项目集成 【IT老齐153】超级实用&#xff01;十分钟掌握Prometheus与Grafana监控SpringBoot应用_哔哩哔哩_…

100000订单直接拒掉,君子爱财,取之有道

近一个月询盘可谓寥寥无几&#xff0c;成交率为0&#xff0c;今天好不容易接了一个客户询盘&#xff0c;订单总价高达100000&#xff0c;听完细节直接拒掉&#xff0c;至于原因懂的都懂&#xff0c;不懂得等我慢慢道来。 前两天有2个询盘&#xff0c;其中一个是二次开发&#x…

【Python爬虫实战入门】:教你一个程序实现PPT模版自由

文章目录 &#x1f4a5;一、PPT模版爬取&#x1f525;1.1 第一个爬虫&#x1f6b2;1. 获取下载页面链接 ❤️1.2 第二个爬虫&#x1f6b2;1.3 第三个爬虫&#x1f388;2. 文件保存 ❤️1.4 翻页处理 &#x1f525;二、完整代码 &#x1f525;&#x1f525;&#x1f525; Pytho…
最新文章