OpenHarmony实战:用IPOP调试 OpenHarmony 内核

前言

我使用的是 IPOP V4.1,基于 OpenHarmony 开源系统和 RK3568 开发板,在 PC 上运行此软件,查看运行、错误日志来调试内核。作为网络、嵌入式式内核调试的必备工具,建议同学珍藏。IPOP 运行在 PC 上,操作系统是 Windows10 x64。

一、调试 OpenHarmony 内核、硬件 IPOP 工具说明

1.1. 概述

IPOP 软件是一款功能强大、绿色免费、界面朴实无华、实用性强的网络 IP 专用工具的集合。它基本上包含了 IP 地址动态性绑定、MAC 地址改动、帖子配备、流量监测、端口号等各个领域,功能齐备,特别适合 OpenHarmony 内核、互联网开发和测试工程师应用。

1.2. 网络方面的功能

  1. IP 地址动态性绑定功能;
  2. 路由器记录查询和配备功能;
  3. MAC 地址记录查询、变更功能;
  4. MAC、服务器信息内容扫描仪功能;
  5. MAC 地址与生产厂家相匹配表;
  6. 该设备互联网报文格式统计分析功能;
  7. 该设备端口号目录、远程控制端口扫描器功能;
  8. 常用端口一览表;
  9. 端口映射功能;
  10. 网卡流量监控和标示功能;
  11. 该设备 IP 报文格式捕捉和推送功能;
  12. 多用户 telnet/ssh/sftp/ ftp/ dos/串口通信维护保养终端设备专用工具,适用 IPV6;
  13. TCP、UDP、Telnet、FTP、TFTP、WEB、群聊通讯等网络服务器功能。

二、安装 USB 转 COM 设备驱动

2.1. 连接电缆

一头连接 PC USB 端口,另一头链接开发板 COM 端口。开发板上运行开源系统主线版本,连接端口如白色线缆所示,如果联通就会亮红灯

2.2. 安装 USB 转 COM 驱动

CDM212364_Setup 为当前使用的 FTDI 芯片 USB 转 COM 口驱动,一路确定即可完成,有时安装完成后需要重启 PC。驱动安装包从附件下载。

2.3. 在设备管理器查看驱动是否安装成功

驱动未安装成功如图片左边所示,成功则如右边所示,会出现”USB Serial Port(COM) ”字样。

三、用 IPOP 调试 OpenHarmony 内核

采用 USB 转 COM 端口调试 OpenHarmony 内核、硬件

3.1. 操作步骤

双击打开 IPOP 软件,选择终端工具 → 新建连接 ①→ 选择类型 ②(和设备管理器里面显示的一致)→ 波特率 ③→ 自动存盘 ④→ 存盘目录 ⑤→ 在连接列表选择对应连接 → 确定 ⑥,步骤如下图所示,蓝色背景不断刷新的信息就是系统运行的日志。

3.2. 注意事项

  • 如果连接列表中不存在对应连接,在连接名称中填入和选择类型相同的名称。
  • 避免频繁换行不好看,将“每行列数”设置为 132。
  • 自动保存的日志,在存盘目录可以看到。

3.3. 典型按钮功能说明

当鼠标悬停在每个按钮上时,会自动显示其功能提示。

  • 绿色灯图标:正在存盘,单击变为红灯则停止存盘。此功能方便我们在条件就绪的情况抓取日志片段。
  • 剪刀图标:清空当前日志。

3.4. 添加快捷输入按钮

如果需要向开发板发送较长或多个指令时,避免手动输入,可以自定义功能按钮,确定后会出现在工具条的末尾。用时单击即可。

四、dmesg 用法

在开源系统中,了解系统的内核信息和故障诊断是至关重要的。而 dmesg 指令就是一个强大的工具,它可以帮助我们查看系统内核的日志信息,了解系统的运行状态和故障原因。

4.1. dmesg 指令简介

dmesg 指令是一个在开源系统中查看内核日志的实用工具。它允许我们查看系统内核的输出消息,包括引导信息、硬件检测、设备驱动程序和系统错误等。通过使用 dmesg 指令,我们可以追踪系统启动过程中的事件,排查故障和问题。

4.2. 查看系统内核日志

使用 dmesg 指令可以轻松查看系统的内核日志。只需在终端中输入以下命令:dmesg
命令执行后,将显示最新的内核日志信息。日志可能包含各种关于系统硬件、设备驱动程序和内核模块的消息。您可以通过滚动终端窗口或使用管道命令进行过滤来查看完整的日志。

4.3. 过滤和搜索内核日志

