openharmony中hilog实证记录说明(3.1和5.0版本)

每次用这个工具hilog都有一些小用法记不清,需要花一些时间去查去分析使用方法,为了给丰富多彩的生活留出更多的时间,所以汇总整理共享来了,它来了它来了~~~~~~~~~

开始是想通过3.1来汇总的,但实际测试发现openharmony3.1和openharmony5.0的区别还是比较大的,所以中间又采用的5.0的版本,有使用3.1版本的可以查看最后的openharmony3.1版本的hilog工具的帮助信息的简单说明。

命令行说明

短选项长选项参数说明
-h–help-帮助命令。
缺省缺省-阻塞读日志,不退出。
-x–exit-非阻塞读日志,读完退出。
-g--查询buffer的大小,配合-t指定某一类型使用,默认app和core。
-G–buffer-size设置指定日志类型缓冲区的大小,配合-t指定某一类型使用,默认app和core, 可使用B/K/M为单位,范围为64K-16M。
-r--清除buffer日志,配合-t指定某一类型使用,默认app和core。
-k-<on/off>Kernel日志读取开关控制。
on打开读取kernel日志。
off关闭读取kernel日志。
-s–statistics-查询统计信息,需配合-t或-D使用。
-S--清除统计信息,需配合-t或-D使用。
-Q-流控缺省配额开关控制。
pidon进程流控开关打开。
pidoff进程流控开关关闭。
domainondomain流控开关打开。
domainoffdomain流控开关关闭。
-L–level指定级别的日志,示例:-L D/I/W/E/F。
-t–type指定类型的日志,示例:-t app/core/init/only_prerelease。app为应用日志,core为系统日志,init为启动日志,only_prerelease为仅在系统release版本前打印的日志,应用开发者无需关注。
-D–domain指定domain。
-T–tag指定tag。
-a–head只显示前行日志。
-z–tail只显示后行日志。
-P–pid标识不同的pid。
-e–regex只打印日志消息与匹配的行,其中是一个正则表达式。
-f–filename设置落盘的文件名。
-l–length设置落盘的文件大小,需要大于等于64K。
-n–number设置落盘文件的个数。
-j–jobid设置落盘任务的ID。
-w–write落盘任务控制。
query落盘任务查询。
start落盘任务开始,命令行参数为文件名、单文件大小、落盘算法、rotate文件数目。
stop落盘任务停止。
refresh刷新缓冲区的日志到落盘文件。
clear删除已经落盘的日志文件。
-m–stream落盘方式控制。
none无压缩方式落盘。
zlibzlib压缩算法落盘,落盘文件为.gz。
zstdzstd压缩算法落盘,落盘文件为.zst。
-v–format显示格式控制。
time显示本地时间。
color显示不同级别显示不同颜色,参数缺省级别颜色模式处理(按黑白方式)。
epoch显示相对1970时间。
monotonic显示相对启动时间。
usec显示微秒精度时间。
nsec显示纳秒精度时间。
year显示将年份添加到显示的时间。
zone显示将本地时区添加到显示的时间。
wrap日志换行显示时,新行不增加时间戳等前缀。
-b–baselevel设置可打印日志的最低等级:D(DEBUG)/I(INFO)/W(WARN)/E(ERROR)/F(FATAL)。

一、命令格式

hilog [选项]

二、功能说明

1. 显示帮助信息

  • -h:显示所有帮助信息。
  • query/clear/buffer/stats/persist/private/kmsg/flowcontrol/baselevel/domain/combo:显示指定操作类型的帮助信息。
字段(操作类型)说明
query查询
clear清除
buffer缓存buffer
stats统计信息相关,可查询
persist存储相关的设置
privateHILOG API 的隐私格式化功能
kmsg是否读取内核日志
flowcontrol设置日志流控功能
baselevel设置可打印日志的等级,例如D(DEBUG)/I(INFO)/W(WARN)/E(ERROR)/F(FATAL)
domain分类标识符,对日志或功能进行分类和管理
combo一些组合说明,例如开关的开和关不能同时组合啥的,常识类的东西。

2. 查询日志

2.1无选项

执行阻塞读取并持续打印日志。

  • 命令
hilog
  • 实证

在这里插入图片描述

读完之后会一直阻塞循环读取,类似linux中tail命令实现的效果。

