OpenHarmony--hdc使用
HDC工具hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具。类似于 adb工具,通过 hdc 可以在设备上执行各种调试操作,如查看设备信息、查看进程、查看内存、查看文件、查看日志等。
hdc 工具使用以下以在ubuntu 环境调试为例
1、编译sdk
1./build.sh --product-name ohos-sdk –ccache
编译后生成工具存放路径:
12out/ohos-arm64-release/ohos-sdk
2、设备配置hdc参数
hdc有支持usb调试和网络调试。在有网络情况下,设备端可以配置网络调试,可以先通过串口登录后进行查看配置,如设置“9527”端口:
123456789101112# 查看hdcd版本hdcd -v# 查询hdc参数param get | grep hdc# 设置hdc参数param set persist.hdc.mode tcpparam set persist.hdc.port 9527# 启动hdcd服务hdcd &
3、PC端连接设备 ...
OpenHarmony--鸿蒙浅析
鸿蒙系统浅析简介鸿蒙(HarmonyOS)是由华为公司于2012年提出的一款分布式操作系统。该系统利用“分布式”技术,将手机、电脑、平板、电视、汽车和智能穿戴设备融合成一个“超级终端”,使用户便于操作和共享各种设备的资源。鸿蒙系统致力于提供统一的语言和平台,简化开发者的开发过程,提高跨设备的协同工作效率。
背景初始版本于2019年8月9日由华为发布,并于次日推介首款搭载鸿蒙系统的产品“荣耀智能屏”。此后,华为不断完善和升级鸿蒙系统,逐步扩展其适用范围。
图1 HarmonyOS 界面
图2 搭载HarmonyOS的华为mate 40
2024年4月11日,华为发布了最新的HarmonyOS 4.2版本,该版本兼容AOSP 11/12,进一步提升了系统的稳定性和兼容性。与此同时,HarmonyOS NEXT预计将在2024年第四季度发布,并宣布将不再兼容AOSP,从而向完全自主的方向迈进。
发展历程
版本号
发布时间
正式推送时间
兼容AOSP/Android 版本
对应openharmony API最高版本
1.0
20 ...
Linux内核--电源管理
linux 电源管理Linux内核中电源管理是个比较庞大系统,本次仅记录电源状态管理相关部分。
linux 四种睡眠状态
State in Linux
Label
state
ACPI
备注
PM_SUSPEND_ON
正常
正常
正常
正常运行状态
PM_SUSPEND_FREEZE
freeze
suspend-to-idle
S0
冻结进程+挂起设备+CPU空闲
PM_SUSPEND_STANDBY
standby
power-on suspend
S1
冻结进程+挂起设备+关闭nonbootCPU
PM_SUSPEND_MEM
mem
suspend-to-ram
S3
仅保留RAM自刷新
PM_SUSPEND_MAX
disk
suspend-to-disk
S4
关闭所有设备包括RAM,也被称为Hibernate
对应源码:/kernel/kernel/power/suspend.c
Suspend-To-Idle: 轻量级睡眠状态,冻结用户空间进程并将 I/O 设备置于低功耗状态,具有较低的 ...
Linux驱动--电池驱动-bq40z50
电池驱动本文以 bq40z50 电池为例,介绍在 RK 平台上使用电池驱动的相关配置与实现。
设备树配置结合电路原理图分析,确认电池挂载在 I2C3总线上。通常情况下,电池设备挂载在 I2C总线上,因此只需配置 I2C 子节点即可。下面是设备树配置示例:
确认I2C设备挂载的地址为0b.示例如下:
12345678910111213141516171819202122&i2c3{ status = "okay"; i2c-scl-rising-time-ns = <345>; i2c-scl-falling-time-ns = <11>; // 时钟频率设置为 100kHz clock-frequency = <100000>; // i2c地址 battery0: bq28z610@0b{ status = "disabled"; compatible ="ti,bq28z610"; reg = <0x0b>; ...
Markdown--使用技巧
Markdown 使用技巧Markdown 简介Markdown 是一种轻量级标记语言,用于格式化纯文本。主要用于编写文档、博客、README 文件等,使用markdown应该是程序员必备技能之一。本网站所有文章也均使用Markdown格式编写。以下介绍一些Markdown 的基本语法。
基本语法1、标题使用 # 符号创建标题,# 的数量代表标题的级别。
123# 一级标题## 二级标题### 三级标题
2、段落与换行段落之间需要一个空行。 换行:在行末加两个空格。
12这是第一行 这是第二行
3、强调
加粗:使用 ** 或 __ 包围文本。
斜体:使用 * 或 _ 包围文本。
加粗斜体:使用 *** 或 ___ 包围文本。123**Test***Test****Test***
效果如下:TestTestTest
4、列表无序列表:使用“-”、“*” 或 “+” 创建。
12- 项目1- 项目2
效果如下:
项目1
项目2
有序列表:使用数字加上 “.”创建。
121. 第一项2. 第二项
5、链接与图片
12链接:[链接文本](链接地址)。图片:![图片描述](图片地 ...
shell--数组的使用
shell 数组的使用数组的定义在 Shell 中,数组的定义非常简单。以下是几种常见的定义方式:
1、普通定义
12345num=(1 2 3 4 5)str=('a' 'b' 'c' 'd' 'e')# 也可直接定义下标值str[0]='a'
2、特殊定义
12345678910# for循环中声明for i in {1..5}; doecho $i# 自定义分隔符str="a,b,c,d,e"IFS=","arr=($str)这时候arr数组中的值就是str中的“a b c d e”,需要注意的是,分隔符 (IFS) 被重新定义后,可能会影响其他代码,所以最好在使用后还原 IFS
3、关联数组这个需要在bash 4版本以上才能用。关联数组允许你使用字符串作为数组的索引。
123# 预先定义一个数组,包含一些指定的字符串declare -a my_array=("Apple" &quo ...
通讯协议--I2C
通讯协议I2C 协议I2C 是一种双线半双工的通信协议,只能用于短距离通信。实现I2C需要两根信号线完成信息交换,SCL时钟信号线,SDA数据输入/输出线。它属于同步通信,由于输入输出数据均使用一根线,因此通信方向为半双工。
I2C 采用单总线通信,即所有设备都连接到同一个总线上,并且同一时间只能有一个设备在总线上进行通信。
通讯方式数据通信中,传输方式可以分为单工通信和半双工通信、全双工通信三种。I2C 采用半双工通信。
单工通信: 是指消息只能单方向传输的工作方式。半双工: 是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。全双工: 是指在通信的任意时刻,线路上可以同时存在A到B和B到A的双向信号传输。
工作原理以下是I2C消息数据,被分解为数据帧 。每条消息都有一个地址帧,其中包含从设备的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的开始和停止条件、读/写位和 ACK/NACK 位:
起始条件:在 SCL 线 从高电平变为低电平 之前, SDA 线从高电平变为低电平。停止 ...
Linux驱动--充放电芯片sc8886
SC8886SC8886S 可以管理1至4节电池充电,SC8886S的输入范围从3.5V到24V,它支持预充电、恒流充电、恒压充电。可以通过SMBus端口轻松设置充电/放电模式.
设备树配置1234567891011121314151617sc888x-charger@6b { compatible = "sc,sc8886"; reg = <0x6b>; sc,sc888x-intr-gpio = <&gpio1 23 IRQ_TYPE_EDGE_FALLING>; sc,charge-current = <4000000>; sc,max-input-voltage = <20000000>; sc,min-input-voltage = <4200000>;/* VINDPM*/ sc,max-input-current = <6000000>; sc,max-charge-voltage = <12600000>; sc,input-current ...