学习ESP32开发板安装鸿蒙操作系统(新板子esp32c3不支持)
鸿蒙LiteOS网址:LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio
失败的实践记录见:完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)-CSDN博客
鸿蒙系统小助手的操作方案
将鸿蒙系统移植到ESP32开发板上的方法,可以按照以下步骤一步步来操作:
一、准备工作
-
下载鸿蒙系统源码:
- 从鸿蒙系统官方仓库下载最新的源代码,并解压到本地。
-
安装ESP-IDF开发环境:
- ESP-IDF是ESP32的开发框架,用于编译和调试ESP32程序。
- 根据ESP-IDF官方文档的指导进行安装。
二、配置移植环境
-
进入鸿蒙系统源码根目录:
- 打开终端或命令行工具,进入鸿蒙系统源码的根目录。
-
设置编译环境:
- 执行命令
source build/envsetup.sh
来设置编译环境。
- 执行命令
-
切换到ESP32配置:
- 执行命令
lunch esp32-userdebug
或lunch esp32-eng
来切换到ESP32的配置。
- 执行命令
-
配置鸿蒙系统:
- 执行命令
makemenuconfig
进入配置界面。 - 在配置界面中,根据ESP32的硬件特性进行相关配置,如选择Wi-Fi和蓝牙模块、设置时钟频率等。
- 执行命令
三、编译和烧写
-
编译鸿蒙系统:
- 执行命令
make -jN
(N为使用的线程数,可根据电脑性能调整)来编译鸿蒙系统。 - 编译过程可能需要一些时间,请耐心等待。
- 执行命令
-
烧写固件到ESP32:
- 编译完成后,执行命令
make flash
或类似的烧写命令,将生成的固件烧写到ESP32开发板上。
- 编译完成后,执行命令
四、运行鸿蒙系统
-
启动开发板:
- 将烧写完成的ESP32开发板连接到电源,并启动开发板。
-
观察输出信息:
- 可以使用串口工具连接到开发板,观察开发板上的输出信息,确认鸿蒙系统是否成功运行。
注意事项
- 在整个移植过程中,请确保所有步骤都按照官方文档和指南进行,以避免出现不必要的错误。
- 如果在移植过程中遇到问题,可以查阅鸿蒙系统和ESP-IDF的官方文档,或在相关社区和论坛中寻求帮助。
- 确保设备连接同一网络,并保持设备固件为最新版本,以确保功能稳定运行。
通过以上步骤,您应该能够成功地将鸿蒙系统移植到ESP32开发板上,并运行起来。
LiteOS手册
什么是移植,为什么要移植
对于嵌入式设备,由于芯片型号和外设差异较大,且资源有限,所以物联网操作系统无法像 Windows/Linux 那样适配集成所有驱动,因此通常会先适配部分芯片/开发板。为了让操作系统运行在其他芯片/开发板上,此时就需要移植。
开发板的移植包括 CPU架构移植、板级/外设驱动移植和操作系统的移植。
移植目录结构
表格列出了LiteOS源码的目录,其中加粗字体的目录/文件在移植过程中需要修改。
表 1 LiteOS源码目录
一级目录 | 二级目录/文件 | 说明 |
---|---|---|
arch | 芯片架构支持 | |
build | LiteOS编译系统需要的配置及脚本 | |
compat | LiteOS提供的CMSIS-RTOS 1.0和2.0接口 | |
components | 组件代码 | |
demos | 组件和内核的demo | |
doc | LiteOS使用文档 | |
include | components中各模块的头文件 | |
kernel | 内核代码 | |
lib | libc/zlib/posix接口 | |
osdepends | LiteOS提供的部分OS适配接口 | |
targets | bsp | 通用板级支持包 |
Cloud_STM32F429IGTx_FIRE | 野火STM32F429(ARM Cortex-M4)开发板的开发工程源码包 | |
qemu-virt-a53 | Cortex-A53的qemu开发工程源码包 | |
realview-pbx-a9 | Cortex-A9的qemu开发工程源码包 | |
STM32F072_Nucleo | STM32F072_Nucleo(ARM Cortex-M0)开发板的开发工程源码包 | |
STM32F103_FIRE_Arbitrary | 野火STM32F103(ARM Cortex-M3)霸道开发板的开发工程源码包 | |
STM32F769IDISCOVERY | STM32F769IDISCOVERY(ARM Cortex-M7)开发板的开发工程源码包 | |
... | 其他开发板的开发工程源码包 | |
Kconfig | ||
Kconfig.* | 不同厂商开发板menuconfig配置文件 | |
Makefile | ||
bsp.mk | ||
test | 内核测试用例集合套 | |
tests | 组件测试用例集合套 | |
tools | build/config | LiteOS支持的各开发板的编译配置文件,移植新的开发板时,需要在这个目录下增加这个新开发板的编译配置文件 |
menuconfig | LiteOS编译所需的menuconfig脚本 | |
Makefile | 整个LiteOS的Makefile | |
.config | 开发板的编译配置文件,默认为Cloud_STM32F429IGTx_FIRE开发板的配置文件,移植时需要替换成新开发板的编译配置文件 |
target目录下保存了当前已经支持的开发板工程源码。当移植新开发板时,应该在target目录下增加该开发板的目录,目录结构和代码可以参考当前已支持的开发板的目录。例如:
- STM32F4系列的移植可以参考Cloud_STM32F429IGTx_FIRE工程。
- STM32F7系列的移植可以参考STM32F746_Nucleo工程。
- STM32L4系列的移植可以参考STM32L496_Nucleo工程。
环境准备
-
获取LiteOS源代码
-
硬件环境
-
软件环境
获取LiteOS源代码
LiteOS源码仓在码云上,使用master分支。
硬件环境
开发板
本指南以国内主流STM32学习板-正点原子STM32F407开发板为例进行移植。该开发板的介绍可参考官方网站:探索者STM32F407开发板。
烧录仿真器
JLink。
软件环境
简介
本指南主要基于LiteOS Studio集成开发环境进行移植,烧录工具为JLink,同时使用STM32CubeMX软件生成裸机工程。
安装STM32CubeMX
STM32CubeMX下载,本指南使用的是6.0.1版本。
安装LiteOS Studio
除了LiteOS Studio,同时还需要安装git工具、make构建软件、arm-none-eabi编译器软件、C/C++扩展、JLink烧录软件、USB转串口驱动,这些软件的安装均可参考LiteOS Studio安装指南。
所有软件安装完毕后,需要重启计算机。
须知: 对于板载STLink仿真器的STM32开发板,需要先把STLink仿真器刷成JLink仿真器,再按照JLink的方式烧写。可以参考LiteOS Studio官方文档的“STM32工程示例”中的“ST-Link仿真器单步调测”。
验证LiteOS Studio集成开发环境
在正式开始移植前,可以先验证当前开发环境是否能成功编译LiteOS代码并完成烧录。目前开源LiteOS支持了若干开发板,如:Cloud_STM32F429IGTx_FIRE、STM32F769IDISCOVERY、STM32L431_BearPi等。可以视情况验证环境:
- 没有官方已适配的开发板,可以先使用LiteOS已支持的开发板工程验证编译功能。暂时不验证烧录功能,在下一章节“测试裸机工程”中再验证。
- 有官方已适配的开发板,使用开发板对应的工程验证编译和烧录功能。即:
- 对于Cloud_STM32F429IGTx_FIRE开发板,在LiteOS Studio中配置目标板信息时,选择STM32F429IG。
- 对于STM32F769IDISCOVERY开发板,在LiteOS Studio中配置目标板信息时,选择STM32F769NI。
- 对于STM32L431_BearPi 开发板,在LiteOS Studio中配置目标板信息时,选择STM32L431RC。
验证方法可以参考LiteOS Studio官方文档的“STM32工程示例”中的“使用入门”(只需关注其中的“打开工程”、“目标板配置”、“编译配置-编译代码”和“烧录配置-烧录”)。
HUAWEI LiteOS Studio简介 LiteOS_Studio: LiteOS Studio是基于LiteOS轻量级操作系统开发的工具。它提供了代码编辑、编译、烧录、调试及Trace跟踪等功能,可以对系统关键数据进行实时跟踪及保存与回放。
LiteOS Studio是基于LiteOS轻量级操作系统开发的工具。它提供了代码编辑、编译、烧录、调试及Trace跟踪等功能,可以对系统关键数据进行实时跟踪及保存与回放。
LiteOS Studio工具下载
访问下载页面进行下载。
LiteOS Studio 使用手册
请访问LiteOS Studio 使用手册,获取软件安装、环境配置、工程示例等等。
终于找到了ESP32的教程
LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio - Gitee.com
ESP32 LiteOS编译、烧录使用教程
1. 简介
ESP32目录包含esp32单板相关代码及脚本。
2. 环境搭建
2.1. Linux(Windows10 + VMware Workstation 16 Pro + Ubuntu 20.04.3 LTS)
开发平台采用 Windows10 + ubuntu 虚拟机的方式。
2.1.1. 安装 esp-idf
安装准备:
$ cd ~
$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
$ python3 -m pip install --upgrade pip setuptools wheel
$ mkdir esp32
$ cd esp32
esp-idf 安装:
$ git clone -b v4.3.1 --recursive https://github.com/espressif/esp-idf.git
$ cd esp-idf
$ export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
$ ./install.sh
- 注,关于下载过程中的部分问题说明:
上述操作下载的软件源大部分位于国外,国内下载速度非常慢,大概率会下载失败,下载失败可重复执行,也可替换为如下操作:
$ git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git $ git clone -b v4.3.1 https://gitee.com/EspressifSystems/esp-idf.git $ cd ~/esp32/esp-gitee-tools/ $ export EGT_PATH=$(pwd) $ cd ~/esp32/esp-idf $ $EGT_PATH/submodule-update.sh $ pip config set global.index-url http://mirrors.aliyun.com/pypi/simple $ pip config set global.trusted-host mirrors.aliyun.com $ $EGT_PATH/install.sh
- 执行 $EGT_PATH/submodule-update.sh 时,如果仓库中的 submodules 没有增加或减少,可使用
git submodule update --init --recursive
来更新。 - install.sh 安装过程中,会使用 pip 安装所需的包,默认情况下 pip 使用的是国外的软件源,使得其安装过程非常慢,为解决该问题,可切换pip 的源。此处设置为阿里的源,其他的源可参考 pip 源配置。
- 在执行
./install.sh
时,可能因 python、pip 版本过低导致失败,可将其更新到 python3.8、pip 21.2.4。此外,在install.sh
运行过程中,下载virtualenv时,失败的概率较大,可执行pip3 install virtualenv
单独进行安装,再重新执行./install.sh
。 - 关于安装过程的详细说明,可参考ESP32官方文档:ESP-IDF编程指南 - 快速入门。
- 用户如遇到其他问题,可通过向LiteOS开源仓库提issues、上网查询、查看ESP32官方文档等方式解决。
- 执行 $EGT_PATH/submodule-update.sh 时,如果仓库中的 submodules 没有增加或减少,可使用
2.1.2. install.sh 成功后,执行以下命令设置临时环境变量
install.sh 执行完毕后会出现提示,根据提示执行如下操作:
$ . ./export.sh
2.1.3. 编译工具链安装,建议安装8.4.0版本(已验证)。一般来说,在成功执行install.sh
后,所需编译工具xtensa-esp32-elf-gcc、esptoos.py已经安装完成。执行export.sh
后,会为编译工具链设置临时环境变量,可通过执行如下命令查看安装位置及版本
查看xtensa-esp32-elf-gcc安装位置及版本
$ which xtensa-esp32-elf-gcc
$HOME/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
# $HOME: 表示家目录,以自己的为准,可执行 echo $HOME 查看自己的家目录
$ xtensa-esp32-elf-gcc -dumpversion # 也可执行 xtensa-esp32-elf-gcc -v
8.4.0 # 8.4.0版本已验证,其余版本可能编译失败
查看esptool.py安装位置及版本
$ which esptool.py
$HOME/esp32/esp-idf/components/esptool_py/esptool/esptool.py
# $HOME: 表示家目录,以自己的为准,可执行 echo $HOME 查看自己的家目录
$ esptool.py version
esptool.py v3.1-dev
3.1-dev
-
注:执行
. ./export.sh
设置的环境变量为临时环境变量,只在当前shell窗口中有效,切换窗口后需要重新执行,为方便后续进行LiteOS代码的编译,建议在此处将xtensa-esp32-elf-gcc、esptool.py添加到用户环境变量中。具体操作方式为:# 打开配置文件 $ vim ~/.bashrc # 在文件末尾输入以下内容: export PATH=$PATH:$HOME/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin export PATH=$PATH:$HOME/esp32/esp-idf/components/esptool_py/esptool
如编译工具xtensa-esp32-elf-gcc未安装或版本较低,也可通过如下命令进行手动安装:
$ cd ~/esp32
$ mkdir tools
$ cd tools
$ wget https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz
$ tar -xzf xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz
解压完成后进入解压文件,找到编译工具 xtensa-esp32-elf-gcc 的位置,添加环境变量:
$ vim ~/.bashrc
在文件末尾输入以下内容:
export PATH=$PATH:$HOME/esp32/tools/xtensa-esp32-elf/bin
使环境变量生效:
$ source ~/.bashrc
查看编译工具版本(如输入命令时,使用tab键无法自动补全或联想,可尝试退出当前shell终端,重新打开):
$ xtensa-esp32-elf-gcc -v
安装 esptool,此工具用于生成 esp32 二进制烧录文件:
$ python -m pip install esptool
添加环境变量:
$ vim ~/.bashrc
在文件末尾输入以下内容:
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/esp32/tools:$PATH
使环境变量生效:
$ source ~/.bashrc
查看esptool是否安装成功:
$ esptool.py version
esptool.py v3.1 # 用户安装的版本可能与此处不一致,有返回版本信息即可,没有版本要求
3.1
2.1.4. 利用esp32的examples工程生成bootloader.bin引导文件、分区表文件
$ cd ~/esp32/esp-idf
$ . ./export.sh
$ cd examples/get-started/hello_world
$ make -j
编译成功后,将在当前 build 目录下生成分区表文件 partitions_singleapp.bin、引导文件 bootloader.bin,具体信息可查看输出信息。
- 注:此处为引导文件和分区表的简便生成方式,若要详细了解,可查看esp32官方文档:
ESP-IDF编程指南 - API指南 - 引导加载程序
ESP-IDF编程指南 - API指南 - 分区表
2.2. Windows(Windows10 + HUAWEI-LiteOS-Studio V1.45.9 Beta)
HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。
3. 编译烧录LiteOS ESP32工程
3.1. Ubuntu下的编译
从 LiteOS 仓库 拉取LiteOS源码:
$ cd ~/esp32
$ git clone https://gitee.com/LiteOS/LiteOS.git
进入 LiteOS 工程,拷贝 esp32 默认配置文件替换当前配置文件:
$ cd ~/esp32/LiteOS
$ cp tools/build/config/ESP32.config .config
编译LiteOS ESP32工程:
$ make clean; make -j
编译完成后会在当前路径下生成文件 out/ESP32/Huawei_LiteOS.bin,该文件即为 esp32 的烧录文件。
3.2. windows下的编译
HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。
4. 烧录
4.1. 安装烧录软件
烧录软件下载地址:ESP32 FLASH DOWNLOAD TOOLS,直接点击即可下载,该软件为 Windows 版本的,下载完成后解压,打开 flash_download_tool.exe。
4.2 配置及烧录
此处作简单说明,详细图文说明参考上述解压目录目录下的文档 doc/Flash_Download_Tool__cn.pdf 中的“2.下载示例”。
- 打开软件,芯片类型 chipType 选择 ESP32,点击 OK 进入下一步。
- 选择 SPIDownload。
- 在SPIDownload页面下的空白栏,按顺序填入引导文件 bootloader.bin 的路径及下载地址、分区表文件 partitions_singleapp.bin 的路径及下载地址、esp32的烧录文件Huawei_LiteOS.bin的路径及下载地址并勾选,如下:
文件路径 下载地址 esp32/esp-idf/examples/get-started/hello_world/build/bootloader/bootloader.bin 0x1000 esp32/esp-idf/examples/get-started/hello_world/build/partitions_singleapp.bin 0x8000 esp32/LiteOS/out/ESP32/Huawei_LiteOS.bin 0x10000 - SpiFlashConfig 部分 SPI SPIEED 选择 40MHz,SPIMODE 选择 DOUT,勾选 DoNoChgBin。
- 按实际情况选择 COM,波特率 BAUD 选择 115200。
- 点击START开始下载。
5. 查看运行结果
使用串口工具查看 esp32 的串口输出,内容如下:
...... 引导程序内容,此处省略********Hello Huawei LiteOS********LiteOS Kernel Version : 5.1.0
build data : Sep 24 2021 14:56:29**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!Huawei LiteOS #
6. shell 命令
输入命令 help 查看支持的 shell 命令
Huawei LiteOS # help
*******************shell commands:*************************date free help hwi memcheck swtmr systeminfo task
uname watchHuawei LiteOS #
输入命令 date 查看时间
Huawei LiteOS # date
Thu Jan 1 00:11:20 1970Huawei LiteOS #
总结:
老的esp板子,比如esp32和esp8266应该还可以用,但是esp32c3不支持。esp32s3,因为是双核,且cpu也变了,估计也不能用。
相关文章:

学习ESP32开发板安装鸿蒙操作系统(新板子esp32c3不支持)
鸿蒙LiteOS网址:LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio 失败的实践记录见:完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)…...

asp.net core过滤器应用
筛选器类型 授权筛选器 授权过滤器是过滤器管道的第一个被执行的过滤器,用于系统授权。一般不会编写自定义的授权过滤器,而是配置授权策略或编写自定义授权策略。简单举个例子。 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCo…...

力扣面试题 31 - 特定深度节点链表 C语言解法
题目: 给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。 示例: 输入…...

WordPress阅读文章显示太慢的处理
有两种方式, 1. 完全静态化。 动态都变成html,不再查数据库就快了。 但尝试了几个插件,都未成功。算了后面再研究。 2. cache缓存 用了WP Super Cache测试了一下,打开过一次后,文章秒开,也算达到了要求…...

关于多个线程共享一个实例对象
在多线程环境中,多个线程可能同时调用同一个对象的实例方法,这时候需要考虑如何保证线程安全。理解不同场景下的线程安全性是至关重要的,特别是当方法涉及共享状态时。 1. 共享实例与方法执行 共享实例:多个线程共享同一个实例对…...

【C++】printf 函数详解与格式化输出控制
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯printf 基础用法1.1 printf 的常见占位符1.2 占位符与参数的对应关系1.3 换行控制示例: 💯格式化输出控制2.1 输出宽度控制2.1.1 指定最小宽度 2.2 …...

