首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • SC-3568HA

    • 简介

      • SC-3568HA简介
    • 快速上手

      • OpenHarmony概述
      • 镜像烧录
      • 开发环境准备
      • Hello World应用以及部署
    • 应用开发

      • ArkUI

        • 第一章 ArkTS语言简介
        • 第二章 UI组件介绍和实际应用(上)
        • 第三章 UI组件介绍和实际应用(中)
        • 第四章 UI组件介绍和实际应用(下)
      • 拓展

        • 第一章 入门指引
        • 第二章 三方库的引用和使用
        • 第三章 应用编译以及部署
        • 第四章 命令行恢复出厂设置
        • 第五章 系统调试--HDC调试
        • 第六章 APP 稳定性测试
        • 第七章 应用测试
    • 设备开发

      • 第一章 环境搭建
      • 第二章 下载源码
      • 第三章 编译源码
    • 外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
      • 树莓派拓展板
    • 常见问题

      • 资源下载
  • M-K1HSE

    • 简介

      • M-K1HSE 简介
    • 快速开始

      • 开发环境搭建
      • 源码获取
      • 编译说明
      • 烧录指南
    • 外设与接口

      • 01 Audio
      • 02 RS485
      • 03 Display
    • 系统定制开发

      • 系统移植
      • 系统定制
      • 驱动开发
      • 系统调试
      • OTA升级

系统调试

调试工具和方法

串口调试 可用,波特率 115200,直接使用即可,可以查看 uboot,kernel,OpenHarmony init 进程相关打印。

hdc

hdc 类似 android 的 adb,支持 usb 和 tcp 这 2 种连接模式,使用 tcp 模式,端口默认设置为 55555。 配置文件为 device/board/spacemit/xxx/cfg 的 default.para,如下所示:

persist.hdc.mode=usb,tcp
persist.hdc.port=55555

主机支持

windows 系统将 hdc.exe(点我下载)放在特定目录,并设置环境变量路径。

ubuntu 系统安装依赖项‌:打开终端,输入以下命令来更新软件包列表并安装必要的开发工具和库

sudo apt-get update
sudo apt-get install build-essential libstdc++6 libc++1·

下载 HDC 工具包‌:

前往 OpenHarmony 官网下载适用于 Linux 平台的最新版 HDC 工具压缩包。将其放置于合适位置后进行解压操作,请根据实际情况调整解压路径

tar -zxvf hdc_std_<version>_linux.tar.gz -C /opt/hdc/

设置环境变量‌:编辑用户的 shell 初始化脚本(如 .bashrc),添加以下行至文件末尾:

export PATH=$PATH:/opt/hdc/bin
source ~/.bashrc

验证安装成功与否‌:在新的终端窗口里尝试运行简单的帮助指令以确认一切就绪,如果能够看到详细的帮助文档,则表明整个过程顺利完成

hdc 连接

网络连接 需确保 hdc 的服务端和客户端在同一个局域网内,连接方式如下:


D:\>hdc tconn 10.0.90.142:55555
Connect OK

D:\>hdc shell
#
usb 连接
D:\>hdc list targets
0123456789ABCDEF

D:\>hdc shell
#
多设备连接
通过 -t 参数指定设备即可,如下:

D:\>hdc list targets
0123456789ABCDEF
ABCDEF

D:\>hdc -t 0123456789ABCDEF shell
#
hdc 常用命令
命令	用途
hdc list targets	查看当前所有设备
hdc shell reboot	重启
hdc uninstall com.example.myapp	卸载hap包
hdc install -r xxx.hap	重新安装hap包
hdc shell aa start -a EntryAbility -b com.example.myapp	启动hap
hdc file recv /xxx D:/	从小机copy文件到本地
hdc file send D:/xxx /data/	发送本地文件到小机
hdc start -r	重启服务端

hilog 基本使用方法

hilog 类似于 android 的 logcat,基本使用方法如下:

命令	用途	示例


hilog -h	获取帮助
hilog -t app|core|kmsg|init	- 阻塞式实时查询模块日志
- 可以与其他参数同时使用	hilog -t core
hilog -t app|core|kmsg|init -x	- 非阻塞式实时查询模块日志
- 可以与其他参数同时使用	hilog -t core -x
hilog -T <tag>	- 模块内指定tag
- 可以与其他参数一起使用	hilog -T Launcher_Default
hilog -L D|I|W|E|F	- 指定level查询
- D:debug, I:info, W:warning, E:error, F:fatal	hilog -L I
hilog -D <domain>
- 日志的服务域,用于指定输出日志所对应的业务领域
- 这是一个十六进制整数,范围从 0x0 到 0xFFFFF。
- 建议使用0xAAABB格式,AAA表示子系统,BB表示模块
- 指定domian查询
- 可以与其他参数一起使用	hilog -D 0x0
^	- 排除	hilog -t ^app -T ^BatteryThread

日志落盘

日志落盘意思就是将日志保存到文件中,导出来进行查看。

命令	用途