dmesg 指令支持使用管道命令结合其他工具对内核日志进行过滤和搜索,以便更精确地查找特定的信息。以下是一些常用的过滤和搜索技巧:

  • 过滤特定关键字
    使用 grep 命令结合 dmesg 指令,可以过滤出包含特定关键字的日志信息。例如,以下命令将只显示包含"error"关键字的日志:#dmesg | grep error
  • 显示最新的 N 行日志
    使用 tail 命令结合 dmesg 指令,可以显示最新的 N 行日志。例如,以下命令将显示最新的 10 行日志:#dmesg | tail -n 10
  • 按时间戳排序日志
    使用 sort 命令结合 dmesg 指令,可以按时间戳对日志进行排序。例如,以下命令将按时间戳从新到旧排序日志:
    #dmesg | sort -r

五、设置内核日志打印等级

当系统崩溃修复时,会产生大量系统日志,不便于关键信息获取,通过修改系统日志打印级别,可突出所需级别的日志信息,便于查找。

5.1. 查询串口日志级别

在 OS 执行 cat /proc/sys/kernel/printk 命令,返回信息中的“7”表示串口日志级别:

# cat /proc/sys/kernel/printk
7      4         1        7

5.2. 修改串口日志级别

该方法只对当次运行有效,OS 重启后串口日志级别恢复为配置文件定义的级别。
在 OS 执行 echo N > /proc/sys/kernel/printk 命令,N 表示要设置的串口日志级别。

# echo 6 > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
6       4         1        7

5.3. 相关串口日志级别说明

LevelNameDescription
0KERN_EMERG紧急消息。系统崩溃之前提示,表示系统已不可用。
1KERN_ALERT报告消息。表示必须立即采取措施。
2KERN_CRIT临界消息。通常涉及严重的硬件或软件操作失败。
3KERN_ERR错误消息。串口日志的默认级别。驱动程序常用 KERN_ERR 来报告硬件的错误。
4KERN_WARNING警告消息。对可能出现问题的情况进行警告。
5KERN_NOTICE正常但又重要的消息。用于提醒,常用于与安全相关的消息。
6KERN_INFO提示消息。如驱动程序启动时,打印硬件消息。
7KERN_DEBUG调试消息。设置此级别会打印所有日志消息。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

真快乐APP抢购源码实现