HDFS 操作命令
在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在 集群上的文件系统称为 分布式文件系统 。 HDFS ( Hadoop Distributed File System )是 Apache Hadoop 项目的一个子项目, Hadoo…...

html ul li 首页渲染多条数据 但只展示八条,其余的数据全部隐藏,通过icon图标 进行展示
<div style"float: left;" id"showMore"> 展开 </div> <div style"float: left;“id"hideLess"> 收起 </div> var data document.querySelectorAll(.allbox .item h3 a); const list document.querySelectorAl…...

Facebook:筑牢隐私安全堡垒,守护社交净土
在全球社交媒体平台中,Facebook一直是风靡全球的佼佼者。然而,随着数字化信息的迅速膨胀,用户隐私保护的重要性日益凸显。面对用户对数据安全性的高度重视,Facebook致力于通过一系列措施来确保隐私保护,守护每位用户的…...

2024年构建PHP应用开发环境
文章目录 前言选择合适的PHP版本安装与配置PHP环境Windows平台Linux平台macOS平台 集成Web服务器数据库连接与管理使用Composer进行依赖管理调试工具的选择代码质量管理部署与持续集成安全性考虑参考资料结语 前言 随着互联网的发展,PHP作为一门成熟的服务器端编程…...

Apache Commons Chain 与 Spring Boot 整合:构建用户注册处理链
文章目录 概述1. 环境准备2. 创建自定义上下文3. 创建命令验证用户输入保存用户数据发送欢迎邮件 4. 构建并执行处理链5. 使用处理链6. 运行结果7. 总结 概述 本文档旨在展示如何在 Spring Boot 应用中使用 Apache Commons Chain 来实现一个用户注册的处理链。我们将通过 Chai…...

