完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)
基本上完全按照手册来的,除了Ubuntu虚拟机使用了22.04 Jammy版本,鸿蒙手册里是20.04 版本,主要是鸿蒙里3年前的手册了,所以就擅自用了高版本。
据此还想到一点,鸿蒙LiteOS,还挺稳定的,3年也没有啥变化,也没有pr。当然也可能是被遗忘了?
手册:LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio - Gitee.com
结论:最后没成功,因为LiteOS只支持esp32,不支持esp32c3 ,所以本次实践失败。
后续应该是改为OpenHarmony这个项目 :kernel_liteos_m: LiteOS kernel for devices with few resources, such as the MCU | 适用于MCU等各种资源极小设备的LiteOS内核
OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。以后再尝试OpenHarmony 。
在Ubuntu22.04下编译ESP32开发板的鸿蒙系统
ubuntu安装准备
cd ~
sudo apt update
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
其中sudo apt update是我加的,我习惯使用apt而不是apt-get
elf-idf安装
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/install.sh执行的时候报错:让使用apt install python3.10-venv
看来是需要python3.10环境。
执行
sudo apt install python3.10-venv
执行完再执行一次
$EGT_PATH/install.sh
安装了很多python3.10的包。
设置环境变量
install.sh执行完之后,设置临时环境变量:
. ./export.sh
也可以根据提示,执行全路径的命令,比如:
. /home/skywalk/eps32/esp-idf/export.sh
执行完之后,可以说elf-idf就安装好了,常规的elf-idf 即esp32开发板的开发编译工作就可以展开了。
鸿蒙LiteOS编译工具链安装
手册内容如下:
建议安装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版本已验证,其余版本可能编译失败
实际执行结果,3年不见,已经从8.4升到14.2版本了:
which xtensa-esp32-elf-gcc
/home/skywalk/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32-elf-gccxtensa-esp-elf-gcc -dumpversion
14.2.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
实际执行结果:
which esptool.py
# /home/skywalk/.espressif/python_env/idf5.5_py3.10_env/bin/esptool.py
esptool.py version
# esptool.py v4.8.1
# 4.8.1
esptool也升级到4.8.1拉
手册里写到:
-
注:执行
. ./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
按照提示在~/.bashrc文件中,加入环境变量:
export PATH=$PATH:$HOME/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp32-elf/bin
export PATH=$PATH:$HOME/esp32/esp-idf/components/esptool_py/esptool
利用esp32的examples工程生成bootloader.bin引导文件、分区表文件
cd ~/esp32/esp-idf
. ./export.sh
cd examples/get-started/hello_world
make -j 4
编译成功后,将在当前 build 目录下生成分区表文件 partitions_singleapp.bin、引导文件 bootloader.bin,具体信息可查看输出信息。
我的操作是:
cd ~/esp32/esp-idf
. ./export.sh
cd ~/esp32/esp-idf/examples/get-started/hello_world
make -j 4
结果make报错:make -j 14
make: *** No targets specified and no makefile found. Stop.
哦,是不是要这么操作啊:
mkdir build
cd build
cmake ..
make -j 4
大约一分钟就编译好了。对了,这个的编译过程,其实跟使用idf.py进行编译是差不多的(只不过理论上这里编译出来了LiteOS,不知道自己理解的对不对)
Creating esp32 image...
Merged 2 ELF sections
Successfully created esp32 image.
Generated /home/skywalk/esp32/esp-idf/examples/get-started/hello_world/build/hello_world.bin
[100%] Built target gen_project_binary
hello_world.bin binary size 0x26280 bytes. Smallest app partition is 0x100000 bytes. 0xd9d80 bytes (85%) free.
[100%] Built target app_check_size
[100%] Built target app
不过不像手册里写的有两个文件分区表文件 partitions_singleapp.bin、引导文件 bootloader.bin,而是只有一个文件 hello_world.bin 也许是改版了吧。
尝试烧录,报错:说hello_world.bin不是一个ESP32-C3的镜像。也对啊,从头到尾就没有选择的地方,而且ESP32-C3 ESP32-S3 ESP32 ,这是三款不同的开发板啊!C3和S3的芯片都不一样,应该要设置一下才对啊!
找到问题了(其实不是),在安装工具的时候,即install.sh的时候就要选好芯片了!
./install.sh esp32c3
这是elf-idf环境的设置,鸿蒙那里也要设置。
在鸿蒙cmake的时候看到提示:
cmake ..
-- IDF_TARGET is not set, guessed 'esp32' from sdkconfig '/home/skywalk/esp32/esp-idf/examples/get-started/hello_world/sdkconfig'
因此加上命令:
cmake .. -D IDF_TARGET=esp32c3
不行,报错: does not match currently selected IDF_TARGET 'esp32c3'. 先跳过,尝试LiteOS源码编译。(这里就提前预示了不支持esp32c3)
尝试开始编译
下载鸿蒙LiteOS源代码
cd ~/esp32
git clone https://gitee.com/LiteOS/LiteOS.git
进入 LiteOS 工程,拷贝 esp32 默认配置文件替换当前配置文件:
cd ~/esp32/LiteOS
cp tools/build/config/ESP32.config .config
发现这个配置文件不是esp32c3的,而是esp32的。这样没有配置文件,实践无法进行下去了。
总结
也许LiteOS算是一个废弃的项目了吧,有点当年谷歌的意思,很多东西发现不赚钱就砍了。
后续应该是改为OpenHarmony这个项目 :kernel_liteos_m: LiteOS kernel for devices with few resources, such as the MCU | 适用于MCU等各种资源极小设备的LiteOS内核
OpenHarmony LiteOS-M内核的编译构建系统是一个基于gn和ninja的组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。
但是OpenHarmony kernel_liteos_m这个项目没找到编译说明文档,明明看到.gn文件,就是不知道该怎么编译。 以后再去尝试。
调试
cmake加上IDF_TARGET=esp32c3参数报错
cmake .. -D IDF_TARGET=esp32c3
CMake Error at /home/skywalk/esp32/esp-idf/tools/cmake/targets.cmake:108 (message):
Target 'esp32' in sdkconfig '/home/skywalk/esp32/esp-idf/examples/get-started/hello_world/sdkconfig' does not match currently selected IDF_TARGET 'esp32c3'. To change the target, clear the build directory and sdkconfig file, and build the project again.
Call Stack (most recent call first):
/home/skywalk/esp32/esp-idf/tools/cmake/project.cmake:24 (__target_init)
CMakeLists.txt:5 (include)
寻求支持esp32c3的可能,但是官方只更新到3年前,没有esp32c3的配置文件,实践终结。
相关文章:
完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)
基本上完全按照手册来的,除了Ubuntu虚拟机使用了22.04 Jammy版本,鸿蒙手册里是20.04 版本,主要是鸿蒙里3年前的手册了,所以就擅自用了高版本。 据此还想到一点,鸿蒙LiteOS,还挺稳定的,3年也没有…...
MySQL 8.0与PostgreSQL 15.8的性能对比
以下是MySQL 8.0与PostgreSQL 15.8的性能对比: MySQL 8.0性能特点: MySQL在处理大量读操作时表现出色,其存储引擎InnoDB提供了行级锁定和高效的事务处理,适用于并发读取的场景。MySQL通过查询缓存来提高读取性能,查询缓…...
hive 行转列
行转列的常规做法是,group bysum(if())【或count(if())】 建表: CREATE TABLE table2 (year INT,month INT,amount DOUBLE );INSERT INTO table2 (year, month, amount) VALUES(1991, 2, 1.2),(1991, 3, 1.3),(1991, 4, 1.4),(1992, 1, 2.1),(1992, 2, 2.2),(1992…...
linux——进程间通信system V消息队列
Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么? 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…...
Seatunnel解决ftp读取json文件无法读取数组以及格式化之后的json无法解析的问题
问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name:“zhangsan”, age:25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…...
[Vue Router warn]: No match found for location with path 解决方法
在使用vue3 vue-router4时 当列表A组件使用 加上keep-alive缓存后,跳转至详情页面时出现 [Vue Router warn]: No match found for location with path "/atlas/editDetails" 解决方案: 把 router.push({ path: "/atlas/editDetails&…...
优傲协作机器人 Remote TCP Toolpath URCap(操作记录)
目录 一、新机设置项 1、设置管理员密码 2、设置安全密码 3、设置负载 二、激活 Remote TCP & Toolpath URCap 1、插入U盘 2、打开激活面板 3、导入许可证 4、查看是否激活成功 5、启用功能 三、使用流程(官方) 步骤一 步骤二 步骤三 …...
使用历史索引监控 Elasticsearch 索引生命周期管理
作者:来自 Elastic Stef Nestor 大家好!在之前的一篇博客中,我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后,我们已将这些常见场景添加到我们的 Elasticsearch 文档中,…...
[网络安全]sqli-labs Less-5 解题详析
[网络安全]Less-5 GET - Double Injection - Single quotes - String:双注入GET单引号字符型注入 判断注入类型判断注入点个数查库名(爆破) left函数抓包查库名(双查询注入) 原理实例查库名(extractvalue函数ÿ…...
贪心算法入门(一)
第1题 礼物 查看测评数据信息 国庆马上要到了。小明喜欢的礼物有n种分别是:公仔、电子手表、漫画书等。 每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。 小明最多可以买多少件礼物? 输入格式 第一行,两个整数&…...
HTTP 探秘之旅:从入门到未来
文章目录 导言:目录:第一篇:HTTP,互联网的“快递员”第二篇:从点开网页到看到内容,HTTP 究竟做了什么?第三篇:HTTP 的烦恼与进化史第四篇:HTTP 的铠甲——HTTPS 的故事第…...
网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)
虚拟专用网络(VPN)详细介绍 虚拟专用网络(VPN)通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密: 隧道协议:使用协议如PPTP、L2TP/IP…...
人工智能中的深度学习:原理与实践
什么是深度学习? 深度学习(Deep Learning)是机器学习的一个分支,旨在通过模拟人脑的神经网络结构来解决复杂的任务。深度学习通过多层神经网络,自动从数据中学习特征,避免了传统机器学习中手动特征工程的繁…...
复现SMPLify-X: Ubuntu22.04, Cuda-11.3, GPU=3090Ti
Env: 3090Ti CUDA 最低支持版本需要>cuda-11.1 Ubuntu 22.04 Installation: Installing CUDA11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run …...
qt QGraphicsScale详解
1、概述 QGraphicsScale是Qt框架中提供的一个类,它提供了一种简单而灵活的方式在QGraphicsView框架中实现缩放变换。通过设置水平和垂直缩放因子、缩放中心点,可以创建各种缩放效果,提升用户界面的交互性和视觉吸引力。结合QPropertyAnimati…...
全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统
全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 php7.4及以上 / mysql5.6 / 伪静态:thinkphp / 运行目录:/public / 修改数据库:/config/database.php /后台:/admin 账号密码 admin q2821706481 …...
ubuntu 根分区逻辑卷扩容
1、虚拟机关机通过管理界面给磁盘扩容。 rootcurtis:/home/curtis/git_code# pvdisplay--- Physical volume ---PV Name /dev/vda3VG Name ubuntu-vgPV Size <239.00 GiB / not usable 0Allocatable yes (but full)PE…...
Word分栏后出现空白页解决方法
Word分栏后出现空白页解决方法 只需要在后面的空白页设置相同的页面布局(分栏格式),然后按Ctrl backspace即可删除该空白页。 参考文章:Word分栏出现空白怎么解决。...
Ansible自动化运维-Ansible安装与主机列表
目录 1.Ansilble的功能及优点 2.Ansible架构 3.Ansible执行流程 4.Ansible安装 5.Ansible配置文件 6.Ansible主机列表 1.Ansilble的功能及优点 (1)远程执行 批量执行远程命令,可以对多台主机进行远程操作。 (2࿰…...
大模型使用-提示学习-基础提示
一、基础提示简介 1、常用提示方法 上下文学习:ICL(In-context Learning)任务描述与问答示例以自然语言形式加入到提示中思维链提示:CoT(Chain-of-Thought),是一种增强技术,将思维…...
【Java基础面试题004】封装、继承、重载、多态、接口和抽象类是什么?
目录 回答重点 封装 继承 重载 多态 接口 抽象类 扩展知识 继承的优缺点 编译时多态&运行时多态 编译时多态 运行时多态 重写&重载区别 为什么Java不支持多继承? 为什么Java支持接口多实现? 接口的成员 抽象类的注意事项 接口&…...
AI、VR与空间计算:教育和文旅领域的数字转型力量
在这个数字技术高速发展的时代,AI、VR技术及大空间计算技术,已成为推动多个行业革新的强劲动力。近日,世优科技推出了最新研发的VR大空间产品《山海经》,这一全新的沉浸式体验项目不仅重新定义了观展方式,还为文化旅游…...
【CC2530开发基础篇】光敏和热敏传感器
一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器,进行数据采集与检测,并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备,分别用于测量光强和温度。在实际应用中,这些传感器…...
Android8.1初始化RGB屏
初始化文件类似如下 #define HSW 8 #define HBD 160 #define HFD 140 #define VSW 8 #define VBD 20 #define VFD 20#frame rate60Hz #Pixel Clk25Mhz #MIPI_CLK300Mbps(MIPI通道速率)SPI_RES1; Delay(20); //延迟20ms SPI_RES0; Delay(50); //延迟50ms SPI_RES1; Delay(120);…...
Qwen2-VL视觉大模型微调实战:LaTex公式OCR识别任务(完整代码)
《SwanLab机器学习实战教程》是一个主打「开箱即用」的AI训练系列教程,我们致力于提供完善的数据集、源代码、实验记录以及环境安装方式,手把手帮助你跑起训练,解决问题。 Qwen2-VL是通义千问团队最近开源的大语言模型,由阿里云通…...
ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词
1.将用户访问记录表数据同步到ES,并且分词,获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...
400G智算网络助力知名自动驾驶企业算力训练提效
根据Gartner的最新趋势预测,自动驾驶技术正迅速发展,预计在未来几年内将带来显著的商业效益,特别是在决策智能和边缘人工智能领域。目前,一家领军企业正积极拥抱基于大模型的数字化转型之路,作为自动驾驶领域的佼佼者&…...
替代FTP最佳跨网文件传输解决方案——FileLink
在传统的企业文件传输中,FTP(文件传输协议)曾因其便捷性和高效性被广泛应用。然而,其固有的安全漏洞、对大文件传输支持的局限性、易受网络攻击等问题,已逐渐暴露出FTP在现代企业环境下的不足。针对这一问题࿰…...
冒泡排序算法介绍以及java实现
冒泡排序是一种简单的排序算法,它重复地走访过要排序的元素列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。重复地进行这个操作直到整个序列都是有序的。 冒泡排序算法的基本思想是:比较相邻的两个元素,如…...
echarts的双X轴,父级居中的相关配置
前言:折腾了一个星期,在最后一天中午,都快要放弃了,后来坚持下来,才有下面结果。 这个效果就相当是复合表头,第一行是子级,第二行是父级。 子级是奇数个时,父级label居中很简单&…...
模拟实现单链表 —— SingleLinkedList
模拟实现 java 中单链表的实现,方便后续对 java 中的 LInkedList 进行理解。 MySingleList类: public class MySingleList {/*** 定义节点类*/static class ListNode {// 节点值private int val; // 下一个节点的引用private ListNode next; public Lis…...
【NoSQL数据库】MongoDB数据库——文档的查询操作(多条件查询、聚合aggregate、管道)
往期文章: 【NoSQL数据库】MongoDB数据库的安装与卸载-CSDN博客 【NoSQL数据库】MongoDB数据库——集合和文档的基本操作(创建、删除、更新、查询)-CSDN博客 目录 一、MongoDB文档查询原理 1、使用 find() 方法进行文档基本…...
预训练模型与ChatGPT:自然语言处理的革新与前景
目录 一、ChatGPT整体背景认知 (一)ChatGPT引起关注的原因 (二)与其他公司的竞争情况 二、NLP学习范式的发展 (一)规则和机器学习时期 (二)基于神经网络的监督学习时期 &…...
桂湾公园的地面免费停车场(50个左右)
之前一直以为桂湾公园只有P1和P2地下停车场可以免费停车。没想到桂湾公园还有地面停车场,停车位大概是50个。 具体位置在桂湾公园5号门地上停车场。 桂湾公园-5号门 广东省深圳市南山区桂湾河南街与鲤鱼门西二街交叉口西北20米 停车场入口对面是红星美凯龙&#x…...
如何高效地架构一个Java项目
引言 Java是企业级应用开发的主流语言之一,而我们作为使用Java语言的程序员,职称有初级、中级、高级、资深、经理、架构,但我们往往只是慢慢通过经验的积累迭代了自己的等级,如果没有保持学习的习惯,大多数程序员会停留…...
如何把阿里云ECS里的文件下载到本地(免登录免配置)
如何把阿里云ECS里的文件下载到本地(免登录免配置) 作为一个阿里云ECS的用户,Up时长会遇到希望把ECS里的文件下载到自己的个人电脑,然后在自己的电脑里面查看,保存或者发送给别人。最近发现阿里云新上了一个功能&…...
【采样率、采样定理、同步和异步采样】
内容来源:【数据采集卡的【采样率】【采样定理】【同步采样】【异步采样】的相关说明】 此篇文章仅作笔记分享。 前言 模拟信号需要通过采样、储存、量化、编码这几个步骤转换成数字信号,本篇文章将会对采样进行一个更详细的说明。 采样 采样就是将一…...
javascript和python实现用户倒计时功能
HTML部分: 有一个input输入框,其id为countdown-time,用于让用户输入倒计时的秒数。一个按钮,id为start-btn,点击它来触发倒计时开始的操作。还有一个div元素,id为countdown-display,用来实时显示…...
HTML5系列(10)-- 地理位置服务指南
前端技术探索系列:HTML5 地理位置服务指南 🌍 致读者:探索位置服务的魅力 👋 前端开发者们, 今天我们将深入探讨 HTML5 的地理位置服务(Geolocation API),这项强大的功能让我们能…...
计算机毕业设计Python+大模型农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
qt QPrinter详解
1、概述 QPrinter类是Qt框架中用于打印输出的绘图设备。它表示打印出来的一系列页面,并提供了一组附加功能来管理特定于设备的特性,比如方向和分辨率。QPrinter可以生成PDF文档,也可以将内容发送到打印机进行实际打印。它继承自QPagedPaintD…...
CentOS 9 配置静态IP
文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布,基于 RHEL 7,并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本,今天闲来闲来无事下载下来后…...
MySQL2.0
7.B树和B树的区别 结构特点 B树:是一种平衡的多路查找树,它的每个节点包含多个关键字和多个子节点指针。B树的叶子节点和非叶子节点都可以存储数据记录。B树:也是一种平衡多路查找树,B树的非叶子节点只用于索引,即只…...
Nginx 限制 IP 网速
使用Lua和Nginx限制IP网速的基本原理 要限制某个IP的网速,在Nginx中结合Lua可以通过令牌桶算法(Token Bucket)来实现。令牌桶算法是一种流量整形算法,它以一定的速率生成令牌放入桶中,当请求到来时,需要从桶…...
前端小练习——大雪纷飞(JS没有上限!!!)
大家好,我是小黄。 具体效果:(大雪缓缓下落) 完整代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&qu…...
CE4.【C++ Cont】练习题组4
目录 1.求出 e 的值 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码 提交结果 2.画矩形 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码 简化代码 提交结果 3.查找特定的值 题目描述 输入格式 输出格式 输入输出样例 代码 提交结果…...
uniapp h5 vue3 m3u8 和 mp4 外链视频播放
m3u8视频播放 使用mui-player 和hls.js。 安装npm install mui-player hls.js我的版本是"hls.js": "^1.5.17"和"mui-player": "^1.8.1"使用 页面标签: 引用: 点击目录播放视频: m3u8视频播放&a…...
【动手学运动规划】 4.5 A*算法
我宁愿永远做我自己,也不愿成为别人,即使那个人比你更快乐。 —《成为简奥斯汀》 🏰代码及环境配置:请参考 环境配置和代码运行! 4.5.1 概述 Dijkstra算法是基于广度优先搜索策略来遍历空间内的所有节点,最终计算出…...
从零开始学习 sg200x 多核开发之小核 FreeRTOS 运行
sophpi 小核支持默认运行 FreeRTOS,并且已经启动,小核的运行固件被打包在 fip.bin文件中,由 fsbl 负责加载。 启动后,小核会运行 FreeRTOS,并输出日志到串口。串口日志输出在 UART0 上,波特率 115200&…...
生信软件开发1 - 设计一个简单的Windwos风格的GUI报告软件
1. 安装基础库 使用Windows 11标题样式和主题自定义UI窗口库pywinstyles(github: https://github.com/Akascape/py-window-styles),结合python自带tkinter库设计一个报告GUI软件。 pip install pywinstyles2. 设计一个简单的Windwos风格的G…...