2.2非阻塞读取

执行打印缓冲区中所有日志后退出

  • 命令
hilog -x
  • 实证

例如我清除日志后,重新读一下日志,会打印出当前的最新的日志,并会自动退出。

在这里插入图片描述

2.3显示缓冲区前 n 行日志
  • 命令
hilog -a 10
  • 实证

查询前三行的日志。

在这里插入图片描述

2.4显示缓冲区后 n 行日志
  • 命令
hilog -z 10
  • 实证

查询后三行的日志

在这里插入图片描述

2.5显示指定类型的日志

显示指定类型的日志。类型可以是:app/core/init/kmsg/only_prerelease,默认类型是:app,core,init,only_prerelease

类型说明
app用于应用程序的日志。这些日志通常由应用程序开发者编写,用于记录应用的运行状态、用户操作等
core用于系统核心模块的日志。这些日志记录系统的核心功能和底层操作
init用于系统初始化过程的日志。这些日志记录系统启动时的初始化操作
kmsg用于内核消息的日志。这些日志记录内核的运行状态和事件
only_prerelease仅在系统预发布版本(pre-release)中打印的日志。这些日志通常用于内部测试和调试,不适用于正式发布版本
  • 命令
hilog -t app core
  • 实证

在这里插入图片描述

2.6显示指定级别日志

显示指定级别,长级别字符串可以是:DEBUG/INFO/WARN/ERROR/FATAL,短级别字符串可以是:D/I/W/E/F,默认级别是所有级别。

  • 命令
hilog -L D
  • 实证

只显示对应级别的日志

在这里插入图片描述

日志级别说明
  • D(DEBUG):调试信息,用于开发和测试阶段,记录详细的运行状态和变量值。
  • I(INFO):普通信息,记录正常运行时的重要事件。
  • W(WARN):警告信息,表示可能存在的问题,但不会影响系统的正常运行。
  • E(ERROR):错误信息,表示系统运行中出现的错误,可能会影响功能的正常执行。
  • F(FATAL):严重错误,表示系统运行中出现的致命错误,可能导致程序崩溃或无法继续运行。
2.7显示指定域

显示指定域(格式:domain1,domain2,domain3)或排除指定域(格式:^domain1,domain2,domain3)的日志。最大域数为 5

  • 命令
hilog -D 02b00
  • 实证

在这里插入图片描述
根据参考资料实际应该是日志中的02b00这个,但是我这个版本的hilog显示不出来,不清楚是我操作问题还是小bug,有码友了解的也麻烦告知一下🔐

2.8显示指定标签

显示指定标签(格式:tag1,tag2,tag3)或排除指定标签(格式:^tag1,tag2,tag3)的日志。最大标签数为 10。

指定显示命令
hilog -T DisplayPowerBrightness,wpa_supplicant  
  • 实证
    在这里插入图片描述
指定排除标签显示命令
hilog -T ^DisplayPowerBrightness,wpa_supplicant  
  • 实证

在这里插入图片描述

2.9显示指定进程 ID

显示指定进程 ID(格式:pid1,pid2,pid3)或排除指定进程 ID(格式:^pid1,pid2,pid3)的日志。最大进程 ID 数为 5

指定显示命令
hilog -P 1221
  • 实证

在这里插入图片描述

指定排除指定进程显示命令
hilog -P ^1221,254,530
  • 实证

在这里插入图片描述

2.10匹配正则表达式

-e <expr>:显示匹配正则表达式 <expr> 的日志。

  • 命令
hilog -e start
  • 实证

在这里插入图片描述

2.11不同格式显示日志

-v <format>:以不同格式显示日志

  • 命令
hilog -v color/time/msec....
  • color:按日志级别显示彩色日志。

在这里插入图片描述

在这里插入图片描述

  • time:显示本地时间(默认)。

在这里插入图片描述

  • epoch:显示从 1970/1/1 开始的时间。
  • monotonic:显示从启动开始的 CPU 时间。
  • msec:以毫秒显示时间(默认)。
  • usec:以微秒显示时间。
  • nsec:以纳秒显示时间。
  • year:当指定 -v time 时显示年份。
  • zone:当指定 -v time 时显示时区。
  • wrap:当日志行换行时无前缀显示日志。