一、测试工具LoadRunner Professional脚本编写-录制前设置
设置基于URL的脚本 原因:基于HTML的脚本会导致login接口不能正确录制 设置UTF-8 原因:不勾选此项会导致脚本中文变为乱码...

React Native 组件详解之SectionList、StatusBar、Switch、Text 、 TextInput
在本文中,我们将详细介绍 React Native 中的五个常用组件:SectionList、StatusBar、Switch、Text 和 TextInput。每个组件都有其独特的用途和特性,我们将通过示例代码和 API 说明来帮助你更好地理解和使用它们。 SectionList SectionList 是…...

阿里云:aliyun-cli和ali-instance-cli
概念: 这篇文章只是来澄清一下这俩“cli"之间的区别和联系: aliyun cli 和 ali-instance-cli 都是阿里云提供的命令行工具,但它们的功能和使用场景有所不同。 1. aliyun cli 是一个通用的阿里云命令行接口工具,它允许用户…...

Linux 远程连接服务
远程连接服务器简介 什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操 作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功…...

Docker 安装和使用
#Docker 安装和使用 文章目录 1. 安装2. 干掉讨厌的 sudo3. 使用镜像源3.1. 使用 upstart 的系统3.2. 使用 systemd 的系统 4. 基本使用4.1. 容器操作4.2. 镜像操作 5. 网络模式说明5.1. bridge 模式5.2. host 模式5.3. container 模式5.4. none 模式 6. 查看 Docker run 启动参…...