支持多个平台的自动 滑动验证码、选字验证码。缺点就是需要自己找一个验证码识别服务器,可以自己用python写一个,或者使用超级鹰(本篇教程就是使用它) 下面是实现源码 "ui"; Date.prototype.Format = function (fmt) {var o = {"M+": this.getMonth() …

学习transformer模型-broadcast广播的简明介绍

broadcast的定义和目的: 广播发生在将较小的张量“拉伸”以具有与较大张量兼容的形状,以便执行操作时。 广播是一种有效执行张量操作而不创建重复数据的方式。 广播的处理过程: 1, 确定最右边的维度是否兼容 每…

前端性能优化-Table渲染速度优化

教务系统-排课页面性能优化总结 一、前言 在公司教务系统中,排课页面慢的令人发指,在某些情况由于数据量大导致页面主进程卡死,遂组织进行一次排查优化,现记录一下 二、效果对比 以下数据均为UAT环境 Performence对比 更改前: 主进程渲染时间为 8s 教务系统-排课页面性…

Intel FPGA (6):dac tlv5618a

Intel FPGA (6):dac tlv5618a 前提摘要 个人说明: 限于时间紧迫以及作者水平有限,本文错误、疏漏之处恐不在少数,恳请读者批评指正。意见请留言或者发送邮件至:“Email:noahpanzzzgmail.com”。本博客的工程文件均存放…

探索DeFi元宇宙:NFT、Web3和DAPP的数藏Swap合约应用开发

随着区块链技术的发展和普及,DeFi(去中心化金融)和NFT(非同质化代币)等概念在数字经济中扮演着越来越重要的角色。而元宇宙、Web3、DAPP等概念也逐渐成为人们关注的焦点。在这个背景下,将这些概念融合在一起…

Flutter仿Boss-2.启动页、引导页

简述 在移动应用开发中,启动页和引导页是用户初次接触应用时的重要组成部分,能够提升用户体验和导航用户了解应用功能。本文将介绍如何使用Flutter实现启动页和引导页,并展示相关代码实现。 启动页 启动页是应用的第一个页面,首…

Excel 粘贴回筛选后的单元格不能完全粘老是少数据 ,有些单元格还是空的

环境: excel2021 Win10专业版 问题描述: excel 粘贴回筛选后的单元格不能完全粘老是少数据 有些单元格还是空的 复制选择筛选后A1-A10单元格 ,定位条件)(仅可见单元格)来访问,或者你可以使用…

Python接口自动化测试-篇1(postman+requests+pytest+allure)

Python接口自动化测试是一种使用Python编程语言来编写脚本以自动执行针对应用程序接口(APIs)的测试过程。这种测试方法专注于检查系统的不同组件或服务之间的交互,确保它们按照预期规范进行通信,而不涉及用户界面(UI&a…

项目部署到线上byte[]转换中文乱码,本地是好的

项目部署到线上byte[]转换中文乱码,本地是好的 byte[]转换成中文乱码,在idea上面调试没有乱码,部署到线上就乱码,原因是idea启动项目是utf-8, 然后线上是windows环境不知道啥 vo.setJsonObject(JSONUtil.parseObj(Convert.toStr(…

uni app 扫雷

闲来无聊。做个扫雷玩玩吧&#xff0c;点击打开&#xff0c;长按标记&#xff0c;标记的点击两次或长按取消标记。所有打开结束 <template><view class"page_main"><view class"add_button" style"width: 100vw; margin-bottom: 20r…

瑞_23种设计模式_迭代器模式

文章目录 1 迭代器模式&#xff08;Iterator Pattern&#xff09;★★★1.1 介绍1.2 概述1.3 迭代器模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析 &#x1f64a; 前言&#xff1a;本文…

TypeScript语法快速上手

TypeScript语法 对比ts编译器类型注解新增类型数组自定义类型注解函数类型对象类型元组类型类型推断枚举类型 对比 最大区别&#xff1a;ts能在编译时就能发现类型错误的问题&#xff0c;而js只有在系统运行时再通过异常中断来发现 ts的底层仍是js&#xff0c;但ts能够有效减少…

思腾推出支持大规模深度学习训练的高性能AI服务器

近日人工智能研究公司OpenAI公布了其大型语言模型的最新版本——GPT-4&#xff0c;可10秒钟做出一个网站&#xff0c;60秒做出一个游戏&#xff0c;参加了多种基准考试测试&#xff0c;它的得分高于88%的应试者&#xff1b;随后百度CEO李彦宏宣布正式推出大语言模型“文心一言”…

element-ui message 组件源码分享

今日简单分享 message 组件的源码&#xff0c;主要从以下四个方面来分享&#xff1a; 1、message 组件的页面结构 2、message 组件的 options 配置 3、mesage 组件的方法 4、个人总结 一、message 组件的页面结构 二、message 组件的 options 配置 前置说明&#xff1a;m…

Meta Pixel:助你实现高效地Facebook广告追踪

Meta Pixel 像素代码是用來衡量Facebook广告效果的一个官方数据工具&#xff0c;只要商家有在Facebook上投放广告就需要串联Meta Pixel 像素代码来查看相关数据。 它本质上是一段 JavaScript 代码&#xff0c;安装后可以让用户在自己网站上查看到访客活动。它的工作原理是加载…

FPGA高端图像处理开发板-->鲲叔4EV:12G-SDI、4K HDMI2.0、MIPI等接口谁敢与我争锋?

目录 前言鲲叔4EV----高端FPGA图像处理开发板核心板描述底板描述配套例程源码描述配套服务描述开发板测试视频演示开发板获取 前言 在CSDN写博客传播FPGA开发经验已经一年多了&#xff0c;帮助了不少人&#xff0c;也得罪了不少人&#xff0c;有的人用我的代码赢得了某些比赛、…

基于FPGA的HDMI视频接口设计

HDMI介绍 HDMI(High-DefinitionMultimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高清晰度、多声道音频和智能格式与控制命令数据的数字接口。HDMI接口由Silicon Image美国晶像公司倡导,联合索尼、日立、松下、飞利浦、汤姆逊、东…

使用 Django 构建简单 Web 应用

当我们在使用Django构建Web应用时&#xff0c;通常将会涉及到多个步骤&#xff0c;从创建项目到编写视图、模板、模型&#xff0c;再到配置URL路由和静态文件&#xff0c;最后部署到服务器上。所以说如果有一个环节出了问题&#xff0c;都是非常棘手的&#xff0c;下面就是我们…

iPhone设备中定位应用程序崩溃问题的日志分析技巧

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么&#xff1f; 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志&#xff0c;以便调查崩溃的原因。我们将展示三种不同的…

Matlab|【核心复现】同时考虑考虑孤岛与重构的配电网故障恢复运行策略

目录 主要内容 基本知识 1.问题引出 2.可控负荷 3.网络拓扑约束 4.算法流程 结果一览 1.原文结果 2.程序运行结果 下载链接 主要内容 该模型复现文章《同时考虑考虑孤岛与重构的配电网故障恢复运行策略》&#xff0c;以IEEE33配电网为分析对象&#xff0c;…