3. 清除日志

3.1清除 hilogd 缓冲区中的所有日志
  • 命令
hilog -r
  • 实证

在这里插入图片描述

3.2清除缓冲区中指定类型

-t <type>:清除缓冲区中指定类型(格式:type1,type2,type3)的日志。类型可以是:app/core/init/kmsg/only_prerelease,默认类型是:app,core,only_prerelease。

  • 命令
hilog -r -t core
  • 实证

在这里插入图片描述

4. 查询缓冲区大小

4.1查询 hilogd 缓冲区大小
  • 命令
hilog -g
  • 实证

在这里插入图片描述

4.2查询指定类型的缓冲区大小

-t <type>:查询指定类型(格式:type1,type2,type3)的缓冲区大小。类型可以是:app/core/init/kmsg/only_prerelease,默认类型是:app,core,only_prerelease。

  • 命令
hilog -g -t app
  • 实证

在这里插入图片描述

5. 设置缓冲区大小

5.1设置 hilogd 缓冲区大小
  • 命令

-G <size>:设置 hilogd 缓冲区大小,<size> 可以是数字或带单位的数字。单位可以是:B/K/M/G,分别表示字节、千字节、兆字节、吉字节。<size> 范围:[64.0K, 512.0M]。

hilog -G 62M
  • 实证

在这里插入图片描述

5.2设置 指令类型缓冲区大小

-t <type>:设置指定类型(格式:type1,type2,type3)的日志缓冲区大小。类型可以是:app/core/init/kmsg/only_prerelease,默认类型是:app,core,only_prerelease。这是一个持久化配置。

  • 命令
hilog -G 200M -t app
  • 实证

在这里插入图片描述

6. 查询统计信息

-s:查询日志统计信息。设置参数 persist.sys.hilog.stats 为 true 可启用统计。设置参数 persist.sys.hilog.stats.tag 为 true 可启用日志标签统计。

  • 命令
hilog -s
  • 实证

在这里插入图片描述

设置参数命令param set persist.sys.hilog.stats trueparam set persist.sys.hilog.stats.tag true

  • 实证

在这里插入图片描述

💙注意设置完之后需要重启才能生效。。。。。。

7. 清除统计信息

清除 hilogd 统计信息

  • 命令
hilog -S 
  • 实证

在这里插入图片描述

8. 日志持久化任务控制

-w <control>:日志持久化任务控制,选项包括:

  • query:查询任务信息。

在这里插入图片描述

  • stop:停止所有任务。

在这里插入图片描述

  • start:启动一个任务。

在这里插入图片描述

在这里插入图片描述

  • refresh:将缓冲区内容刷新到文件。

    在这里插入图片描述

  • clear:清除 /data/log/hilog/hilog*.gz

在这里插入图片描述

  • 高级选项:

    • -f <filename>:设置日志文件名,名称应为 Linux 文件系统的有效名称。
    • -l <length>:设置单个日志文件大小。<length> 可以是数字或带单位的数字。单位可以是:B/K/M/G,分别表示字节、千字节、兆字节、吉字节。<length> 范围:[64.0K, 512.0M]。
    • -n <number>:设置最大日志文件数,当文件数超过此数量时进行日志文件轮转。<number> 范围:[2, 1000]。
    • -m <compress algorithm>:设置日志文件压缩算法,选项包括:
      • none:写入未压缩的日志文件。
      • zlib:写入 zlib 压缩的日志文件。
    • -j <jobid>:启动或停止指定任务的 <jobid><jobid> 范围:[10, 0xffffffff)。用户可以使用选项(t/L/D/T/P/e/v)启动任务,就像在 “查询日志” 时使用它们一样。这是一个持久化配置。

    例如开启kmsglog落盘任务,并且设置落盘规则,文件名为kmsglog,大小为2M,数量为100个, 其压缩方式为zlib压缩

    hilog -w start -t kmsg -f kmsglog -l 2M -n 100 -m zlib
    

    在这里插入图片描述

9. 设置日志隐私格式化功能

-p <on/off>:设置 HILOG API 隐私格式化功能为开启或关闭。这是一个临时配置,重启后会丢失。

  • 命令
hilog -p on 
  • 实证

在这里插入图片描述

10. 设置 hilogd 存储 kmsg 日志功能

