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

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 输出 device、offline 或 unknown。
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) 一条独立的开发线。默认主线叫 master 或 main。你可以从主线拉出一个分支,在新分支上改代码,不影响主线。
暂存区 (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

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

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

相关推荐
敬往事一杯酒哈1 小时前
海康 AGV 导航读码器学习
学习
qq_284274053 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_284274054 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan20245 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
小雪崩6 小时前
嵌入式学习 day64:字符设备驱动
学习
个 人 练 习 生6 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
坤坤子吖6 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
词却8 小时前
OpenCV学习:MediaPipe 人脸网格检测
opencv·学习
李日华大战鸡红8 小时前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
AI职业加油站8 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展