MT7688/MT7628-GPIO使用

7688/7628的GPIO一共有47个,GPIO0-GPIO46,这些GPIO有复用的功能,按功能模块进行配置,比如I2C有两根线,将其设置为GPIO模式,则两根就都是GPIO模式了,不可为别的功能。

一般有两种方法配置

1.通过寄存器进行配置

下面的使用前提不要被DTS或者驱动什么占用,如switch芯片的network配置

功能的定义由两个地址寄存器。

GPIO1_MODE = 0x10000060
image.png

GPIO2_MODE = 0x10000064
image.png

可以看到两个寄存器覆盖了所有的复用引脚,举个例子,如要将GPIO0/1设置成GPIO模式:

先查看GPIO0/1引脚的默认功能如下,为I2S的引脚。

tcw@tcw:~/code_file/omada_gateway$ git status 位于分支 master 您的分支与上游分支 'origin/master' 一致。 未跟踪的文件: (使用 "git add <文件>..." 以包含要提交的内容) .config .config.old .product .vscode/ bin/ build_dir/ image/ include/ logs/ package/kernel/gpio-button-hotplug/ package/kernel/linux/ package/tplink/cspf/ package/utils/util-linux/ staging_dir/ target/linux/mediatek/files-5.4/arch/arm64/boot/dts/mediatek/mt7981-spim-nand-rfb.dts target/linux/mediatek/patches-5.4/10000-tplink-change-mt7981_phy-led-mode.patch target/linux/mediatek/patches-5.4/10001-mt7531-disable-rx-gro.patch target/linux/mediatek/patches-5.4/10002-tplink-add-mt7981_phy-features.patch target/linux/mediatek/patches-5.4/10003-tplink-avoid-mt7981_phy_down.patch target/linux/mediatek/patches-5.4/10004-mtk-force-mac-up-and-down.patch target/linux/mediatek/patches-5.4/10005-mtk-avoid-adma-rx-hang.patch target/linux/mediatek/patches-5.4/10006-tplink-disable-phylink.patch target/linux/mediatek/patches-5.4/10008-mt7981-disable-kernel-control.patch target/linux/mediatek/patches-5.4/10009-mt7981-kernel-set-flow-control.patch tmp/ toolchain/gcc/ tplink/configs/er7206_un_v2/database/database.tar.gz tplink/configs/er7206_un_v2/database/ips/ tplink/configs/er7206_un_v2/database/url_database/ tplink/package/network/geoip/tmp/ tplink/package/usr_package/cspf/ 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪) 为什么我刚更新完,就有为跟踪的文件
最新发布
10-11
你刚执行了 `git reset --hard origin/master`,理论上本地应该与远程分支完全一致,但执行 `git status` 后却看到大量**未跟踪的文件(Untracked files)**。 --- ### 🔍 为什么会这样? #### ✅ 你当前的状态说明: - 当前分支是 `master`。 - 你的分支与远程 `origin/master` 一致(即没有本地提交)。 - **未跟踪的文件**表示这些文件**不在 Git 索引中**,Git 不知道它们是否应该被版本控制。 --- ### ❓ 为什么刚更新完就有未跟踪的文件? #### 常见原因如下: #### 1. **这些文件被 `.gitignore` 忽略了** - Git 不会跟踪被 `.gitignore` 文件中规则匹配的文件。 - 比如 `.config`、`build_dir/`、`bin/`、`tmp/` 等目录通常是构建产物,被 `.gitignore` 排除。 #### 2. **你执行了 `reset --hard`,但这些文件不是 Git 管理的** - `git reset --hard` 只会影响 Git 跟踪的文件。 - 如果某些文件是构建过程中生成的(如 `build_dir/`、`tmp/`、`.config` 等),Git 不会删除它们,因为它们不在 Git 管理范围内。 #### 3. **你本地有“脏数据”或构建残留** - 比如你之前运行过 `make` 或其他构建命令,生成了配置文件或二进制文件。 - 这些文件不会被 Git 自动清理,除非你手动删除。 --- ### ✅ 如何判断这些文件是否应该被 Git 跟踪? #### 方法 1:查看 `.gitignore` ```bash cat .gitignore ``` 看看是否有类似如下规则: ``` .config .build* bin/ build_dir/ tmp/ ``` 这些规则会导致 Git 忽略对应文件。 #### 方法 2:检查文件是否在 Git 历史中 ```bash git check-ignore -v .config ``` 如果输出匹配的 `.gitignore` 规则,说明该文件被忽略。 --- ### ✅ 如何处理这些未跟踪的文件? #### 1. ✅ 如果这些文件是构建产物,不需要提交: ```bash git clean -fd ``` > ⚠️ 警告:此命令会**永久删除**所有未跟踪的文件和目录,慎用! #### 2. ❌ 如果不确定,可以先列出将被删除的文件: ```bash git clean -fdn ``` - `-n` 表示 dry-run(模拟执行),不会真正删除。 #### 3. ✅ 如果某些文件应该被 Git 跟踪但被忽略了: - 修改 `.gitignore` 文件,删除对应规则。 - 然后手动添加文件: ```bash git add .config git commit -m "Add .config to version control" ``` --- ### ✅ 总结 | 现象 | 原因 | 解决方法 | |------|------|-----------| | 刚更新完就有未跟踪文件 | 构建产物或被 `.gitignore` 忽略 | 使用 `git clean` 删除或修改 `.gitignore` | | 想确认哪些文件被忽略 | 使用 `git check-ignore` | `git check-ignore -v 文件名` | | 想知道哪些文件会被删除 | 使用 `git clean -fdn` | 模拟删除,不实际操作 | ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Creator_Ly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值