-k <on/off>:设置 hilogd 存储 kmsg 日志功能为开启或关闭。这是一个持久化配置。

  • 命令
hilog -k off
  • 实证

在这里插入图片描述

11. 设置日志流控制功能

-Q <control-type>:设置日志流控制功能为开启或关闭,选项包括:

  • pidon:进程流控制开启,当某个进程的日志输出过多时,系统会自动限制该进程的日志输出频率,以避免日志过多对系统性能造成影响。
  • pidoff:进程流控制关闭。当某个日志域的日志输出过多时,系统会自动限制该域的日志输出频率。日志域通常是按照功能模块或服务划分的,例如“网络模块”、“文件系统模块”等。
  • domainon:域流控制开启。
  • domainoff:域流控制关闭。
  • 命令
hilog -Q pidoff

💙这是一个临时配置,重启后会丢失。

  • 实证

在这里插入图片描述

12. 设置全局日志级别

  • -b <loglevel>:设置全局日志级别为 <loglevel>。长级别字符串可以是:DEBUG/INFO/WARN/ERROR/FATAL/X,短级别字符串可以是:D/I/W/E/F/X。X 表示日志级别高于最大级别,不会打印任何日志。

从低到高通常分为 DEBUG、INFO、WARN、ERROR 和 FATAL。

  • 命令
hilog -b E

💙这是一个临时配置,重启后会丢失。

  • 实证

在这里插入图片描述

可以看到上面截图中还有I级别的日志,具体原因未知,但是后续的日志就只有E级别了。

此命令可以结合-D和-T参数来指定域和标签的日志级别。

  • -D <domain>:设置指定域的日志级别。

  • -T <tag>:设置指定标签的日志级别。优先级为:标签级别 > 域级别 > 全局级别。

  • 命令

hilog -b E -D app 
  • 实证

在这里插入图片描述

13、注意事项

第一层选项不能组合使用,例如:hilog -S -shilog -w start -rhilog -p on -k on -b D

openharmony3.1版本的hilog工具的帮助信息

hilog -h                                                                     
Usage:  [options]
options include:No option default action: performs a blocking read and keeps printing.#1.无选项默认操作,执行阻塞读取并继续打印。-h --help          show this message.#2.显示帮助信息-x --exit          Performs a non-blocking read and exits immediately.#3.执行非阻塞读取并立即退出。-g                 query hilogd buffer size, use -t to specify log type.#4.查询日志缓冲区大小,使用-t指定日志类型。-p, --privacy      set privacy formatter feature on or off.#5.设置打开或关闭格式化功能on  turn onoff turn off-k				store log type kmsg or not #6.存储日志类型是否为kmsgon  yesoff no-s, --statistics   query hilogd statistic information.#7.查询基本的统计信息-S                 clear hilogd statistic information.#8.清楚基本的统计信息-r                 remove the logs in hilog buffer, use -t to specify log type #9.删除hilog缓冲区中的日志,使用-t来指定日志类型-Q <control-type>      set log flow-control feature on or off.# 9.设置打开或关闭日志流控制功能pidon     process flow control onpidoff    process flow control offdomainon  domain flow control ondomainoff domain flow contrl off-L <level>, --level=<level> # 10.在特定的级别上输出日志Outputs logs at a specific level.-t <type>, --type=<type>    Reads <type> and prints logs of the specific type,#11.打印特定类型的日志which is -t app (application logs) by default.#默认情况下是-t应用程序(应用程序日志)。-D <domain>, --domain=<domain> specify the domain, no more than 5.# 12.指定域,不超过5。-T <tag>, --Tag=<tag> specify the tag, no more than 10. # 13.指定标记-a <n>, --head=<n> show n lines log on head. #14.显示前N行-z <n>, --tail=<n> show n lines log on tail. #15.显示最后的N行-G <size>, --buffer-size=<size>set hilogd buffer size, use -t to specify log type.# 16设置日志记录缓冲区大小,使用-t指定日志类型。-P <pid>           specify pid, no more than 5. #16指定pid,不超过5。-e <expr>, --regex=<expr> # 17.显示匹配正则表达式的日志show the logs which match the regular expression,<expr> is a regular expression.-f <filename>, --filename=<filename>set log file name.# 18.设置日志文件名称-l <length>, --length=<length>set single log file size.# 19.设置日志文件大小-n <number>, --number<number>set max log file numbers.# 19.设置最大日志文件数-j <jobid>, --jobid<jobid>start/stop the log file writing task of <jobid>.#20.启动/停止<jobid>的日志文件写入任务。-w <control>,--write=<control>query      log file writing task query.# 21.日志文件写入任务查询start      start a log file writing task, see -F -l -n -c for to set more configs,stop       stop a log file writing task.-m <compress algorithm>,--stream=<compress algorithm>#22.压缩算法none       log file without compressingzlib       compress log file by the zlib algorithmzstd       compress log file by the zstd algorithm-v <format>, --format=<format> options:#23.设置显示格式time       display local time.color      display colorful logs by log level.i.e. VERBOSEDEBUG INFO WARN                     ERROR FATALepoch      display the time from 1970/1/1.monotonic  display the cpu time from bootup.usec       display time by usec.nsec       display time by nano sec.year       display the year.zone       display the time zone.-b <loglevel>, --baselevel=<loglevel>set loggable level. #24.设置可加载级别Types, levels, domains, tags support exclusion query.Exclusion query can be done with parameters starting with "^" and delimiter ",".Example: "-t ^core,app" excludes logs with types core and app.Could be used along with other parameters.