hilog -w start [-f "xxx"] [-l <length>] [-j <jobid>] [-m <algorithm>] [-n <number>]	启动落盘任务
hilog -w query [-j <jobid>]	查询落盘任务
hilog -w stop [-j <jobid>]	停止落盘任务
示例如下:


# hilog -w query
#
#hilog -w start -f "hilog" -l 66k -j 222 -m zlib -n 2
Persist task [jobid:222] started successfully
#cd /data/log/hilog
# ls -al
total 100
drwxr-x--- 2 logd   log     4096 1970-01-02 03:34 .
drwxrwx--- 6 system log     4096 1970-01-01 00:38 ..
-rw-r----- 1 logd   system 65540 1970-01-02 03:34 .persisterInfo_222
-rw-r----- 1 logd   system   132 1970-01-02 03:34 .persisterInfo_222.info
-rw-r----- 1 logd   system 12239 1970-01-02 03:34 hilog.002.19700102-033431.gz
-rw-r----- 1 logd   system  6883 1970-01-02 03:34 hilog.003.19700102-033431.gz
#
# hilog -w query -j 222 #指定jobid查询
222 core,app zlib /data/log/hilog/hilog 67584 2
#
# hilog -w query    #查询全部落盘任务
222 core,app zlib /data/log/hilog/hilog 67584 2
#
# hilog -w stop -j 222
Persist task [jobid:222] stopped successfully
#
# ls -al
total 36
drwxr-x--- 2 logd   log     4096 1970-01-02 03:35 .
drwxrwx--- 6 system log     4096 1970-01-01 00:38 ..
-rw-r----- 1 logd   system 12239 1970-01-02 03:34 hilog.002.19700102-033431.gz
-rw-r----- 1 logd   system 13000 1970-01-02 03:35 hilog.003.19700102-033431.gz

hidumper

hidumper 是 OpenHarmony 中为开发、测试人员,IDE 工具提供统一的系统信息获取工具,帮助使用者分析,定位问题。

命令	用途
hidumper -h	获取帮助
hidumper --cpuusage [pid]	查看某个进程的cpu占用信息
hidumper --mem [pid]	查看某个进程的内存占用情况
hidumper --cpufreq	查看cpu的频率
hidumper --storage	查看存储情况
hidumper --net	查看网络情况

参数管理

命令	用途
param -h	获取帮助
param ls -r	查看所用系统参数
param ls -r persist.sys.hilog.debug.on	查看系统参数
param get persist.sys.hilog.debug.on	获取系统参数
param set persist.sys.hilog.debug.on true	设置系统参数

模拟按键

鼠标操作

# uinput -?
Usage: uinput <option> <command> <arg>...
The option are:
-M  --mouse
commands for mouse:
-m <dx> <dy>              --move   <dx> <dy>  -move to relative position (dx,dy),
   <dx1> <dy1> <dx2> <dy2> [smooth time] --trace -dx1 dy1 to dx2 dy2 smooth movement
-d <key>                  --down   key        -press down a button,
                                               0 is the left button, 1 is the right,
                                               2 is the middle
-u <key>                  --up     <key>      -release a button
-c <key>                  --click  <key>      -press the left button down,then raise
-b <dx1> <dy1> <id> [press time] [click interval time]                --double click
  [press time] the time range is more than 1ms but less than 300ms,
  [click interval time] the time range is more than 1ms but less than 450ms,
  Otherwise the operation result may produce error or invalid operation
 -press the left button down,then raise
   key value:0 - button left
   key value:1 - button right
   key value:2 - button middle
   key value:3 - button side
   key value:4 - button extra
   key value:5 - button forward
   key value:6 - button back
   key value:7 - button task
-s <key>                  --scroll <key>      -positive values are sliding backwards
-g <dx1> <dy1> <dx2> <dy2> [total time]       --drag <dx1> <dy1> <dx2> <dy2> [total time],
                                              dx1 dy1 to dx2 dy2 smooth drag
-i <time>                 --interval <time>   -the program interval for the (time) milliseconds
                                               negative values are sliding forwards

命令示例

命令	用途
uinput -M -m 50 50	鼠标光标移动到(50,50)位置
Uinput -M -b 50 200 0 100 300	鼠标在(50,200)左键双击,点击事件100ms,双击的间隔时间300ms

键盘操作

# uinput -?
Usage: uinput <option> <command> <arg>...
The option are:
-K  --keyboard
commands for keyboard:
-d <key>                   --down   <key>     -press down a key
-u <key>                   --up     <key>     -release a key
-l <key> [long press time] --long_press <key> [long press time] -press and hold the key
-i <time>                  --interval <time>  -the program interval for the (time) milliseconds

按键值

key	keycode
KEYCODE_HOME	1
KEYCODE_BACK	2
KEYCODE_VOLUME_UP	16
KEYCODE_VOLUME_DOWN	17
KEYCODE_POWER	18
KEYCODE_VOLUME_MUTE	22
KEYCODE_DPAD_UP	2012
KEYCODE_DPAD_DOWN	2013
KEYCODE_DPAD_LEFT	2014
KEYCODE_DPAD_RIGHT	2015
KEYCODE_DPAD_CENTER	2016
KEYCODE_TAB	2049