web基础和http协议 附:nginx服务的安装
web基础和http协议: https://www.baidu.com/ URL https:// 协议 http:// www.baidu.com/ 域名 web介绍: DNS和域名 DNS解析的方式: 1、运营商 2、/etc/hosts 人工配置的域名和ip地址之间的映射关系 3、/etc/resolv.conf dns服务器的ip地址 bind,内网解析域名和ip地址…...

springboot利用easypoi实现简单导出Excel
vue springboot利用easypoi实现简单导出 前言一、easypoi是什么?二、使用步骤 1.传送门2.前端vue3.后端springboot 3.1编写实体类(我这里是dto,也一样)3.2控制层结尾 前言 今天玩了一下springboot利用easypoi实现excel的导出,以前…...

【前端新手小白】学习Javascript的【开源好项目】推荐
目录 前言 1 项目介绍 1.1 时间日期类 1.2 网页store类 1.3 事件类 1.4 Number类 1.5 String类 1.6 正则验证类 1.7 ajax类 1.8 data数据类 1.9 browser浏览器类 2 学习js-tool-big-box开源项目时有哪些收获 2.1 你可以这样做 2.2 如果你需要使用本项目 2.3 你…...

CentOS7虚拟机 网络适配器 NAT模式和桥接模式区别
一、环境介绍 宿主机:Windows电脑 虚拟机:VMware下的CentOS7 局域网:路由器下的各真实主机组成的网络 内部局域网:宿主机构建的一个内部网路 二、NAT和桥接网络链接模式区别 NAT模式:相当于宿主机构建一个内部局域网&a…...