参考资料

hilog

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP 协议

文章目录 UDP 协议简介数据包格式UDP 通信流程抓包分析参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记&#xff0c;文末均附有参考链接&#xff0c;如侵权&#xff0c;请联系删除。 UDP 协议 UDP 是一种面向无连接的传输层协议&#xff0c;属于 TCP/IP 协议簇的一种。…

数据结构之链表(双链表)

目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点&#xff1a; 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插&#xff1a; 头插&#xff1a; 4.双链表的尾删和头删 尾删&#xff1a; 头删&#xff1a; …

内存取证之windows-Volatility 3

一&#xff0c;Volatility 3下载 1.安装Volatility 3。 要求&#xff1a;python3.7以上的版本&#xff0c;我的是3,11&#xff0c;这里不说python的安装方法 使用 pip 安装 Volatility 3&#xff1a; pip install volatility3 安装完成后&#xff0c;验证安装&#xff1a; v…

Unity的JSON工具类+LitJson的引入及使用

C#使用JSON数据 数据存储&#xff08;序列化&#xff09;&#xff1a;将C#的数据格式&#xff0c;转化为JSON字符串&#xff0c;存储或传输 数据使用&#xff08;反序列化&#xff09;&#xff1a;将JSON字符串中存储的数据&#xff0c;转化为C#可用的数据格式&#xff0c;实现…

WX小程序

下载 package com.sky.utils;import com.alibaba.fastjson.JSONObject; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.Cl…

MyBatis 中 #{} 和 ${} 的区别详解

目录 1. #{} 和 ${} 的基本概念 1.1 #{} 1.2 ${} 2. #{} 和 ${} 的工作原理 2.1 #{} 的工作原理 2.2 ${} 的工作原理 3.共同点&#xff1a;动态 SQL 查询 4. 区别&#xff1a;处理方式和适用场景 4.1 处理方式 4.2 适用场景 &#xff08;1&#xff09;#{} 的适用场景…

【蓝桥杯速成】| 10.回溯切割

前面两篇内容我们都是在做有关回溯问题的组合应用 今天的题目主题是&#xff1a;回溯法在切割问题的应用 题目一&#xff1a;分割回文串 问题描述 131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 给你一个字符串 s&#xff0c;请你将 s 分割成一些 子串&#xff…

数据结构之双向链表-初始化链表-头插法-遍历链表-获取尾部结点-尾插法-指定位置插入-删除节点-释放链表——完整代码

数据结构之双向链表-初始化链表-头插法-遍历链表-获取尾部结点-尾插法-指定位置插入-删除节点-释放链表——完整代码 #include <stdio.h> #include <stdlib.h>typedef int ElemType;typedef struct node{ElemType data;struct node *next, *prev; }Node;//初化链表…

开源视频剪辑工具,无损编辑更高效

