U-Boot 之零 源码文件、启动阶段(TPL、SPL)、FALCON、设备树
最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,在之前的博文 Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具 中详细介绍了嵌入式 Linux 环境,接下来就是重点学习一下 U-Boot。
文中涉及的代码均放到了我个人的 Github 上:https://github.com/ZCShou/BOARD-STM32F769I-EVAL
,大家可以直接拿来边学习边验证,避免眼高手低。
开发环境
前几天,我将开发环境 Ubuntu 20.04 LTS + Arm GNU Toolchain 10.3 -2021.10 进行了升级,升级后的开发环境及需要注意的问题如下所示(本文后续内容同时对新 / 旧这两个环境进行了验证)。
- 由于 Ubuntu 22.04 LTS 默认是标配 OpenSSL 3.x,而旧版 U-Boot 使用的是 OpenSSL 1.x,因此,该环境编译旧版 U-Boot(从 commit e927e21c07483337ffb63b828d4ddb5e0db342b2 开始添加了相关处理) 将出现一堆警告:
- Arm GNU Toolchain 10.2-2022.02 存在 BUG,导致编译 U-Boot 报错,不要使用这个版本!
- 新版的 Arm GNU Toolchain (10.3 之后的版本)在 Linux 上 GDB 需要 Python3.8。然而,Ubuntu 22.04 默认的 Python 是 3.10。报错如下:
解决方法就是直接手动安装 Python3.8 即可。 旧版的 Arm GNU Toolchain 10.3 -2021.10 不需要 Python 支持sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt install python3.8
起源
U-Boot 起源于 Magnus Damm 编写的名为 8xxROM 的针对于 8xx PowerPC 的引导加载程序。1999 年 10 月,Wolfgang Denk 将其在 SourceForge.net 开源,由于该网站不允许项目名称以数字开头,因此,更名为 PPCBoot(即 PowerPC Boot 的缩写)。2000 年 7 月 19 日首次公开发布 PPCBoot-0.4.1。
- Wolfgang Denk 是 DENX Software Engineering GmbH(简称 DENX) 的创始人,PPCBoot 实际属于 DENX 公司
- 因为 linus ➔ linux 所以 Denk ➔ DENX ?
- DENX 是一家致力于使用自由软件的公司
随着 PPCBoot 被扩展到了 ARM 架构,DENX 认为,PPCBoot 这个名字已经不再合适,于是,在 PPCBoot−2.0.0 于 2002 年 10 月发布时决定将项目更名(SourceForge.net 新建项目)为 Das U-Boot(Universal Boot Loader 的缩写),其中的 Das 是一个德语定冠词,官方说是为了创建一个双关语(致敬经典的 1981 年德国潜艇电影 Das Boot)。
除了官方有些文档称为 Das U-Boot,外界几乎没人用这个名,大家都是直接称呼为 U-Boot。
PPCBoot−2.0.0 就对应 Das U-Boot 第一版 U−Boot-0.1.0 。并紧接着扩展到了 x86 处理器架构。然后,在接下来的几个月中陆续增加了其他架构功能:2003 年 3 月的 MIPS32、4 月份的 MIPS64、10 月份的 Nios II、12 月的 ColdFire 和 2004 年 4 月的 MicroBlaze。
Das U-Boot
现在,U-Boot 已经成为了是嵌入式设备首选的用于包装指令以引导设备操作系统内核的启动加载程序,并且是基于 GPL 协议开源的,项目地址:https://source.denx.de/u-boot。它可用于许多计算机架构,包括 68k,ARM,Blackfin,MicroBlaze,MIPS,Nios,SuperH,PPC,RISC-V 和 x86。
- 代码仓库:https://source.denx.de/u-boot
- Github 仓库:https://github.com/u-boot/u-boot
U-Boot 的代码结构及开发模式在尽可能的遵循 Linux Kernel 的方式,但在实际过程中也存在差异。例如,与 Linux Kernel 类似,在每个版本发布之后,将立即出现一个通常为 21 天的“合并窗口”,然后,在发布 rc1 后,开始以修复错误为主,但是,由于 U-Boot 相对于 Linux kernel 简单很多,因此,它没有 linux 的 Monorepo(Monotree) 模式。
代码风格也是与 Linux Kernel 一样
与 Linux 不同,从 2008 年 10 月的版本开始,U-Boot 版本的名称从没有更深层次含义的数字版本号更改为基于时间戳的编号,通常格式 U-Boot vYYYY.MM.x
,其中,YYYY
是年份(如 2022);MM
是月份(如 08);.x
可能没有,如果存在,这部分是 bug 修复版本(如 1)或者候选版本(如 rc1)。
- 自 2010 年 8 月起,实际的 U-Boot 源代码树中不再有 CHANGELOG 文件,但是,可以使用
make CHANGELOG
命令从 Git 日志动态创建它- 本文主要是使用 U-Boot v2021.10 和 U-Boot v2022.10 这两个版本
架构
U-Boot 其实就是一个功能复杂一些的裸机程序,这个程序最主要的一个功能就是传递内核参数,跳转内核。当然除了跳转到内核,U-Boot 本身还实现了其他一些功能(U-Boot 命令),以方便大家进行各种操作。
U-Boot 支持多种架构的多种 CPU,在众多支持的架构中,ARM 是最麻烦的一个。因为 ARM 卖 IP 且市场占有率相当高,导致产生了非常多的 ARM 核心的厂商,这些厂商会有自己的改动,进一步导致了 U-Boot 的 ARM 架构文件夹(./arch/arm
)下有非常多的 mach-xxx
文件夹。
此外,在 U-Boot 中, board
这个词随处可见,U-Boot 中一大部分代码都是与 board 相关的。CPU(SoC、MCU )本身内部资源是有限的,绝大多数情况,内部资源都无法运行操作系统内核。所以,U-Boot 必须要使用很多 CPU 外部的资源,这些资源就在 board 上了。
文档
大约在 2021 年 7 月份,U-Boot 将文档统一迁移到了新版本,整个文档系统的章节内容也进行了重新组织,界面也焕然一新。新的在线文档地址是 https://u-boot.readthedocs.io/en/latest/,旧版的文档已经无法访问了!
新的文档采用的 Sphinx 文档系统搭建的,Sphinx 也是基于 Python 的,使用的是 reStructuredText 语言格式,文件扩展名通常是 .rst
。现在,文档系统也是向 Linux 看齐了。
- 个人认为,U-Boot 的文档缺少对于总体架构的介绍,缺少图示等直观的示例
- U-Boot 的文章仍然在逐步完善中,代码仓库中有很多介绍文档,但是在线文档系统中搜不到
U-Boot 的文档就位于源代码的 doc
目录下。在源码根目录下(不支持在 doc
目录下),使用命令 make htmldocs
构建脚本就可在 doc 目录下自动建立 output
文件夹,然后该目录下生成 HTML 格式的文档(直接使用浏览器打开 index.html
即可)。
由于我的 Ubuntu 22.04 LTS 中的 Sphinx 升级到了 5.0.1 版,其配置与旧版有些不兼容!U-Boot 目前还没有适配,导致无法生成 pdf、epub 等格式的文档。
- 最小依赖工具:
sudo apt install python3-pip
、sudo pip install -U Sphinx sphinx_rtd_theme
、sudo apt install imagemagick
,如果构建其他格式的文档(如 PDF),还需要安装texlive*
等依赖- 根据构建规则,必须先
make xxx_defconfig
后才能正常运行后面的 make 命令,否则报错找不到.config
文件
源码
源代码可以直接使用 Git 命令 git clone https://source.denx.de/u-boot/u-boot.git
来获取。也可以通过 U-Boot 在 Github 上的镜像仓库来获取 git clone https://github.com/u-boot/u-boot
。我们通常是使用某个特定的 Tags 版本:git checkout v2020.10
。
U-Boot 的源码的结构基本也是向 Linux 看齐(其中部分代码就来自于 Linux kernel),只不过没有 Linux 代码那么复杂。如今,U-Boot 源码每天都有大量变更,最新的版本有 1 万 4 千多个文件,近 300 万行代码。源码中各文件的层级结构可以参考下图:
目录文件
下面是对 U-Boot 源代码中各个目录的一个简介:
- api: 供外部应用程序使用的与架构或设备无关的 API。例如,标准化输入输出,显示,网络 API、存储 API 等,为 CMD 提供支持
- arch: 特定于架构的源码文件。实现了不同体系结构的 CPU,指令集、设备树底层抽象,利用链接绑定实现了符号入口相对位置保持不变,故才能实现将内核镜像拷贝到内存然后进行引导的功能
- arc: 通用的架构文件
- arm: ARM 架构
- lib: 实现了初始化 C 运行时环境(栈/堆指针等的初始化)
- dts: 实现了设备树的底层体系架构依赖的具体抽象剥离
- cpu: 不同的 ARM 指令集的 CPU 分开处理
- mach-xxx: 由于同样的内核相同,各家芯片外设都不尽相同,所以将各自个性实现剥离实现于此,这主要体系在 ARM 体系的芯片,由于 ARM 公司售卖 IP,各家芯片厂商在内核的基础上延伸出各自不同的芯片,所以需要将差异性剥离实现
- m68k: m68k 架构
- microblaze: microblaze 架构
- mips: MIPS 架构
- nds32: NDS32 架构
- nios2: Altera NIOS2 架构
- powerpc: PowerPC 架构
- riscv: RISC-V 架构
- sandbox: 独立于硬件的 “sandbox” 模式。U-Boot 可以使用“沙盒”板在 Linux 主机上运行。这允许在原生平台上进行不特定于主板或架构的特性开发。沙盒还用于运行 U-Boot 的一些测试。
- sh: SH 架构
- x86: x86 架构
- xtensa: Xtensa 架构
- board: 开发板依赖文件,实现了产业链下游,设备厂商的差异性,对于产品设计而言,需要将各自在 boot 阶段需要严格初始化的实现放在这里,比如 IO 口的初始化,产品中大部分 IO 口必须显式设置其初始状态
- boot: images and booting 文件
- cmd: U-Boot 命令相关接口
- common: 与架构无关的一些通用文件. 是 U-Boot 主体,如系统停留在 U-Boot 阶段,CPU 始终在执行一个死循环:
run_main_loop()
- configs: 开发板默认的配置文件。格式均为:
开发板名_defconfig
- disk: 磁盘驱动器分区处理的代码.实现了轻量级磁盘管理
- doc: 该目录下是 U-Boot 的文档,现在使用的是 Sphinx 文档系统。Sphinx 也是基于 Python 的,使用的是 reStructuredText 语言格式,文件扩展名通常是
.rst
。
Sphinx 文档系统使用 make 命令来生成发布的文档,可以生成 html、pdf 等格式。例如,在 源码目录/documentation/ 下执行 make html 命令,就会生成一个 _build 的目录,其中就包含了生成的文档。 - drivers: 设备驱动,这里实现了boot阶段必要的设备驱动,如网口、显示等
- dts: 实现了设备树.用于构建 内部 U-Boot fdt 的 Makefile
- env: 环境支持
- examples: 示例代码
- fs: 文件系统代码(cramfs、ext2、jffs2等)
- include: 头文件
- lib: 通用于所有架构的库例程。比如 CRC 算法,加密算法,压缩算法,字符串操作等
- Licenses: 各种许可证文件
- net: 网络代码,实现网络协议层
- post: 上电自检
- scripts: 各种构建脚本和 Makefile 文件。跟 make menuconfig 配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容
- test: 各种单元测试文件
- tools: 里面包含一系列构建 U-Boot 使用的工具的源代码
源文件过滤
由于 U-Boot 源码文件众多,而具体到某一平台(开发板)之后,其中的大多数文件我们根本不需要。为了学习的方便,剔除无用文件,仅仅保留我们需要的文件对于我们学习将有很大帮助。如果可以正常整理出需要的源代码,那基本对于 U-Boot 的文件结构掌握差不多了。以下是在 VSCode 查看代码时的过滤配置:
{"files.exclude": {"**/.git": true,"**/.svn": true,"**/.hg": true,"**/CVS": true,"**/.DS_Store": true,"u-boot-v2021.10":true,// arch"**/mips": true,"**/powerpc": true,"**/riscv": true,"**/ti": true,"**/x86": true,"**/sandbox": true,"**/arch/{arc,m68k,microblaze,mips,nios2,powerpc,riscv,sandbox,sh,x86,xtensa,um,sparc,s390,parisc,openrisc,nds32,ia64,hexagon,h8300,csky,arm64,alpha}": true,// cpu"**/arch/arm/cpu/{arm11,arm720t,arm920t,arm926ejs,arm946es,arm1136,arm1176,armv7,armv8}": true,// machine"**/arch/arm/mach-[^s]*": true,"**/arch/arm/mach-s[^t]*": true,"**/arch/arm/mach-st[^m]*": true,"**/arch/arm/mach-stm32[$^m]*": true,// dts"**/dts/[^s|^M|^i|^a|^d|^.]*": true,"**/dts/d[^t]*": true,"**/dts/i[^n]*": true,"**/dts/in[^c]*": true,"**/dts/a[^r]*": true,"**/dts/ar[^m]*": true,"**/dts/arm[^v]*": true,"**/dts/s[^t]*": true,"**/dts/st[^m|^-]*": true,"**/dts/stm32[^f]*": true,"**/dts/stm32f[^7]*": true,"**/dts/stm32f7[^6|4|^-]*": true,"**/dts/stm32f769-[^e|d|p]*": true,// configs"**/configs/[^s]*": true,"**/configs/s[^t]*": true,"**/configs/st[^m]*": true,"**/configs/stm[^3]*": true,// "**/configs/stm3[^2]*": true,"**/configs/stm32[^f|^_]*": true,"**/configs/stm32f[^7]*": true,// "**/configs/stm32f7[^6|^4]*": true,// "**/configs/stm32f769-[^e]*": true,// board"**/board/[^s]*": true,"**/board/s[^t]*": true,"**/board/ste": true,"**/board/sto*": true,"**/board/st/st[^m]*": true,"**/board/st/stm32[^f]*": true,// "**/board/st/stm32f[^7]*": true,// "**/board/st/stm32f7[^6|^4]*": true,}
}
由于 U-Boot 很多文件是编译过程中产生的,如何过滤有效文件是个问题。我在网上看到有个网友搞了一个可以根据编译过程提取源代码的脚本:https://github.com/tonyho/Generate_Kernel_Uboot_Project_forIDE,但是经过我尝试,发现并不是很准确,但基本可以用。
配置
U-Boot 源码的配置使用的是 Linux 系统的 Kconfig 配置系统,详细的配置过程说明见独立博文 U-Boot 之四 构建过程(Kconfig 配置 + Kbuild 编译)详解 。所有 U-Boot 支持的开发板,都会在 ./configs
目录下有个默认的配置文件,其中的配置项介绍见独立博文U-Boot 之六 最全配置项(CONFIG_BOARD、CONFIG_SYS)详解。
U-Boot 对于众多架构的支持已经到达了开发板级别。对于一些常用的开发板,U-Boot 直接实现了对他们的支持,也就意味着 U-Boot 可以直接在这些开发板上运行。需要注意,开发板可能需要改动才能使用所有资源。
构建
U-Boot 源码的构建过程使用的是 Linux 系统的 Kbuild 构建系统,Kbuild 详细说明见独立博文 U-Boot 之四 构建过程(Kconfig 配置 + Kbuild 编译)详解 。详细的构建过程见独立博文 U-Boot 之一 零基础编译 U-Boot 过程详解、Image 镜像介绍及使用说明、DTB 文件使用说明,简要构建过程如下所示:
- 获取源代码:
git clone https://github.com/ZCShou/BOARD-STM32F769I-EVAL.git
- 生成配置:
ARCH=arm CROSS_COMPILE=arm-none-eabi- make O=build_stm32 stm32f769-eval_defconfig
- 裁剪:
ARCH=arm CROSS_COMPILE=arm-none-eabi- make O=build_stm32 menuconfig
- 编译:
ARCH=arm CROSS_COMPILE=arm-none-eabi- make O=build_stm32 -j$(nproc)
- 将生成的 Image 烧录到开发板验证
调试参数
在博文 U-Boot 之一 零基础编译 U-Boot 过程详解、Image 镜像介绍及使用说明、DTB 文件使用说明 中,我有详细的介绍,这里就不多说了。下面重点介绍几个在构建中有用的配置(或者说参数)。
O=<dir>
:在构建过程中指定该参数就可以将构建过程中生成的文件全部(包括.config
)放到<dir>
这个目录下,从而避免对源码文件产生污染。需要注意的是,每个命令都必须加该参数。V=1
:输出构建过程中的详细信息。开启后,输出内容非常多。NO_LTO=1
:禁用 LTO(Link-time optimisation)。U-Boot 支持链接时间优化,这可以减少最终 U-Boot 二进制文件的大小。目前,ARM 板可以通过在 defconfig 文件中添加CONFIG LTO=y
来启用这一功能。不支持其他体系结构。LTO 默认为沙盒启用。
XIP
构建镜像文件时,XIP 也是我们遇到的一个比较重要的概念。XIP 是 Execute In Place 的缩写,表示的含义就是生成的 Image 可以在 Nor FLASH 上直接运行,而无需要复制到内存运行。
此外,在 Linux Kernel 编译的时候,也是有 XIP 配置项的,如果我们选择了 XIP 功能,则会专门有 xipImage 这种 Image 文件。当然,一般芯片都没有足够的内部 FLASH 来存放 Linux Kernel 镜像文件,所以很少用。
启动阶段
为了适用于各种 CPU,U-Boot 本身的启动阶段划分为了多个不同的阶段:TPL
➜ VPL
➜ SPL
➜ U-Boot
。在源码代码设计中,SPL 其实是一个框架,TPL
和 VPL
都属于 SPL 框架中的一部分。
TPL
TPL(Tertiary Program Loader,第三段程序加载器) 用于早期的初始化,并且尽可能的小,它负责加载 VPL 或 SPL。根据官方文档,TPL 本身属于 SPL 的精简,代码就在 SPL 代码中,通过宏 CONFIG_TPL_BUILD
来区分,而且,现在只有 powerpc 的 mpc85xx 有这个要求并将实现它。
VPL
VPL 是一个可选的安全启动验证过程。从裸机功能上来看,VPL 是一个独立的过程,负责校验 A/B 两个 SPL,并选择正确的来执行;在代码实现上,VPL 也是 SPL 中的一部分。目前,VPL 的细节还在设计实现中,现在它会直接跳转到 SPL。
SPL
SPL(Secondary Program Loader,第二段程序加载器),这里的第二段程序其实就是指的 U-Boot,也就是,SPL 是第一段程序,优先执行,然后他再去加载 U-Boot。那么 U-Boot 本身已经是一个bootloader了,为啥要有 SPL 这个东西的存在呢?
这个主要原因是对于一些 MCU 来说,它的内部 SRAM 可能会比较小,小到无法装载下一个完整的 U-Boot 镜像,那么就需要 SPL,它主要负责初始化外部 RAM 运行环境,并加载真正的 U-Boot 镜像到外部 RAM 中来执行。
用不用 SPL 取决于自己的芯片,如果资源充足,则可用可不用!
SPL 的对象文件被独立构建并放置在 spl
目录中。这里需要注意,构建 SPL 时,会使用 fdtgrep
工具过滤掉设备树中的一些属性,从而生成一个比较小的设备树文件 spl/u-boot-spl.dtb
。
Falcon Mode
Falcon Mode 就是指的由 SPL 直接启动操作系统内核这种模式,主要用于减少 Bootloader 阶段的时间。U-Boot 本身提供了很多功能,对于某些芯片(应用环境)来说,U-Boot 的众多功能基本不会被使用。
U-Boot
U-Boot 阶段包含完整的 U-Boot 功能,例如,引导逻辑、各种 U-Boot 命令。
设备树
U-Boot 使用与 Linux Kernel 相同的设备树,但是,引导加载器环境与 Linux Kernel 的需求并不一样,因此,U-Boot 添加了一些必要的东西。添加的方式不是更改原有的 Linux Kernel 设备树,而是引入了 *-u-boot.dtsi
的 U-Boot 专用文件。U-Boot 增加的 *-u-boot.dtsi
并不会被其他任何 *.dts
文件件所引用,而是直接在 Makefile 文件中引入。
在编译某个 *.dts
文件时,U-Boot 会自动在要编译的 *.dts
所在目录下查找并包含一个(只会包含一个) *-u-boot.dtsi
到 *.dts
中,包含的优先级由高到低如下:
<orig_filename>-u-boot.dtsi # <orig_filename> 就是 .dts 对应的名字
<CONFIG_SYS_SOC>-u-boot.dtsi
<CONFIG_SYS_CPU>-u-boot.dtsi
<CONFIG_SYS_VENDOR>-u-boot.dtsi
u-boot.dtsi
在实际使用中,有时候我们必须要为自己的开发板指定一个私有 xxx.dtsi
,而这个 xxx.dtsi
通常不能公开,因此直接编辑 *.dts
包含 #include xxx.dtsi
是不可取的。此时,U-Boot 提供了 CONFIG_DEVICE_TREE_INCLUDES
这个配置项来指定我们自己的私有 xxx.dtsi
。
设备树源文件被最终编译为二进制的 DTB 文件,原始的 DTB 文件位于 arch/arm/dts/xxx.dtb
下面,构建系统会复制到 ./dts/dt.dtb
,进一步重命名为 ./u-boot.dtb
。u-boot 支持两种形式将 dtb 编译到 u-boot 的镜像中:
-
dtb 和 u-boot 的 bin文件分离
- 需要打开
CONFIG_OF_SEPARATE
宏来使能。 - 在这种方式下,u-boot 的编译和 dtb 的编译是分开的,先生成 u-boot 的 bin 文件,然后再另外生成dtb 文件。
- dtb 最终会自动追加到 u-boot 的 bin 文件的最后面。因此,可以通过 u-boot 的结束地址符号,也就是 _end 符号来获取 dtb 的地址。
- 需要打开
-
dtb 集成到 u-boot 的 bin 文件内部
- 需要打开
CONFIG_OF_EMBED
宏来使能。 - 在这种方式下,在编译 u-boot 的过程中,也会编译 dtb。
- 最终 dtb 是包含到了u-boot 的 bin 文件内部的。dtb 会位于 u-boot 的 .dtb.init.rodata 段中,并且在代码中可以通过 __dtb_dt_begin 符号获取其符号。
官方不推荐这种方式,建议仅用于调试
- 需要打开
-
另外,也可以通过
fdtcontroladdr
环境变量来指定 dtb 的地址。可以通过直接把 dtb 加载到内存的某个位置,并在环境变量中设置fdtcontroladdr
为这个地址,达到动态指定 dtb 的目的。
参考
- U-Boot 官方文档
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4497388.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
jQuery 操作DOM(三)
标签(空格分隔): 前端学习 创建节点 $(a).html(<h1>helloworld</h1>)操作节点 操作方法用法描述append$(#d1).append(h1)[h1是创建的节点]在id为d1的元素中后插入节点appendToh1.appendTo(#d1)将创建的 h1节点插入d1元素prepen…...

sonar.exclusions 配置无效问题
报无效日志: INFO: Excluded sources: INFO: R.java INFO: 34 files indexed INFO: 0 files ignored because of inclusion/exclusion patterns 报错也说得很清楚,这是 exclusions表达式的问题 错误的写法是 sonar.exclusionsR.java 正确的写法: sona…...

计算机知识储备(一)—— 命令行终端扫盲
本文章 来自原创专栏《ESP32教学专栏 (基于ESP-IDF)》,讲解如何使用 ESP-IDF 构建 ESP32 程序,发布文章并会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨! ↓↓↓通过下方对话框进入专栏目录页↓↓↓ CSDN 请求进入目录…...

计算机网络相关知识点总结
参考javaguide,做回忆和补充,详细参考 HTTP和HTTPS HTTP介绍 http协议:超文本传输协议,超文本可以理解为在网络浏览器中显示的各种各样的内容,其中存在可以指向其他内容的超链接。 并且,http是一个无状态…...

111.二叉树的最小深度-c语言
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. int min(int a,i…...

linux递归深度,求二叉树深度,递归和非递归
1、二叉树定义typedef struct BTreeNodeElement_t_ {void *data;} BTreeNodeElement_t;typedef struct BTreeNode_t_ {BTreeNodeElement_t *m_pElemt;struct BTreeNode_t_ *m_pLeft;struct BTreeNode_t_ *m_pRight;} BTreeNode_t;2、求二叉树深度定义:对任意一…...

LeetCode 104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 直接递归即可: int maxDepth(TreeNode* root) {if (root nullptr) {return 0;}if (root->left nullptr &…...

SpringBoot数据源相关配置
数据源配置 单数据源 配置步骤引入依赖:H2数据库驱动、JDBC依赖、acturator(运维)、web模块(用于测试)、lambok(使用@Slf4j打印日志)。 直接配置所需的Bean,注入容器。数据源:DataSource 事务:例PlatformTransactionManager(DataSourceTransactionManager) 操作:例…...

ios 获取是否静音模式_iOS 判断设备是否静音
在 iOS 设备中,主要有以下两种类型的声音:铃声和提醒:包括电话、短信、通知等系统类的声音(也包括按键音、锁定声,这两者可在设置中设置是否开启),它们受物理静音开关键的控制,也就是说,当设备开…...

尚医通-医院接口添加到统一日志(八)
目录: (1)医院设置接口-添加 (2)医院接口设置-修改和批量删除 (3)医院接口设置-锁定和发送签名 (4)统一异常处理 (5)统一日志处理 ÿ…...

实现二叉树各种遍历算法
目录前言一、题目1.二叉树的各种遍历过程及遍历算法设计。2.实现二叉树各种遍历算法总结前言 提示:记得关注我哦!!! 一、题目 1.二叉树的各种遍历过程及遍历算法设计。 (1) 先序遍历二叉树; …...

软件编写规范(程序效率篇)
//摘抄自华为软件编写规范 1、编程时要经常注意代码的效率 说明:代码效率分为全局效率、局部效率、时间效率及空间效率。全局效率是站在整个系统的角度上的系统效率;局部效率是站在模块或函数角度上的效率;时间效率是程序处理输入任务所需的…...

2021-06-15面试总结
从年初开始准备面试,刚开始准备充足。但是面临着同事都找到合适工作了,我这边还没有着落,有些着急。也反思了自己的问题,但是总是没有进步。比如今天看着看着就是看不进去,或者说看了几天的东西,但在面试面…...

maven坐标Dependencies和Exclusions详解
1、概念介绍 Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2、Dependencies (1)当一个项目A依赖另一个项目B时,项目A…...

java随机点名器的思路_JAVA基础 随机点名器案例
1.1 案例介绍随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现。我们来完成随机点名器&am…...

java随机点名器_Java实现简单随机点名器
2-3随机点名器/*随机点名器*1.储存所有同学的名字*2.总览全班同学的姓名*3.随机点取一人的姓名*/package Chap2Gramma.chooseperson;import java.util.Random;import java.util.Scanner;public class demo {//放全部人的名字static String[] namenew String[100];//计算目前的人…...

【matlab2014B安装教程及下载】
软件:MATLAB版本:2014B语言:简体中文大小:6.38G安装环境:Win11/Win10/WIN 8/WIN7硬件要求:CPU2.6GHz 内存4G(或更高)软件下载:关注VX公众号【AU软件管家】发‘matlab’免费获取 1、鼠…...

Java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档
Java计算机毕业设计糖果销售管理系统源码系统数据库lw文档 Java计算机毕业设计糖果销售管理系统源码系统数据库lw文档本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui、H…...

matlab2014a vs2015,Matlab2014a使用VS2015混合编译
matlab的版本要到2015b才支持vs2015,然而自己电脑上用的matlab2014a,和VS2015社区版,不想重新安装,需要替换其mexopts文件夹,估计就类似于一个mex的Makefile文件,路径为R2014a\bin\win64\mexopts。下载之&a…...

webpack 世界大门(*^_^*)
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。个人看法就是帮我们整理优化项目、个性化定制项目结构,打造出属于自己的项目结构的工具,简单来说 想怎么玩,看自己兴趣吧。 前期准备:先安装依赖包 npm install webpack --save-dev npm install…...

这8到数据架构的面试题,阿里京东的同行都是这样过来的。你看看你会全会了吗?
瑞士计算机科学家Niklaus Wirth在1976年写了一本书,名为《算法数据结构编程》。 想要面试过的去,就得数据结构记得溜,面试的时候果然是,还好自己刷题比较多,这也验证了一个说法,大家在面试字节等目前比较火…...

将yolov4的权重文件转换为wts文件
1、从以下地址下载cfg文件: https://github.com/AlexeyAB/darknet/tree/darknet_yolo_v4_pre/cfg其中有yolov4-custom.cfg和yolov4.cfg两种文件,我们使用第二个文件,第一个文件会报如下错误: Traceback (most recent call last)…...

Global CRO Parexel Statistical Programmer, Biostatistician 热招中
精鼎医药 岗位: 统计编程师和生物统计师 要求: 一年相关经验 地点: 北京 上海 广州 沈阳 成都 homebase...

三年开发,面试八家大厂,四面拿美团 offer(Java 后端)
自我介绍 本人三年开发,985 硕士,211 本科,专业都是软件工程,一直投的是 Java 后台开发,只投过一次网易的测试,技术不是太牛,但是比较努力。实验室没有项目,so 项目经验是 0&#x…...

2021最新Java笔经,王者笔记!
第一个:Alibaba[搜索推荐] 一面:算法题:长度为n的数组里放了n1个大小在[1,n]的数,必然至少有一个重复的数,找出来 二面:概率题:求一根绳子被切两刀能组成一个三角形的概率。 三面主管面:FM推导&…...

解决java.lang.OutOfMemoryError: unable to create new native thread问题
解决java.lang.OutOfMemoryError: unable to create new native thread问题参考文章: (1)解决java.lang.OutOfMemoryError: unable to create new native thread问题 (2)https://www.cnblogs.com/sprinng/p/6900276.…...

2021年阿里Java岗面试必问,含答案解析
第一家是美团 美团的话,三面下来,设计的内容知识也是挺广的吧,有MySQL、Redis、Kafka、线程、算法、、volatile、线程、并发、设计模式等等… 一面问题:MySQLRedisKafka线程算法 mysql知道哪些存储引擎,它们的区别 …...

国产软件不惧微软,WPS力扛大旗,新型办公软件争相助力
金山作为程序员的“黄埔军校”,输入了一批批互联网大佬,小米的雷军、哔哩哔哩的陈睿、蓝港互动的王峰等都师出金山。WPS作为金山拳头作品,有着“国民软件”美誉,功能强大,使用体验一点不输微软word,然而有一…...

Nginx+Springboot+Vue 前后端分离 解决跨域问题
NginxSpringbootVue 前后端分离 解决跨域问题参考文章: (1)NginxSpringbootVue 前后端分离 解决跨域问题 (2)https://www.cnblogs.com/amos-turing/p/10020095.html 备忘一下。...

小学生C++编程基础 课程7(B)
904.等差数列 (课程7) 登录 905.双等差数列 (课程7) 登录 906.打印数列1 (课程7) 登录 907.打印数列2 (课程7) 难度:1 登录 908.对称数列 (课程7) 登录 909.个位数是7 (课程7) 登录 910.打印数列3 (课程7) 登录…...

redis反弹shell时kali无法接收回弹的解决方法
无法接受回谈大概率是bash命令写的不对,那个crontab中间的星号个数是有意义的,不是随便加的,下面贴一下crontab的基本用法 https://www.cnblogs.com/zhoading/p/11572630.html {minute} {hour} {day-of-month} {month} {day-of-week} {full-p…...

Git创建第一个仓库
一、创建标题Git仓库 1、已经有项⽬代码 $ cd 项目代码在的文件夹 $ git init2、新的项⽬目代码 cd 某个⽂文件夹 git init your_project_name #会在当前路路径下创建和项⽬目名称同名的⽂文件夹 cd your_project_name二、设置用户信息 git config ---local user.name ‘青…...
2-1个人小程序注册
首先访问微信小程序申请,选择小程序, 点击查看详情 拉到页面最下面点击前往注册进入小程序申请页面 填写对应信息,(注意邮箱不能是注册过微信公众平台或微信开发平台的邮箱),点击注册后会发送激活链接到你的注册邮箱,登录邮箱点击…...

maven:exclusions 来进行排除依赖
设A依赖B,B依赖C 现在想排除A对C的间接依赖 1:使用<optional>true</optional>不让C传递 <dependency><groupId>C</groupId><artifactId>C</artifactId><version>1.0</version><scope>com…...

matlab2014A安装教程及下载
为避免安装失败或者软件包不一样导致过程不同务必使用我们的软件包) 软件免费下载方法: 1.打开手机VX点击【通讯录】2.点击【公众号】3.点击【添加公众号】4.输入【AU软件管家】5.找到【AU软件管家】双击进入6.点击【关注】7.点击【软件安装】8【找到想…...

elasticsearch7.x clusterAPI之voting_config_exclusions
voting_config_exclusions POST _cluster/voting_config_exclusions/<node_name> 将节点添加到投票配置排除列表。 DELETE _cluster/voting_config_exclusions 删除投票配置排除列表所有排除项。 默认情况下,如果集群中有超过三个可选主节点,…...

随机点名器
随机点名器案例 一、案例介绍 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。 我们来完成随机点名器,它具备以下3个内容: 存储所有同学姓名总览全班同学姓名随机点名其中一人,打印到控制台 …...

第六章 Hystrix断路器详解
一、Hystrix的背景及介绍 1、分布式系统面临的问题 分布式系统面临的问题:服务雪崩 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微…...

点名器
<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}h3{height: 45px;color: white;text-align: center;line-height: 45px;background-color: #6495ED;box-shadow: 3px...

VTK笔记-线段平滑-vtkSplineFilter类
在实际的开发中,提供有限的连续线段组成一条曲线,需要将该条曲线进行插值处理,生成更高采样率的曲线;这种情况下就需要进行插值;VTK中的线段插值是通过B样条插值实现,使用vtkSplineFilter完成这一功能&…...

在html设置cron,quartz cron表达式 每周一0点怎么设置
Springquartz 做定时任务时,每5分种执行一次,怎可以使用cron表达式写,* 5 * * * * *。以下为cron表达式详解: Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含…...

智慧物业
01.毕设-上 01.概述.mp4 02.开题报告一.mp4 03.开题报告二.mp4 04.开题报告三.mp4 05.论文一.mp4 06.论文二.mp4 07.论文三.mp4 08.答辩PPT.mp4 02.毕设-中 09.毕设相关文档编写总结.mp4 10.毕业设计项目开发流程…...

膜前氟离子超标的解决方法,除氟离子技术
原水氟化物浓度在150mg/l左右,处理水量大概在30m/h,要求出水氟化物浓度要小于10mg/l,同时呢对出水稳定性方面要求也非常严格。 “预过滤系统离子交换除氟反渗透系统超纯水系统”的工艺,利用季胺1型官能团选择性吸附氟化物&#x…...
关于胶囊网络(Capsule Net)的个人理解
原文链接 最近在跟踪keras的contri版的更新时,发现了冒出了一个Capsule层。于是我百度谷歌一顿操作猛如虎,才发现在很早之前,胶囊网络的概念就提出了。但是限于胶囊网络的performance并不是在各个数据集都是碾压的情况,并且其计算…...

一起用Python做个上课点名器,好玩又实用!
前言 前段时间,用PyQt5写了几篇文章,关于Python自制一款炫酷音乐播放器、自定义动态壁纸、车牌自动识别系统。今天就继续给大家分享一个读者粉丝投稿的,关于上课点名的实战案例,一起来看看是如何实现的吧! 首先我们还…...

数据结构与算法这么重要还不会?字节内部笔记来帮你轻松拿下!
对任何专业技术人员来说,理解数据结构都非常重要。作为软件开发者,我们要能够用编程语言和数据结构来解决问题。编程语言和数据结构是这些问题解决方案中不可或缺的一部分。如果选择了不恰当的数据结构,可能会影响所写程序的性能。因此&#…...

【Matlab系列】MATLAB2014a/2018a高版本 videoinput读取摄像头解决方案
Date: 2022.4.15 文章目录 前言1、2014版本解决方案2、2018版本解决方案前言 在实际MATLAB开发项目中,需要使用videoinput函数读取本地摄像头,但是不同MATLAB版本存在兼容性的问题。下面讲解具体解决方案。 1、2014版本解决方案 点击“Support Package Installer”,弹出如…...

Maven中的元素Exclusions、modules、parent、properties以及import
Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2、Dependencies (1)当一个项目A依赖另一个项目B时,项目A可能很少一部…...

mac matlab 模糊,MATLAB 2014a 在Mac OS X yosemite 10.10 Retina显示模糊的解决办法
Matlab 2013a之后使用自带的Java,由于Matlab 2014a使用自带的java,版本比较低,造成无法支持Retina屏。因此,Mac OS X在升级到yosemite之后都遇到了Matlab显示模糊的问题。解决办法分2步:1. 安装最新版的JDK,…...

LeetCode-5. 最长回文子串-Java
暴力法 //暴力法public String longestPalindrome(String s) {String res"",temp;int ls.length();int max0;int tempL0;for(int i0;i<l;i) {for(int ji1;j<l;j) {temps.substring(i,j);tempLtemp.length();if(isPalindrome(temp) && tempL>max) {m…...

ThinkPad开机进入启动项选择、Bios以及更改Fn功能键、交换Fn和Ctrl位置
首先看ThinkPad电脑键盘布局(图片来源于网络): 1.进入开机选项和bios 正常开机,然后选择重启,此时在出现Lenovo画面时,下方会有一行操作提示字,如图所示: 这行字表示:按…...

(01)微信小程序注册申请
20191230 未来的半年将进行一个微信小程序开发的项目,所以进行记录 具体内容没想好,目前想练习开发一个答题游戏。但是需要提前准备一下技术,未来将记录学习中遇到的问题以及开发进度 首先必须从注册申请账号开始,因为我在春天…...

python+matlab2014b混合编程
pythonmatlab2014b混合编程环境配置 编程环境: Win10python3.7 >> python3.3.*matlab2014b 环境安装: 安装matlab.engine包 安装路径:matlab\extern\engines\python\ > python setup.py这里遇到的问题是matlab2014b的扩展包不支持…...

matlab2014演示在哪,matlab2014安装时crack文件在哪里,从哪个文件下面
盘空间不足解决方法与步骤:1、打开我的电脑——文件夹选项 ——查看——显示所有文件和文件夹,把“隐藏受保护的系统文件”勾去掉,确定。 关闭系统还原:右键我的电脑——属性——系统还原——关闭所有磁盘上的系统还原;并删除相应…...

SpringBoot专栏:动态设置定时任务(Scheduling Tasks)与并发编程(15讲)
前情回顾 通过上篇文章:SpringBoot专栏:集成定时ScheduledTasks任务(第14讲)的简单讲解,我们都看到了SpringBoot做了很多自动配置,使集成变得异常简单。 然则我们不应该停留在基本使用上,所有…...

ADB命令使用大全
此文章内容整合自网络,欢迎转载。 我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,根深的也不知道了,其实我们完全可以了解多一点,有一些不常用的场景我们至少应该知道它可以做…...

Python 五种图片相似度比较方法
均值哈希算法 # -*- coding: utf-8 -*- import cv2 import numpy as np# Hash值对比 def cmpHash(hash1, hash2,shape(10,10)):n 0# hash长度不同则返回-1代表传参出错if len(hash1)!len(hash2):return -1# 遍历判断for i in range(len(hash1)):# 相等则n计数1,n最…...

使用iText生成PDF文件中创建表格
前言 使用iText的JAR包如下 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.1</version> </dependency> <!-- 输出中文所需--> <dependency><groupId>com…...

滤波器分类及参数
滤波器设计 定义 系统输出信号的频谱与输入信号的频谱不一致(频率成分发生了变化),此系统可看作一个滤波器系统 只要系统包括零点,极点就可以看作滤波器系统 系统函数决定了滤波器系统 分类 滤波能力 低通;高通;带通;…...

论文阅读_胶囊网络CapsNet
介绍 英文题目:Dynamic Routing Between Capsules 中文题目:胶囊之间的动态路由 论文地址:https://papers.nips.cc/paper/2017/file/2cad8fa47bbef282badbb8de5374b894-Paper.pdf 领域:深度学习 发表时间:2017 作者&a…...

C++中的成员函数与非成员函数
1.成员函数和非成员函数 其实简单来说成员函数是在类中定义的函数,而非成员函数就是普通函数,即不在类中定义的函数,其中非成员函数比较典型的是友元函数。 2.详细解释 成员函数是类定义的一部分,通过特定的对象来调用。成员函数可…...

C++的成员函数声明与定义 —— 类外定义成员函数以及inline函数
作者原文:https://www.cnblogs.com/wuchanming/p/4061654.html 类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是&…...

类的成员函数
定义 函数的定义一般在类外面,也可以直接在类内部定义。前者与普通函数不同的是,实现成员函数时要指明类的名称,具体形式为:返回值类型 类名::函数成员名(参数表){函数体};而后者一般为一些短小的函数(5行以内…...

C++类的成员函数
1 C类的成员函数 1.1 C类成员函数的性质 类的成员函数是函数的一种,它的用法和作用和一般函数基本上是一样的,它也有返回值和函数类型。它与一般函数的区别只是:它是属于一个类的成员,出现在类体中。它可以被指定为private&#…...

什么是成员函数
item1.isbn() item2.isbn() 调用名为isbn的成员函数(member function)。成员函数是定义为类的一部分的函数,有时也被称为方法(method)。 我们通常以一个类对象的名义来调用成员函数。例如:上面相等表达式…...

成员函数的定义
成员函数的定义 如上所述, 类中含有两种成份,即数据成员和成员函数, 其中成员函数也称方法。实际上,成员函数和方法指的是同一种实体, 是一种实体的两种不同叫法, 成员函数是程序设计语言 C 中的术语,而方法是面向对象方法中的术语。在以后的叙述中, 本书采用术语成员函数。…...

C/C++编程:成员函数
什么是成员函数 在类中声明的函数就叫做成员函数 考虑用struct实现日期的概念:定义Date的表示方式和操作这种类型的变量的一组函数: struct Date{int d, m, y; };void init_date(Date &d, int, int, int); //初始化 void add_year(Date &d, in…...

【C++】成员函数
C成员函数(Member Functions) 目录 C成员函数(Member Functions) 1、成员函数定义(Member Function Definition) 2、内联(Inline) 3、常成员函数(Const Member Func…...

线程启动、结束与创建线程写法
线程启动、结束与创建线程写法 范例演示线程运行的开始和结束 通过前面的学习已经知道,一个程序运行起来就生成了一个进程,该进程的运行也代表着该进程所属的主线程开始自动运行。主线程就从main主函数开始执行,如果main函数执行结束&#…...

长安汽车推动新伙伴变革重塑供应链模式发布长安智电iDD技术
1月12日,以“携手勇进一路有你”为主题的2023长安汽车全球伙伴大会在重庆大剧院举行。此次大会,是长安汽车总结过往生产经营良好态势,研判行业未来发展趋势,发布最新企业发展战略,与全球合作伙伴共谋新未来,…...

android 健康设备,分享e疗(智能健康设备)
分享e疗app结合对应的健康智能设备为你开启最好用的健康数据管理,实时监测你的身体数据,为你的健康保驾护航,还能开启各种预警功能,紧急警报功能等等,详细的数据报表清晰展示,十分的好用!点击下载分享e疗app试一试吧!分享e疗软件介绍分享e疗app是一款和智…...

治愈大量患者,荣获一致认可
张建法先生,乃济仁堂中医药研究院院长,济仁堂第十三中医传承人。行医二十余年,治愈疑难杂症数千例,获得患者的认可!张建法院长,生于中医世家,一生致力于中医研究。 一、勤学苦读,孜孜不倦 张建法…...

【养生】第一步-----筑基
要学丹,首先要学点理论.首先要知道什么是丹,所谓的丹,乃是识神的一个依托,而得丹并不就是得道,也不能长生不老.道家认为,虽然万物在自然条件下都会死亡,但是因为有阴就有阳,所以,任何事物都不是绝对的,也就是说,有上就有下,有左就有右,有生就有死,任何事物都有相反的一面.而死亡…...

小孩子注意力不集中怎么办?
咱们在之前的文章【孩子注意力不集中的原因到底是什么】有过详细地分析,孩子注意力不集中的本质原因你还记得是什么吗? 不管孩子有什么问题,解决的路径都是一样的,首先你得认识问题,然后分析问题,最后才能…...

二十、解释器模式 ( Interpreter Pattern )
解释器模式(Interpreter Pattern)实现了一个表达式接口,该接口解释一个特定的上下文 这种模式被用在 SQL 解析、符号处理引擎等 解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式 摘要 1、意图: 给…...

用计算机算日期,200天纪念是在哪一天,几月几日?
2007-04-19古代怎样用天干地支来表示日子?古天干地支天干地支简称为“干支”天干地支相当于树干和树叶。它们是一个互相依存,互相配合的整体。中国古代以天为“主”,以地为“从”。“天”和“干”互联叫做“天干”;“地”和“支”互联叫做“…...

地支循藏的秘密
地支循藏的秘密 作者:李均宇(李林星) EMAIL:myvbvctom.com QQ:165442523命理学上有天地人三元之说,天干为天元,地支为地元,人元则是指地支中所藏含的天干。十二地支,每个地支中分别藏着一个、二个或三个天干,即…...

002. 顺应自然,人才会活的好
002. 顺应自然,人才会活的好1. 经文2. 释义2.1 昼夜阴阳2.2 人体阴阳3. 人之现状4. 扩展知识4.1 子午流注学说4.2 每一个时辰都与一种动物有关4.3 一天的四季4.4 阴阳学4.4 格局4.5 三焦4.6 糖尿病4.7 六脏六腑1. 经文 故曰:阴中有阴,阳中有…...

python爬虫—— 抓取今日头条的街拍的妹子图
AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 近期在学习获取js动态加载网页的爬虫,决定通过实例加深理…...

子午流注和五运六气windows版安卓版ASP网页版
子午流注和五运六气windows版安卓版ASP网页版 子午流注和五运六气windows版:http://lisoft.ok8.me 五运六气windows版V4.1(简体中文版)下载地址:http://ishare.iask.sina.com.cn/f/20647234.html 五运六气windows版V4.1(繁体中文版)下载地址:http://ish…...

子午流注
籍《灵枢》:「经脉流行不止,与天同度,与地同纪。 中医学的宇宙观着重天、地、人合一。人体的健康,受气节变化、地理环境、以致时间运转的影响。每日的十二时辰(每两小时为一时辰)与人体的十二条经脉息息相关,而经脉又与…...

身体各个时辰的变化
传统养生理论认为,人体各主要器官在一天中的十二个时辰内都有其相对固定的活动频繁期,即“生物钟”。 自然状态下,“小周天”运行一周恰好是一天,所以“小周天”也叫“子午周天”。中医经络学的“子午流注”理论就来源于此…...
[生存志] 第127节 子午行流注
子午行流注 “周痹”篇中,提出『周痹之在身也,上下移徒随脉,上下左右相应,间不容空,是其痛之移也,间不及下针,其搐痛之时,不及定治,而痛已止矣』的问题&#x…...

解析 json,整理分散数据入库
【问题】在 json 文件中有以下内容:现在需要将 json 中分散的数据整理入库。“LIST”中包含多个子孙记录,主要目标是”GROUPNAME”、”SERVICES”。“GROUPNAME”值、”SERVICES”中的键编号对应了数据库表 _groups 的 Groupname 和 ID。“SERVICES”每个…...

VBA按区导出电脑字库区位码
Its easy:Sub getallquwei()Dim i As Byte, j As Byte, k As Byte, n As Integer, arr(1 To 1000, 1 To 10)n 1For i 16 To 87For j 1 To IIf(i 55, 89, 94)k k 1arr(n, k) Chr("&H" & Hex(i 160) & Hex(j 160)) & "(" & i...

springMVC的学习拦截器之验证用户登录案例
文章目录实现思路关于环境和配置文件pomspring的配置文件关于idea的通病/常见500错误的避坑实现步骤编写登陆页面编写Controller处理请求编写登录成功的页面编写登录拦截器实现思路 有一个登录页面,需要写一个controller访问页面登陆页面提供填写用户名和密码的表单…...

关于嵌入式学习和规划,求指点?
在知乎上收到的一个提问问题:各位大佬好,我先说说基本情况,28岁,北京,嵌入式软开,军工行业。硕士毕业一年半。工作不忙收获很少,造成我自己特别迷茫,没有了方向,自己学没…...

狗厂的N+1+2毕业,我觉得还是挺良心的
最近又跟朋友打听到了新鲜事,年底的新鲜事,什么209万,就是听个乐子,离我太远,什么HR和技术人员产生矛盾,一巴掌眼镜都打飞了,好乱套,今天我跟朋友打听了一些不太乱套的 一、鹅肠 1.…...

adb: failed to install ebug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
通过cmd 安装apk的时候发现这个问题: adb: failed to install ebug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 解决方案:adb install -r -d C:\Users\xxx\Desktop\EEntry.apk(包名) 输入这行命令即可...

交换机配置导致Elasticsearch集群Down
es集群down 现象:华为大数据集群告警(告警ID43203:Elasticsearch实例存在down状态的主分片,一般告警ID43202:Elasticsearch实例存在down状态的副本分片),频繁发生。Elasticsearch全部down导致集…...

几款代码比较工具
几款代码比较工具 优秀的代码比较工具Beyond Compare 软件功能:用于比较和合并源代码 Beyond Compare 是一款不可多得的专业级的文件夹和文件对比工具。使用他可以很方便的对比出两个文件夹或者文件的不同之处。并把相差的每一个字节用颜色加以表示,查…...

OpenCV中关于二维仿射变换函数estimateAffinePartial2D的源码分析
二维仿射变换及其接口 关于二维仿射变化的介绍:https://www.cnblogs.com/yinheyi/p/6148886.html OpenCV3.4.1中提供的接口为:estimateAffinePartial2D(),用于计算两个2D点集之间具有4个自由度的最优有限仿射变换。 其函数具体实现位于&am…...

诸曼华中职计算机vb程序设计教学策略研究,中职学校编程语言教学的实施策略.doc...
中职学校编程语言教学的实施策略精品论文 参考文献中职学校编程语言教学的实施策略郑 晴 辽宁省鞍山市广播电视学校 114200 编写程序是学习计算机很重要的一部分,但对于中等职业学校计算机专业的学生来讲,由于编程语言具有抽象化、模块化、推理能力很…...

[半监督学习] AggMatch: Aggregating Pseudo Labels for Semi-Supervised Learning
受立体匹配(Stereo Matching)中代价聚合(cost aggregation)和 Transformers 中 self-attention 的启发, 提出一个聚合模块, 它通过考虑实例之间的相似性来聚合标记和未标记数据的初始伪标签. 为了扩大当前 mini-batch 之外的聚合候选数据, 利用一个队列来记录训练期间上个 batc…...

VB和COM的宝书
VB和COM的宝书关键字:Advanced Visual Basic、VB、COM、高级、书评难度:高级 Matthew Curland的《Advanced Visual Basic》,一本不折不扣的VB宝书。一个星期前我终于收到从 上海新风雨网络书城(http://www.cnforyou.comÿ…...

多线程学习系列二(使用System.Threading)
一、什么是System.Threading.Thread?如何使用System.Threading.Thread进行异步操作 System.Threading.Thread:操作系统实现线程并提供各种非托管API来创建和管理线程,CLR封装这些非托管线程,在托管代码中通过System.Threading.Th…...

【转】VB和COM的宝书
Matthew Curland的《Advanced Visual Basic》,一本不折不扣的VB宝书。一个星期前我终于收到从 上海新风雨网络书城(http://www.cnforyou.com)邮购的这本书的中译本《高级Viusual Basic编程》。 中国电力出版社2001年5月出版,时隔近…...

数模论文
小区开放对道路通行的影响 摘要 本文首先对小区开放的评价指标进行了研究,开放小区可由路网的负荷度,排队长度,道路通行能力,流量通行能力比率 ,控制延误,空间伸缩指数等分析指标来判断。在规定范围内可以…...

.NET本质论 方法
方法和JIT编译 CLR只执行本机的机器代码.如果一个方法体由CIL组成,那么它就必须在调用之前被转换为本机的机器码(将MSIL编译为本机代码,运行库提供了两种方式.一种就是在安装与部署时的预编译(由NGEN.EXE和MSCORPE.DLL产生).另一种就是用实时(JIT)编译器动态地将其转换为本机代…...

JUC面试(一)——JUCJMMvolatile 1.0
JUC&JMM JMM JUC(java.util.concurrent) 进程和线程 进程:后台运行的程序(我们打开的一个软件,就是进程),资源分配单位线程:轻量级的进程,并且一个进程包含多个线程…...

【.Net实用方法总结】 整理并总结System.IO中Path类及其方法介绍
🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:.Net实用方法总结 🦀专栏简介:博主针对.Net开发和C站问答过…...

5.Django路由path和re_path详解
假设现在有个需求: 需要通过URL进行参数传递,我们该怎么做呢? 其中有个方法就是本文要讲的内容——path和进阶版的re_path。 urls.py文件中的path和re_path 1.path的基本规则: path(test/<xx>/,views.test)第一个参数——test/<xx>/:使用尖括号…...

Android开发之Path详解
目录一、xxxTo方法1、lineTo(float x, float y)2、moveTo(float x, float y)3、arcTo3.1、arcTo(RectF oval, float startAngle, float sweepAngle)3.2、arcTo(RectF oval, float startAngle, float sweepAngle,boolean forceMoveTo)3.3、arcTo(float left, float top, float r…...

node之Path介绍
path 为 Node.js 常用的内置 npm 模块,主要为了更加方便的处理文件与目录路径,通常可通过 const path require(path) 引用。 Windows vs. POSIX POSIX 称之为可移植操作系统接口(Portable Operating System Interface of UINX,…...
【Uipath杂谈】用Datatable处理数据(二)
在上一篇博客中,我花费了很大的力气去提取一个excel表中的数据,可能很多人不明白我为什么要做这件事 上次的实践结果: 但其实这只是第一步,最终我是需要根据这个数据得到下面的结果 Uipath绝对不是简单的提取数据,而是…...

Ubuntu 更改环境变量 PATH
1、什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行。 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径),…...

204:vue+openlayers 学习Attribution各种API,示例展示自定义版权信息
第204个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中个性化修改版权信息,这里主要涉及到Attribution各种属性的设置,所以这里先列出属性的信息,然后用示例来展示如何使用。 名称类型说明classNamestring (默认为“ol-attribution”)CSS 类名。targetH…...
Cookie中path总结
一、Cookie中的path cookie中的path是cookie生效的范围,一般场景下cookie是服务器返回给客户端的一段数据,并且在该cookie的作用域内,每次请求都会在请求头中自动带上该cookie。而path就是这个cookie的作用域范围。 /fileUp/userLogin下创建…...

vscode 增加includepath
方法一: 按下ctrlshift p打开命令,搜索下面关键字 c/c edit configration 修改下面includepath栏, 按上面的说明提示修改 "configurations": [ { "name": "Win32", "includePath": [ "${…...
自定义View中Canvas之Path的详解
上一篇Canvas的绘制图形只能绘制一些常规的,比如点、线、圆、椭圆、矩形等的。如果想要绘制更复杂的图形,那么就得靠Path了。 Path的定义: Path类将多种符合路径(多个轮廓,如直线段、二次曲线、立方曲线等)…...

linux中PATH环境变量的作用和使用方法
关于PATH的作用: PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去…...

奔向光明阿波罗(5)
目录 1.创始人的技术信仰 2.技术优势奠定的品牌基因 3.躬身入局的品牌传播者 4.下半场的艰难曙光 5.对现状和未来的思考 对现状和未来的思考 经公开资料整理分析,目前,社会需求正在促使自动驾驶在多场景开花结果,在全球主要国家的战略规划下…...

c语言贪吃蛇作业报告,贪吃蛇设计报告
北京工业大学耿丹学院c语言设计课程报告课程设计名称:高级语言程序设计专业班级:计算机科学与技术1姓名:吴双学号:1508092012016年4月24日一设计题目………………………………………………………………二总体设计………………………...

Android/Linux 子系统Graphics图形栈入门普法介绍
Android/Linux 子系统Graphics图形栈入门普法介绍 写在最前面 由于工作原因,最近在公司做了一个关于Android/Linux 子系统Graphics图形栈入门相关知识的培训介绍,个人感觉对于想要了解入门这块的朋友还是有一定帮助的。由于博客不能直接放入pptÿ…...

组织行为学笔记:第十三章 技术与人
一、技术的效用 技术的性质 技术的三个特征: 专门性:专业化,分工明细 整体性:将过细的分工回归成整体 变革性:技术的变革接着带来社会的变革,新的管理方法,奖酬指导等 技术与教育 现代社会…...

组织行为学对项目管理的意义(2):人格的大五模型 .
人格可以理解为情绪,思维方式,习惯的复合体,具体左右一个人对周围人事所作出的反应。 在组织行为学里有好多对人格特质进行描述的模型,其中比较有名的一个是大五模型(五维度人格模型)。 在大五模型里用五个…...

中国大学MOOC消费者行为学考试题库(含答案)
选择题(搜题答案解析在优题宝) 1、下列有关消费者行为研究的行为主义范式的说法,正确的有(C) A、强调消费行为的主观性和象征性 B、强调消费者行为的理性. C、其价值在于可以改变或维持消费者行为 D、其价值在于可以洞察、理解消费者行为…...

大工17秋《计算机文化基础》在线测试1,大工17秋《组织行为学》在线测试1答案...
大工17秋《组织行为学》在线测试1一、单选题:1.根据气质的分类,较适合做推销工作的人员的气质类型是( )。 (满分:3)A.胆汁质B.多血质C.抑郁质D.黏液质正确答案:[hide]——B——[/hide]2.组织行为学在中观层面所要研究的主要内容是( )。 (满分:3)A.个体心…...

组织行为学笔记:第六章 组织气氛与行为模式
一、组织气氛 组织气氛就是组织内部一般的人际环境,他萦绕在组织之中,影响着组织内发生的每一件事物,同时组织内出现的任何事物几乎对气氛发生影响。 有的组织热闹喧嚣,效率很高,有的自在休闲,有的富有人…...

组织行为学笔记:第十二章 组织结构和组织设计
一、古典组织理论 任何一个单位都要处理诸如权力,责任,分工,专业化以及各部分之间相互依存,相互联系等基本要素。 工作分工 部门领导把自己单位的工作分成不同层次与职能,然后把人员,资源分配到划分成不…...

DCDC--开关频率的选择
开关稳压器IC使用的开关频率从数十kHz到数MHz,最近有些甚至似乎以高频率工作。 1、重视效率或重视尺寸 如果将开关频率调高,则外置的电感和电容器将使用较小的,尺寸必然会变小。因此,包含安装面积和高度在内的外形尺寸也会变小&…...

【华为OD机试 2023最新 】 开放日活动、取出尽量少的球(C++)
题目描述 某部门开展Family Day开放日活动,其中有个从桶里取球的游戏,游戏规则如下: 有N个容量一样的小桶等距排开, 且每个小桶都默认装了数量不等的小球, 每个小桶装的小球数量记录在数组 bucketBallNums 中, 游戏开始时,要求所有桶的小球总数不能超过SUM, 如果…...

JavaScript学习笔记(9.6)
JSON JSON是Javascript对象标记法 JSON是一种轻量级的数据交换格式 JSON具有自我描述且易于理解 为什么使用JSON:因为JSON格式仅仅是文本,它能够轻松地在服务器浏览器之间传输,并用作任何编程语言的数据格式。 JavaScript提供内建函数把…...

Profinet协议下,MCGS触摸屏能否无线连接PLC?
一、方案概述 本方案以MCGS触摸屏和2台西门子S7-1200为例,介绍触摸屏与多台 PLC的无线Profinet通信实现过程。在本方案中采用了西门子PLC无线通讯终端DTD418M,作为实现无线通讯的硬件设备。 本方案中,用户无需更改网络参数和原有程序&#…...

小白开发微信小程序20--web api文档制作
1、什么是SwaggerSwagger 项目已于 2015 年捐赠给 OpenAPI 计划,自此它被称为 OpenAPI。 这两个名称可互换使用。 不过,“OpenAPI”指的是规范。 “Swagger”指的是来自使用 OpenAPI 规范的 SmartBear 的开放源代码和商业产品系列。简而言之:…...

审核通过≠报名成功,每年都有朋友因这个细节,报名失败
2023上半年软考已经开放报名啦~ 特别提醒:不是提交报考资料后就算报名成功!软考报考流程:提交报考资料→审核通过(一般需要1-3个工作日)→缴费成功→报名成功! 首次报名软考的同学可能很容易忽…...

进销存是什么?如何选择进销存系统?
什么是进销存?进销存软件概念起源于上世纪80年代,由于电算化的普及,计算机管理的推广,不少企业对于仓库货品的进货,存货,出货管理,有了强烈的需求,进销存软件的发展从此开始。 进入…...

【LeetCode】剑指 Offer 30. 包含min函数的栈 p165 -- Java Version
题目链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof/ 1. 题目介绍(30. 包含min函数的栈) 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 p…...

电路基础(4) 电阻电路的一般分析
1.电路的图将上面的电路图,抛开其中元器件的性质,可以提取出“只有线和结点的图”。如果考虑电流等的流向,则可以变化位“有向图”。 提取的有向图少了8那条支路,是因为把元件的并联组合也作为一条支路了。 提取的有向图少了7那条…...

安卓拍照、裁切、选取图片实践
安卓拍照、裁切、选取图片实践 前言 最近项目里面有用到裁切功能,没弄多复杂,就是系统自带的,顺便就总结了一下系统拍照、裁切、选取的使用。网上的资料说实话真是没什么营养,但是Android官网上的说明也有点太简单了,…...

tcpdump命令参数说明和使用实例、linux解析公网地址会卡顿一下解决方法
文章目录tcpdumptcpdump的参数选项基本返回值查看基本用法抓取指定网络接口的所有流量抓取指定网络接口指定主机地址【IP/域名】的所有流量只取出端口 3333 的联机数据包获取指定协议的数据包【如udp】在网口eth1上抓取源端口为80且目的端口为6100的数据包进阶用法【关系运算符…...

HBuilderx快捷键大全(2023)
文章目录1. 项目管理器2. 标签卡3. 文件4. 行操作5. 删除6. 列表符操作7. 剪贴板8. 撤销9. 语言10. 包围11. 选择12. 查找13. 跳转14. 视图15. 运行16. 鼠标配合快捷键17. 其他高效极客技巧1. 项目管理器 操作名称快捷键重命名文件(焦点在项目管理器中)…...

Queue-基于redis的队列
接上文:RBucket对象桶 -> Redisson系列-1(让redis操作更优雅)_子书少卿的博客-CSDN博客 (Queue) 结构的 RQueue Java对象实现了 java.util.queue 接口。尽管 Roueue 对象无初始大小 (边界)限制,但对象的最大容量受Red…...

prometheus03-如何导出prometheus指标
Prometheus是一个开源的监控系统和时间序列数据库,用于收集和存储服务的指标数据。要导出Prometheus指标,你需要使用或实现一个Prometheus Exporter。以下是一个简单的指南,分为三个主要步骤: 选择或实现Prometheus Exporter Pr…...

Pikachu靶场之XXE漏洞
Pikachu靶场之XXE漏洞一、XML和XXE的区别二、解题1.1 前提1.2 使用代码进行文件读取1.3 内网探针或攻击内网应用1.4 RCE1.5 无回显读取文件1.6 xxe绕过一、XML和XXE的区别 XML是传递数据的一种格式,而XXE是XML传递数据过程中产生的一种漏洞,两者是完全不…...

npm发布包教程(四):迭代
一个npm包发布之后,我们难免会修改一些bug,或者增改一些功能,这就涉及到对npm包的迭代。本篇文章就npm迭代涉及到一些知识点进行介绍。 本次演示以《npm发布包教程(二):发布包》中发布的包为基础。 npm包的…...

Apollo 配置变更原理
我们经常用到apollo的两个特性:1.动态更新配置:apollo可以动态更新Value的值,也可以修改environment的值。2.实时监听配置:实现apollo的监听器ConfigChangeListener,通过onChange方法来实时监听配置变化。你知道apollo…...

C语言实现队列(Push Pop Size Front EmptyBack)
队列是一个重要的数据结构,他的特性是先进先出,所以由于这个特性,队列只有一个入口和一个出口,所以只有push和pop 下面我们看一下他如何实现 首先我们来看一下他的结构体 这里我们看到我们定义了两个结构体,其中一个…...

为什么typeof null得到的是Object而不是null?
为什么typeof null得到的是Object而不是null? 因为JavaScript中不同对象在底层都表示为二进制, 而JavaScript中会把二进制前三位都为0的判断成object类型。 而null的二进制表示全是0,自然前三位也是0....

大数据框架之Hive:第12章 企业级调优
第12章 企业级调优 12.1 计算资源配置 本教程的计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。 12.1.1 Yarn资源配置 1)Yarn配置说明 需要调整的Yarn参数均与CPU、内存等资源有关,核心配置参数如下 (1)yarn.nodem…...

typescript(元组、枚举、类、泛型)
元组 数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象 // 数组 let arr:number[] [1,2] // 元组 let arr1:[string,number][1,2] // 但是使用联合类型/类型别名 同样可以实现元组的效果 // 区别是元组对每一项进行类型约束 …...

独闯万亿氢能江湖,未势能源显露“双轮动能”
在时代的洪流中,顺势而为的企业往往能更快拿到通往未来的船票。如火如荼的新能源行业,无疑是当下较为强劲的“势”。在最近的两会上,国家强调今年要推动发展方式绿色转型,关于加速新能源发展的提案也成为热门议题。市场中不少企业…...

基于opencv的边缘检测方法
1、梯度运算 用OpenCV的形态变换( 膨胀、腐蚀、开运算和闭运算)函数morphologyEx 梯度运算即膨胀结果-腐蚀结果: 【注意】对于二值图像来说,必须是前景图像为白色,背景为黑色,否则需要进行反二值化处理 …...

RocketMQ支持哪几种类型的消息
一.普通消息 对于普通消息,RocketMQ提供了三种发送方式:同步发送,可靠异步发送和单项发送。 1.同步发送 可靠同步发送指消息发送方发送数据后,在收到接收方的响应后才会发送下一个消息。 2.异步发送 可靠异步发送指发送方发出消息后,不等待接收方响应,接着发送下一个…...

ElasticSearch - SpringBoot整合ES之指定搜索结果返回的字段
文章目录1. 数据准备2. ElasticSearch 搜索结果返回指定的字段3. SpringBoot整合ES 搜索结果返回指定的字段4. 源码接口Elasticsearch的搜索结果可以通过以下参数进行控制:from:指定搜索结果的起始位置,默认为0。 size:指定返回的…...

arcpy基础篇(5)-使用栅格数据
栅格数据是一个独特的空间数据类型。ArcPy中有一个名为arcpy.sa的空间分析模块,该模块将地图代数全部整合到Python环境中,从而提高了脚本运行效率 1.列出栅格要素 ListRaster函数是以Python列表的形式返回工作空间中的栅格要素,该函数语法如…...

2023最全最牛的Jmeter接口测试教程及接口测试详情,你不知道的东西太多了!
下边是详细的jmeter接口测试入门到精通的详细教程,还有视频版本教您实战操作! 2023年B站最新Jmeter接口测试实战教程,精通接口自动化测试只需要这一套视频_哔哩哔哩_bilibili2023年B站最新Jmeter接口测试实战教程,精通接口自动化…...

redis 存储一个map 怎么让map中其中一个值设置过期时间,而不是过期掉整个map?
文章目录 redis 存储一个map 怎么让map中其中一个值设置过期时间,而不是过期掉整个map?Java 中 怎么 实现?方案一: Jedis方案二: Lettuce方案三: Redisson方案四: Jedisson方案五: RedisTemplate那种方式 效率最高 ?拓展:结语redis 存储一个map 怎么让map中其中一个值设置过…...

10、CLASSIFIER-FREE DIFFUSION GUIDANCE
简介 论文:https://arxiv.org/pdf/2207.12598.pdf 分类器指导将扩散模型的得分估计与图像分类器的梯度相结合,因此需要训练与扩散模型分开的图像分类器。 实验证明,在没有分类器的情况下,指导确实可以由纯生成模型执行 在无分…...

软件测试金三银四快速入职之如何解决HR已读不会的问题?
目录 前言 一、简历到面试分两个阶段 二、重视简历 三、简历优化 四、工作经历 五、项目经验 六、自我评价荣誉, 前言 金三银四现在正是很多人在面试找工作的时候,很多人在面试的时候都会遇到Hr已读不会的问题。今天就主要来讲一下如何解决下面几个问题&…...

开发人员项目开发的步骤
开发人员项目开发的步骤 前言 项目开发目的分析与确定 在开发商将开发项目确定下来之后,需要与需求方进行讨论,确定需求方对于软件开发需要实现的目标及其具体需要的功能等等,并进行可⾏性分析(技术、成本、法律法规)…...

Linux 终端、进程组、会话、守护进程
文章目录一、终端概念终端概念控制终端二、进程组概念进程组概述进程组相关 API会话会话概念会话相关 API创建会话注意事项守护进程守护进程介绍守护进程模型守护进程参考代码守护进程相关 API参考文章一、终端概念 终端概念 1、终端(Terminal) 终端是…...

【MySQL高级篇】第7章_InnoDB数据存储结构
第7章_InnoDB数据存储结构 1. 数据库的存储结构:页 1.1 磁盘与内存交互基本单位:页 1.2 页结构概述 1.3 页的大小 不同的数据库管理系统(简称DBMS)的页大小不同。比如在 MySQL 的 InnoDB 存储引擎中,默认页的大小是 …...

工具篇 | 10 | 抓包工具
1 前期准备 作为测试开发,为什么要使用抓包工具呢,因在调试过程中,会碰到一些问题,不确定是前端的问题,还是后端的问题,就需要通过一种工具来检测,数据的流转,如web界面或者客户端操作,点击了一个按钮或者浏览一个页面,调用了那些接口,那些参数,请求参数,返回结果…...

Notes04:GPIO功能框图详解
GPIO功能框图详解野火霸道开发板学习笔记信息说明GPIO功能框图输出部分推挽输出推挽输出模型分析推挽输出总结开漏输出开漏输出模型分析开漏输出总结输出数据寄存器(ODR)位设置清除寄存器(BSRR)位清除寄存器(BRR)输入部分输入数据寄存器(IDR)TTL肖特基触发器部分模型分析上拉/下…...

2023系统分析师---系统规划
一、系统规划的步骤 初步调查:根据企业战略目标,分析企业现状以及系统运行状况确定系统目标:确定系统的服务范围质量等分析子系统的组成:系统划分并指定子系统功能拟定系统的实施方案:分析子系统优先级,确…...

Leetcode.1814 统计一个数组中好对子的数目
题目链接 Leetcode.1814 统计一个数组中好对子的数目 Rating : 1738 题目描述 给你一个数组 nums,数组中只包含非负整数。定义 rev(x)的值为将整数 x各个数字位反转得到的结果。比方说 rev(123) 321, rev(120) 21。我们称满足下面条件的下…...

[RK356x Linux] 开发之GPIO使用以及gpio-leds驱动讲解
文章目录一、GPIO 介绍二、RK3568 GPIO 状况三、GPIO 引脚计算四、ITX-3568JQ LED4.1 LED 原理图4.2 LED 设备树4.3 LED 使用五、gpio-leds驱动5.1 介绍5.2 数据结构5.3 驱动分析一、GPIO 介绍 GPIO全称为 General Purpose Input/Output,即通用输入输出端口。它是一…...

5.38 综合案例2.0 -语音助手(短信,蓝牙,M2M设备间通信)
综合案例2.0 - 语音助手案例说明原理器件语音助手功能实现1,ASRPRO-2m模块下载代码连线模块编程说明2,模块与开发板接线3,语音助手代码功能1:语音发短信说明功能2:控制蓝牙设备说明蓝牙灯接线图蓝牙灯代码功能3&#x…...

MySQL与分布式:主从复制
文章目录MySQL与分布式一、Linux下载 MySQL二、主从复制①修改配置文件②配置主机③配置从机④查看同步状态提示:以下是本篇文章正文内容,mysql 系列学习将会持续更新 MySQL与分布式 前面我讲解了 Redis 在分布式场景的下的相关应用,接着我们…...

conda@config命令@package cache包缓存共享@Channels@conda install pyside6
文章目录refs检查基本信息config add pkgs_dirs查看condarc源文件按字段查询全部信息conda Channelconda-forge 通道安装packgeconda install cupy不恰当的url Channel导致的错误Channel指定使用完整的url链接conda installconda临时换源conda install 安装pyside6🎈…...

线性动态规划问题
文章目录1. 三角形中最小路径之和2. 最长递增子序列3. 最长公共子序列1. 三角形中最小路径之和 给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层…...

oracle jdbc 处理块 预处理块
DML DML(Data Manipulation Language 数据操控语言)用于操作数据库对象中包含的数据,也就是说操 作的单位是记录。 insert 添加记录时需要满足一下条件 类型 长度 兼容: 字段 兼容值 值满足约束 :主键 (唯一非空) 非空(必填) 唯一(不重复…...

关于函数递归调用导致的StackOverflow那点事
身为工程师,Stack Overflow这网站大家应该都是熟到不能再熟。如果没有他帮忙解决各种莫名其妙的错误或者bug,可能连设定个开发环境都要搞半天,更不用说要开发了,产出直接降低好几倍,不如直接下班算了。 但今天要谈的不是那个Stack Overflow,而是要讲程序在使用內存时,因…...

Pandas数据框、序列定义及数据处理应用在线实验闯关
Pandas数据框、序列定义及数据处理应用在线实验闯关 文章目录 Pandas数据框、序列定义及数据处理应用在线实验闯关一、序列和数据框1、任务描述2、相关知识定义列表和元组序列定义方法构造数据框3、任务实现二、外都数据文件读取1、任务描述2、相关知识读取文件分块读取数据3、…...

简介SpringBoot
目录 一、简介SpringBoot 二、SpringBoot项目的创建与使用 1、创建SpringBoot项目 2、使用SpringBoot项目 三、 SpringBoot中的配置文件 .properties配置文件 读取配置文件信息 .yml配置文件 读取配置文件信息 四、SpringBoot中的日志文件 1、日志文件简介 2、…...

【91数据恢复】.[killhackfiles@cock.li].Devos勒索病毒数据恢复
目录 前言:简介 一、什么是.[killhackfilescock.li].Devos勒索病毒? 二、.[killhackfilescock.li].Devos勒索病毒是如何传播感染的? 三、感染了.[killhackfilescock.li].Devos后缀勒索病毒文件怎么恢复? 四、.[killhackfiles…...

TS接口类型
40. TS接口 1. 定义 TypeScript 中的接口是一种抽象结构,用于定义对象的类型。接口定义了对象应该包含的属性和方法,但不提供实现。 TypeScript 的接口类似于其他编程语言中的接口或抽象类,但不同于它们,接口可以描述对象的形状…...

基于java中的Springboot框架实现网上商城电商系统
基于java中的Springboot框架实现网上商城电商系统开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Mav…...

第四朵“云”!全托管的时序数据云平台 TDengine Cloud 正式支持阿里云
3 月 13 日,全托管的时序数据处理云服务平台 TDengine Cloud 正式支持阿里云,这是继 Microsoft Azure、AWS、Google Cloud 后 TDengine Cloud 上线的第四朵公有云。在去年,TDengine 成功打造 TDengine Cloud 平台并率先上线海外云市场&#x…...

关于docker mysql 请求速度慢的问题
一,问题描述: 请求mysql 数据库,请求速度很慢,需要六七秒,数据量也不大。使用的是docker 容器启动的mysql 二,问题原因: 网上说的是因为MySQL的dns导致,我实测也是有效果的…...

matplotlib 绘图入门
参考:十分钟|matplotlib上手,开启你的python可视化 01 title设置 import matplotlib.pyplot as plt plt.title(“title”)#括号当中输入标题的名称 plt.show() 如果title是中文,matplotlib会乱码,这时需要加上下面这段代码&…...

Dubbo之外,一文看懂jdk、dubbo、spring中的SPI
文章目录前言JDK中的SPI示例总结Dubbo中的SPI基本使用示例AOP示例IOC示例自适应扩展示例小总结Spring中的SPI使用示例总结最终对比唠唠叨叨本专栏对应Dubbo版本:2.7.8。 官方文档地址:https://dubbo.apache.org/zh/docsv2.7/dev/ 官方GitHub地址…...

【业务安全-02】业务逻辑漏洞之越权操作
越权越权即越权查看被人的信息,又分为水平越权和垂直越权,但是两者的本质都是一样的,只是越权的身份权限不一样而已水平越权:相同级别的用户,如用户A访问用户B垂直越权:普通用户到管理员,普通用…...

golang语言面试总结
Golang面试总结(六) 对已经关闭的channel进行读写,会怎么样? 当channel被关闭后,如果继续往里面写数据,程序会直接panic退出。如果是读取关闭后的channel,不会产生panic,还可以读到…...

vue 数据传递方式
1、props $ emit 适用于父子组件子组件使用; props 接收来自父组件的数据父组件绑定, v-on:事件名 监听事件, 子组件使用 this.$emit(‘事件名’) 派发事件; 缺点:如果组件嵌套的比较深就比较麻烦; // Parent.vue <div class"parent"><Child :…...

Android音频子系统(十三)------audio音频测试工具
你好!这里是风筝的博客, 欢迎和我一起交流。 测试音频延时的话,一般使用WALT来测试是最为准确的,他是借助了外部硬件来捕获音频信号,某宝上有卖: 就是有丢丢小贵,本打工人还是想想白嫖的法子……...

diskgenius磁盘管理和数据恢复软件进行数据恢复的注意事项
DiskGenius是一款功能强大的磁盘管理和数据恢复软件,它可以帮助用户对磁盘进行分区、格式化、修复、备份以及数据恢复等操作,同时还提供了丰富的功能和工具,让用户可以轻松地进行数据管理和恢复。 DiskGenius提供了多种数据恢复方式…...

【算法基础】约数(计算约数 约数个数 约数之和 最大公约数)
一、约数 1. 试除法求约数 最朴素的办法是遍历1 ~ n(不是从2开始),如果能被n整除,就输出。但是,类比质数的求法,约数都是成对出现的,因此只需要遍历到根号n即可。for(int i = 1; i <= x / i; ++i),但是需要注意的是,如果这个数是个平方数,则存在正好卡在 x / i …...

Powershell 分隔多条命令
1. Background 在使用 Cmd 或 Bash 等命令行时,有时候会想要在一行同时输入多条命令来顺序执行,而且这样的场景多为在命令1执行完毕后,才会执行命令2,若执行失败则不会继续执行后续命令。 2. Description Cmd 或者 Bash 可以使…...