sql删除冗余数据
工作或面试中经常能遇见一种场景题:删除冗余的数据,以下是举例介绍相应的解决办法。 举例: 表结构: 解法1:子查询 获取相同数据中id更小的数据项,再将id不属于其中的数据删除。-- 注意:mysql中…...

STM32-C语言基础知识
C语言基础知识 stdint.h简介 给寄存器某个位赋值 给位6赋值为1流程:先清0,再赋值 带参数的宏定义 建议使用do {…}while(0)来构造宏定义 条件编译 条件编译后面必须跟宏语句,如#if _LED_H 指针使用常见的2大问题 1、未初始化 2、越界使…...

【Point-LIO】基于Ubuntu20.04的ROS1平台的Point-LIO部署Mid-360激光雷达
0、前言 Mid360参数 1、代码拉取 2、代码编译运行 文件结构 编译流程: 1、先编译livox_ros_driver2 2、编译整个工程文件 3、运行launch文件(livox_ros_driver2) 成功启动: 3、实物运行 看得出来,在rviz…...

02_Node.js模块化
02_Node.js模块化 知识点自测 以下代码运行的结果是多少? const arr [10, 20, 30] const result arr.map(val > val 1).reduce((sum, val) > sum val, 0) console.log(result) A:60 B:63 <details><summary>答案</…...