LosslessCut 是一款基于 FFmpeg 开发的跨平台开源视频剪辑工具&#xff0c;致力于无损处理音视频文件。它无需重新编码即可完成剪切、合并、轨道编辑等操作&#xff0c;极大地保留了原始文件的质量&#xff0c;特别适合处理大体积视频&#xff0c;如无人机拍摄素材或长时录制内…

Java:Apache HttpClient中HttpRoute用法的介绍

当使用Apache HttpClient组件时&#xff0c;经常会用到它的连接池组件。典型的代码如下&#xff1a; PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…

EasyRTC嵌入式音视频通信SDK:WebRTC技术下的硬件与软件协同演进,开启通信新时代

在当今数字化时代&#xff0c;智能设备的普及和人们对实时通信需求的不断增长&#xff0c;推动了嵌入式音视频通信技术的快速发。EasyRTC嵌入式音视频通信SDK凭借其独特的技术特点和应用优势&#xff0c;在嵌入式设备和多平台实时通信领域脱颖而出。 1、轻量级设计与高性能 Ea…

Uthana,AI 3D角色动画生成平台

Uthana是什么 Uthana 是专注于3D角色动画生成的AI平台。平台基于简单的文字描述、参考视频或动作库搜索&#xff0c;快速为用户生成逼真的动画&#xff0c;支持适配任何骨骼结构的模型。Uthana 提供风格迁移、API集成和定制模型训练等功能&#xff0c;满足不同用户需求。平台提…

Python:多线程创建的语法及步骤

线程模块&#xff1a;import threading 线程类Thread参数&#xff1a;group(线程组) target&#xff1a;执行的目标的任务名 args&#xff1a;以元组的方式给执行任务进行传参 *args可以传任意多个参数 kwargs以字典方式给执行任务传参 name&#xff1a;线程名 步骤&…

Jupyter Notebook 常用命令(自用)

最近有点忘记了一些常见命令&#xff0c;这里就记录一下&#xff0c;懒得找了。 文章目录 一、文件操作命令1. %cd 工作目录2. %pwd 显示路径3. !ls 列出文件4. !cp 复制文件5. !mv 移动或重命名6. !rm 删除 二、代码调试1. %time 时间2. %timeit 平均时长3. %debug 调试4. %ru…

快速入手-基于Django的Form和ModelForm操作(七)

1、Form组件 2、ModelForm操作 3、给前端表单里在django里添加class相关属性值 4、前端 5、后端form 新增数据处理 6、更新数据处理

【Linux系统】Linux权限讲解!!!超详细!!!

目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注&#xff1a; Linux权限 定义 权限操作 1、修改文…

剑指小米特斯拉:秦L EV上市11.98万起

3月23日&#xff0c;比亚迪王朝网推出全新中级纯电轿车秦L EV&#xff0c;价格区间为11.98万-13.98万元&#xff0c;瞬间火爆市场。 依托e平台3.0 Evo技术赋能&#xff0c;秦L EV以“国潮设计、智能座舱、越级空间、高效安全、高阶智驾”五大核心优势&#xff0c;直击年轻用户痛…

嵌入式学习(31)-Lora模块A39C-T400A30D1a

一、概述 A39C-T400A30D1a是一款410~490MHz&#xff0c;1W&#xff0c;具有高稳定性&#xff0c;工业级的无线串口模块。LORA扩频调制&#xff0c;实测传输距离最远可达10K米。该模块具备数据广播、数据监听、定点传输、主从模式、自动中继、定点唤醒等传输方式&#xff0c;支…

使用__attribute__((at(addr))) 固定变量到指定 Flash 地址

文章目录 一、代码示例&#xff1a;将变量固定到 Flash 0x08001000二、__attribute__((at(addr))) 的作用三、__attribute__((at(addr))) 可能导致的问题四、运行时修改 Flash 存储的变量五、在 GCC&#xff08;STM32CubeIDE&#xff09;中实现同样功能 在嵌入式开发中&#xf…

vmware虚拟机快照、克隆、迁移区别说明

一、快照 1.1 快照概念 记录了虚拟机在某个特定时间点的状态(软件部署、网络配置、照片备份、游戏存档等) 1.2快照用途 可以在需要时轻松地恢复虚拟机到快照创建时的状态。 备份和恢复:快速备份虚拟机状态的方法可以在数据丢失或损坏时快速恢复虚拟机到先前的状态。测试和…