实习日记--基础内容学习

1、ADB

win+r输入sysdm.cpl,然后在系统属性中选高级,点环境变量,在系统变量里面找到path,选中之后编辑,新建选择我下载的adb.exe的路径,最后点确定。

接着win+r输入cmd进入终端,输入adb devices,如果显示.....device,代表连接正常,便可以通过adb shell进入板子系统

adb 命令是在你电脑(Windows)的命令行里用的,不是在开发板的 shell 里用的

用途 命令 说明
1. 查看连接设备 adb devices 列出所有连接的设备,状态为 device 表示正常。
2. 进入板子系统 adb shell 进入开发板的命令行环境(类似串口)。
3. 发送文件到板子 adb push <本地路径> <板子路径> 例如:adb push test.txt /sdcard/
4. 从板子拉取文件 adb pull <板子路径> <本地路径> 例如:adb pull /sdcard/log.txt D:\logs\
5. 安装 APK adb install <apk路径> 安装应用到开发板。
6. 卸载 APK adb uninstall <包名> 卸载应用(包名例如 com.example.app)。
7. 查看实时日志 adb logcat 显示系统日志,按 Ctrl+C 停止。可以用 `adb logcat
8. 重启设备 adb reboot 正常重启开发板。
9. 重启到 Bootloader adb reboot bootloader 进入刷机模式(配合 fastboot 使用)。
10. 执行单条命令 adb shell <命令> 不进入交互终端,直接在板子上执行一条命令。例如 adb shell ls /data
11. 查看设备状态 adb get-state 输出 deviceofflineunknown
12. 查看 ADB 版本 adb version 显示 ADB 工具版本。
13. 杀死 ADB 服务 adb kill-server 停止 ADB 后台服务,一般用于重启服务解决异常。
14. 截屏 adb shell screencap /sdcard/screen.png adb pull /sdcard/screen.png 先截屏保存到板子,再拉取到电脑。
15. 无线连接(高级) adb tcpip 5555 adb connect 192.168.1.100:5555 先 USB 连接,执行 adb tcpip 5555 开启无线模式,然后拔线,用 adb connect IP:5555 无线连接。

常用命令

1、查看设备序列号

adb device

复制代码
C:\Users\aston> adb devices
List of devices attached
397ec3c477064c11        device

2、使用adb工具连接设备(与板子建立连接)
adb shell

复制代码
C:\Users\aston> adb shell
rk3568_r:/ $ ls
acct  bin         cache   d     data_mirror    default.prop  etc   init.environ.rc  lost+found  mnt  oem   product  sdcard   sys     system_ext
apex  bugreports  config  data  debug_ramdisk  dev           init  linkerconfig     metadata    odm  proc  res      storage  system  vendor

3、获取系统日志

复制代码
# 查看全部日志
C:\Users\aston> adb logcat

# 仅查看部分日志
C:\Users\aston> adb logcat -s WifiStateMachine StateMachine

# 保存系统日志到电脑本地目录
C:\Users\aston> adb logcat -v time > your/target/path

4、安装 APK

复制代码
#安装
C:\Users\aston> adb install "apk文件路径"
#重新安装
C:\Users\aston> adb install --r "apk文件路径"

5、将文件拷贝到主板

复制代码
#让ADB设备端切换到root权限模式
C:\Users\aston> adb root

#重新挂载文件系统,将设备改为可读可写
C:\Users\aston> adb remount

C:\Users\aston> adb push "本地路径" "主板系统路径"

6、将主板文件拷贝到本地

复制代码
#让ADB设备端切换到root权限模式
C:\Users\aston> adb root

#重新挂载文件系统,将设备改为可读可写
C:\Users\aston> adb remount

C:\Users\aston> adb pull "主板系统文件路径" "本地路径"

2、传文件

现在我在Windows下面下载了一个压缩包,我需要传到ssh下的Linux系统当中

1、先在Linux下执行ip a查看ip地址,假设为192.168.1.100

2、在Windows打win+r输入cmd进入终端

3、在终端当中执行scp D:\path\to\your\sdk.tar.xz android003@192.168.1.100:~/

4、回到ssh终端输入ls -lh ~/检查文件是否传好

3、HDC

HDC(HarmonyOS Device Connector) 是鸿蒙生态中专为开发者打造的命令行调试工具。它就像是你连接、调试和管理鸿蒙设备的万能钥匙,作用和安卓世界里的ADB类似

功能模块 主要用途 典型使用场景
设备连接与管理 连接设备、查看设备状态等 连接设备后,第一时间验证连接是否成功。
应用管理 安装 (.hap/.app)、卸载鸿蒙应用 将自己开发的应用或调试包安装到设备上进行测试。
文件传输 在电脑和设备之间双向传输文件 将构建好的应用包传给设备,或从设备拉取日志文件进行分析。
系统调试 执行命令、查看日志 (hilog)、重启设备 调试应用逻辑、获取系统运行日志、排查问题。
服务控制 启动、停止、重启 hdc 服务进程 hdc 连接出现异常时,可以通过重启服务来解决。

常用命令

命令 说明
hdc list targets 查看已连接的设备列表
hdc shell 进入设备命令行环境
hdc install <hap路径> 安装 HAP 应用包
hdc uninstall <包名> 卸载指定包名的应用
hdc file send <本地> <设备> 推送文件到设备
hdc file recv <设备> <本地> 从设备拉取文件到本地
hdc hilog 查看设备实时日志
hdc shell hilog -r 清空日志缓冲区
hdc shell reboot 重启设备
hdc kill 停止 hdc 服务进程
hdc start 启动 hdc 服务进程
hdc tconn <设备IP> 通过网络连接鸿蒙设备
hdc smode 进入超级模式(获取 root 权限)
hdc smode -r 退出超级模式
hdc version 查看 hdc 工具版本号
hdc help 显示所有命令的帮助信息

4、GIT

Git 是目前最流行的分布式版本控制系统 ,简单说就是帮你记录代码或文件的每一次修改历史 ,方便你回溯、协作、分支管理。

命令 说明
git init 在当前目录初始化一个新的 Git 仓库
git clone <url> 从远程仓库下载整个项目到本地
git status 查看当前文件状态(哪些修改了、哪些未跟踪)
git add <file> 将文件添加到暂存区(准备提交)
git add . 添加所有修改/新增的文件
git commit -m "说明" 提交暂存区的修改,并写上本次改动说明
git log 查看提交历史记录
git diff 查看当前修改与上次提交的差异
git branch 列出所有分支,* 表示当前分支
git checkout <分支名> 切换到指定分支
git checkout -b <新分支名> 创建并切换到新分支
git merge <分支名> 将指定分支合并到当前分支
git pull 从远程仓库拉取最新代码并合并(= git fetch + git merge
git push 将本地的提交推送到远程仓库
git remote -v 查看当前配置的远程仓库地址
.gitignore 文件列表,告诉 Git 忽略哪些文件(不提交)

4.1、Git 的核心概念

概念 通俗解释
仓库 (Repository) 就是你的项目文件夹,但被 Git 管起来了。里面有一个隐藏的 .git 目录,记录所有历史。
提交 (Commit) 一次"存档"。每次 commit 会记录当前所有文件的快照,并附上一段说明(比如"修复了 ADC 读取 bug")。
分支 (Branch) 一条独立的开发线。默认主线叫 mastermain。你可以从主线拉出一个分支,在新分支上改代码,不影响主线。
暂存区 (Stage) 你改完文件后,需要先 git add 把文件"放进暂存区",然后 git commit 才会把暂存区的内容正式存档。
远程仓库 (Remote) 放在服务器上的仓库(比如 GitHub、GitLab、Gitee)。用于多人协作或备份。

4.2、第一次使用 Git 的配置(只需做一次)

告诉 Git 你是谁,这样每次 commit 会记录作者信息。

bash 复制代码
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

git config --global user.name "zhangsan"
git config --global user.email "zhangsan@example.com"

4.3、Git 的基本使用流程(最常用命令)

假设你有一个文件夹 my_project,里面有一个 main.c

1、初始化仓库(让Git开始管理这个文件夹)---- 会生成一个隐藏的.git文件夹

bash 复制代码
cd my_project
git init

2、查看状态

它会告诉你哪些文件被修改了、哪些还没被 Git 跟踪

bash 复制代码
git status

3、添加文件到暂存区

bash 复制代码
git add main.c        # 只添加这一个文件
git add .             # 添加当前目录下所有新文件/修改

4、提交(存档)

-m 后面是本次提交的说明,一定要写清楚改了什么。

bash 复制代码
git commit -m "第一次提交,实现了 ADC 读取功能"

5、查看提交历史

会显示每次 commit 的哈希值、作者、时间、说明。

bash 复制代码
git log

4.4、分支操作

当你需要尝试新功能时,建议新建一个分支:

bash 复制代码
git branch new_feature      # 创建分支
git checkout new_feature    # 切换到新分支
# 或者一条命令创建并切换:
git checkout -b new_feature

在新分支上修改代码、addcommit。如果新功能做好了,想合并回主分支:

bash 复制代码
git checkout master         # 先切回主分支
git merge new_feature       # 将 new_feature 合并到 master

如果新功能不想要了,直接删除分支:

bash 复制代码
git branch -d new_feature

4.5、回到历史版本

假设你提交了 3 次,现在想回到第 1 次的状态。

首先查看日志,找到那个 commit 的哈希值(比如 a1b2c3d

bash 复制代码
git log --oneline

然后有两种方式:

1、只是看看,不破坏后续提交(推荐):

bash 复制代码
git checkout a1b2c3d

git checkout master //看完后回到最新

2、彻底回到那个版本,丢弃之后的修改

bash 复制代码
git reset --hard a1b2c3d

4.6、与远程仓库配合

你可以在 GitHub / Gitee 上创建一个空仓库,然后:

1. 把本地仓库推送到远程

bash 复制代码
git remote add origin https://github.com/yourname/my_project.git
git push -u origin master

2. 从远程仓库克隆(下载)到本地

bash 复制代码
git clone https://github.com/yourname/my_project.git

3. 拉取远程最新代码

bash 复制代码
git pull

4. 推送本地提交到远程

bash 复制代码
git push

4.7、具体案例

第一步:创建项目并初始化仓库

bash 复制代码
# 创建一个工作目录
mkdir adc_project
cd adc_project

# 初始化 Git 仓库
git init

第二步:编写第一个版本并提交

创建adc_read.c

cpp 复制代码
#include <stdio.h>

int main() {
    FILE *f = fopen("/sys/bus/iio/devices/iio:device0/in_voltage2_raw", "r");
    if (!f) return -1;
    int raw;
    fscanf(f, "%d", &raw);
    fclose(f);
    printf("ADC raw: %d\n", raw);
    return 0;
}

现在查看状态:

bash 复制代码
git status

添加并提交第一个版本:

bash 复制代码
git add adc_read.c
git commit -m "版本1: 基本功能,读取ADC原始值"

第三步:创建第二个版本(增加电压换算)

修改 adc_read.c,增加电压换算(假设参考电压1.8V,10位ADC):

cpp 复制代码
#include <stdio.h>

int main() {
    FILE *f = fopen("/sys/bus/iio/devices/iio:device0/in_voltage2_raw", "r");
    if (!f) return -1;
    int raw;
    fscanf(f, "%d", &raw);
    fclose(f);
    float voltage = raw * 1.8 / 1023.0;
    printf("ADC raw: %d, voltage: %.2f V\n", raw, voltage);
    return 0;
}

查看修改:

bash 复制代码
git status

添加并提交:

bash 复制代码
git add adc_read.c
git commit -m "版本2: 增加电压换算功能"

第四步:创建第三个版本(增加循环和定时)

修改 adc_read.c,让它每秒读一次,连续读10次:

cpp 复制代码
#include <stdio.h>
#include <unistd.h>

int main() {
    for (int i = 0; i < 10; i++) {
        FILE *f = fopen("/sys/bus/iio/devices/iio:device0/in_voltage2_raw", "r");
        if (!f) return -1;
        int raw;
        fscanf(f, "%d", &raw);
        fclose(f);
        float voltage = raw * 1.8 / 1023.0;
        printf("[%d] raw: %d, voltage: %.2f V\n", i+1, raw, voltage);
        sleep(1);
    }
    return 0;
}

添加并提交:

bash 复制代码
git add adc_read.c
git commit -m "版本3: 增加循环读取,每秒一次,共10次"

第五步:查看提交历史

bash 复制代码
git log --oneline

会输出类似:

bash 复制代码
d4e5f6g (HEAD -> master) 版本3: 增加循环读取,每秒一次,共10次
b2c3d4e 版本2: 增加电压换算功能
a1b2c3d 版本1: 基本功能,读取ADC原始值

第六步:回退到某个版本(假设你想回到版本2)

bash 复制代码
git checkout b2c3d4e   # 使用版本2的commit哈希的前7位

此时文件内容变回版本2的代码。你可以编译测试。

如果想回到最新版本:

bash 复制代码
git checkout master

第七步:创建分支做实验(比如尝试修改电压计算公式)

bash 复制代码
git checkout -b try_new_formula   # 创建并切换新分支

修改 adc_read.c,把电压公式改成 raw * 1.8 / 1024.0。提交:

bash 复制代码
git add adc_read.c
git commit -m "尝试新的电压公式: 除以1024"

如果实验成功,合并回 master:

bash 复制代码
git checkout master
git merge try_new_formula

如果不成功,直接删除分支:

bash 复制代码
git branch -d try_new_formula

第八步:推送到远程仓库(备份或协作)

先在 GitHub/Gitee 上创建一个空仓库(不要生成 README),然后

bash 复制代码
git remote add origin https://github.com/yourname/adc_project.git
git push -u origin master

以后每次提交后,只需 git push

相关推荐
xianrenli381 小时前
【探讨“LLM作为评判者”的伦理】
学习·llm·ai编程
星恒随风2 小时前
C++ 类和对象入门(二):默认成员函数、构造函数和析构函数详解
开发语言·c++·笔记·学习
GHL2842710902 小时前
登录、注册页面学习
学习
MartinYeung52 小时前
[论文学习]利用索引梯度优化基于优化的 LLM 越狱攻击:MAGIC 方法的深度分析与实现
人工智能·学习·算法
千寻girling2 小时前
机器学习 | 无监督学习算法(了解) | 尚硅谷学习
学习·算法·机器学习
共享家95272 小时前
Skill的概述与使用
人工智能·学习·openclaw
`流年づ2 小时前
人工智能学习笔记-KNN
人工智能·笔记·学习
AOwhisky2 小时前
学习自测与解析:MySQL 系列第三期与第四期
linux·运维·数据库·学习·mysql·云计算
jinxindeep2 小时前
EgoLive:面向机器人操作学习的超大规模第一视角数据集
人工智能·学习·机器人