命令示例

命令	用途
uinput -K -d 1 -u 1	按HOME键返回主界面
uinput -K -d 1 -u 1	声音调大

触屏操作

# uinput -?
Usage: uinput <option> <command> <arg>...
The option are:
-T  --touch
commands for touch:
-d <dx1> <dy1>             --down   <dx1> <dy1> -press down a position  dx1 dy1,
-u <dx1> <dy1>             --up     <dx1> <dy1> -release a position dx1 dy1,
-m <dx1> <dy1> <dx2> <dy2> [smooth time]      --smooth movement
   <dx1> <dy1> <dx2> <dy2> [smooth time]      -smooth movement,
                                              dx1 dy1 to dx2 dy2 smooth movement
-c <dx1> <dy1> [click interval]               -touch screen click dx1 dy1

服务管理

命令	用途
service_control start pulseaudio	启动pulseaudio服务
service_control stop pulseaudio	停止pulseaudio服务
hiperf
https://device.harmonyos.com/cn/docs/documentation/guide/subsys-toolchain-hiperf-0000001186316470

bytrace

通过 hdc 来获取 trace 的方法如下:

抓取 trace:

D:\>hdc shell
# param set const.security.developermode.state true
# param set persist.hdc.root 1
# echo > /sys/kernel/debug/tracing/trace
# echo 4096 > /sys/kernel/debug/tracing/saved_cmdlines_size
# bytrace -t 10 -b 4096 --overwrite ohos zimage zmedia zcamera zaudio ability distributeddatamgr graphic freq irq mdfs workq  mmc idle notification sync pagecache ace app > /mnt/mynewtrace.ftrace
# echo > /sys/kernel/debug/tracing/trace
# exit



D:\>hdc file recv /mnt/mynewtrace.ftrace

查看trace:
https://ui.perfetto.dev(科学上网)

bootchart 使用方法:

1. hdc shell
2. begetctl bootchart enable
3. reboot 或者断电重启
4. begetctl bootchart stop
5. begetctl bootchart disable
6. 进入到/data/service/el0/startup/init/文件夹下查看是否有如下文件:
header、proc_diskstats.log、proc_ps.log、proc_stat.log
7. 在/data/service/el0/startup/init/目录下执行命令:tar -czf bootchart.tgz *  # 打包
8. hdc_std file recv /data/service/el0/startup/init/bootchart.tgz ./        #导出
9. 生成开机性能图片 java -jar bootchart.jar bootchart.tgz

glmark

使用方法:

执行下面3条命令可运行glmark老化:

power-shell setmode 602
cd /system/bin
./glmark2-es2 --run-forever --size 720x720
wpa_supplicant&wpa_cli
使用方法:
1. 开启再关闭wifi
2. cd /vendor/bin/
3. ./wpa_supplicant -B -i wlan0 -c /data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf
4. ps -ef | grep wpa查看wpa_supplicant是否起来
5. /wpa_cli -p /data/service/el1/public/wifi/sockets/wpa
6. > scan
7. > scan_results
8. > add_network,返回一个ID
9. > set_network ID ssid "WIFI名称"
10. > set_network ID psk "WIFI密码"
11. > enable_network ID

snapshot_display

param set const.security.developermode.state true
param set persist.hdc.root 1
snapshot_display -f /data/local/tmp/test1.jpeg


power-shell
power-shell setmode 602      #性能模式,关闭休眠
power-shell suspend          #休眠
power-shell display -s xxx   #设置亮度

重新挂载 system/vendor 分区为可读写 system/vendor 分区默认挂载为只读(ro),当调试的时候需要使用 hdc file send 推文件的时候,需要将其重新挂载为可读写,如下:

mount -o remount,rw /vendor
mount -o remount,rw /

系统重启后失效,需要重新挂载

调频 CPU 频率

cd /sys/devices/system/cpu/cpufreq/policy0/
cat scaling_cur_freq

查看当前频率

cat scaling_available_frequencies

查看可用频率

echo userspace > scaling_governor
echo 1228800 > scaling_setspeed

调整频率

cat scaling_cur_freq
查看调整是否生效
DDR 调频
频率表:
2400M C
1200M 8
800M  4
600M  2
devmem 0xd4282980 4

读取当前频率

devmem 0xd4282980 4 0xX
设置频率,0xX值要比频率表的值+1,相当于bit0写1
比如设置2400M,devmem 0xd4282980 32 0xD

常用测试方法

常见问题调试手段

外设屏幕背光无法调节:

通过查看和设置节点 sys/class/backlight/backlight/brightness 来确认驱动是否正常, 如果设置上述节点亮度无变化,说明驱动存在问题,需要查驱动,重点查看背光对应的 PWM 是否正常工作, 如果设置上述节点亮度有变化,说明是 OH 上层的问题,可以通过命令 power-shell display -s xxx(100>xxx>0)来查看亮度是否有变化.

在 GitHub 上编辑此页
上次更新:
贡献者: yhs
Prev
驱动开发
Next
OTA升级