网络——HTTP与HTTPS三次握手和四次挥手
HTTP协议本身并不直接处理TCP连接的建立和关闭,这些是由底层的TCP协议来完成的。但是,由于HTTP通常运行在TCP之上,因此理解TCP的三次握手(用于建立连接)和四次挥手(用于关闭连接)对于理解HTTP通…...

ModelScope-Agent(1): 基于开源大语言模型的可定制Agent系统
目录 简介快速入门 简介 github地址 快速入门 看前两篇,调用千问API和天气API # 选用RolePlay 配置agent from modelscope_agent.agents.role_play import RolePlay # NOQArole_template 你扮演一个天气预报助手,你需要查询相应地区的天气&#x…...

开发知识点-uniCloud
开发知识点-uniCloud 服务空间云函数 cloudfunctions云对象importObjectJSON 格式的文档型数据库Collection unicloud数据的指定表集合 DB SchemaJQL 语法参考资料 服务空间 项目关联空间 云函数 cloudfunctions 云对象importObject JSON 格式的文档型数据库 nosql 非关系…...

Redis——主从复制原理
Redis的主从复制原理是其高可用性和分布式读取能力的重要基础。以下是Redis主从复制原理的详细解释: 一、主从复制的基本概念 Redis的主从复制是一种数据复制和备份的方式,它允许一个主节点(Master)将其所有的数据同步到一个或多…...

MATLAB数学建模之画图汇总
MATLAB是一种强大的数学软件,广泛应用于工程计算、控制设计、信号处理等领域。在数学建模中,MATLAB的绘图功能可以帮助我们直观地展示数据和模型结果。 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 plot函数用于绘制二维平面上的线性坐标曲线图&am…...

Milvus attu - docker 使用 及 版本兼容
文章目录 版本查看attu 和 milvus 的兼容性Docker 加载attu docker 合并到 Milvus文件管理使用 docker compose 挂在 Milvus,登录 attu 出现报错: Error: Failed to connect to Milvus: Error: 1 CANCELLED: Call cancelled 于是检查兼容问题 版本查看 Milvus 版本发布: htt…...