谢邀,本文将提供以下内容:
- 小藤的 gpio 使用教学
- 小藤桌面版本如何安装devmem
- 管脚复用怎么使用
gpio功能比较不好用,请认真读完本篇,有问题且确认不是自己操作的问题,再在这个帖子下提问,看到我大概会回一下,能谷歌的问题不回。
1. 小藤的 gpio 使用教学
首先,我们要看的是 40PIN连接定义 这张表: 链接

这张表看到的GPIO有11个,这些GPIO口是可以直接使用的,而 40Pin接口复用关系 这个表,有点误导人,这里最左边第一列表示这个管脚能使用GPIO,但不一定能直接用,需不需要先做复用配置,还是要看上面那张表 链接

也就是说,第二个表里面不存在于第一个表的gpio口,需要先配置复用关系,他才是gpio,而第一个表中有的gpio,则是这个管脚不需要配置复用关系,默认给出的就是gpio功能。
那么我们先抛开需要复用那些,看下默认的怎么用。这里选相邻的两个默认都是gpio的管脚:16、18号管脚,对应gpio23、gpio24,而这里又有一个问题,他们的组号、管脚怎么看?

这里的介绍有点误导人,两个参数应该是组号、pid,这两个来自于上面第二个表,也就是接口复用关系里面的后缀,后面的寄存器的表也能看到:

第一个框是管脚;第二个是gpio编号;第三个复用关系带了gpio代表他是gpio功能,后缀有两个数字,代表组号和pid,也就是说,gpio命令里面要填的数字是这两个,分别是2-16、0-25。
这里需要一个小灯泡用来测高低电平,没有的话,买了ch340串口线的,反正这里不需要vcc,撕下来一条线,连接16和18号管脚(电灯泡的话连接16和随便一个GND或者VCC都可以),这里连接了16、18管脚。
先设置16为输出,18为输入:

设置16电平,查询两个电平:

可以看到16、18管脚值都会随16管脚设置改变,没有问题,这一部分结束。
2. 小藤桌面版本安装devmem
小藤RC1版本的镜像,只需要下载devmem安装一下就可以了,RC2桌面版本的说是需要弄什么什么安全(具体我忘了,只记得安全了),所以禁止了devmem直接修改内存的功能,所以RC2版本想用devmem需要修改系统配置,再自己制作一个系统内核!这里我弄好了一个,放百度网盘了,需要可以下载,devmem也一并放了,因为有墙,不好下载,如果这个Image文件有啥问题可以留个言,或者你们自己做一个。不做内核的可以下载完跳到安装内核和devmem的步骤。
链接:https://pan.baidu.com/s/1nAfxaXyZd8-fmQZCxm025w?pwd=6666 提取码:6666
编译内核参考的文档是这个:https://support.huawei.com/enterprise/zh/doc/EDOC1100305050/6b8ce419
首先下载源码包,源码包在使用40pin接口->接口复用操作->准备->获取源码的第一步可以下载到
链接我粘过来了: https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.RC2/Ascend-hdk-310b-sdk-soc_23.0.rc2.zip
这里需要准备一个x86的linux电脑,实际上可以用自己的pc装一个ubuntu: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC1/Application Development Guide/ttmutat/tmuacop_0010.html
把包放进去解压之后里面有好多个包,解压里面的Ascend310B-source.tar.gz
进入Ascend310B-source,然后修改一个文件:
注释掉这两行:

之后按照文档介绍安装一大堆依赖:
然后解压工具包里面的 toolchain.tar.gz 按照指导安装交叉编译工具链

然后再回到前面Ascend310B-source,进去编译: bash build.sh kernel 编译过程中弹出窗口设置需要使用usb和gpio,但是这两个好像我没修改设置默认就是开的:

等待编译完成,在output文件夹中就有一个Image文件了,也就是上面给的百度网盘的链接,但是由于我对这个东西不熟,所以可能漏了什么,如果使用发现有什么问题可以在帖子下回复我。
之后就是把Image文件复制到开发板上,运行命令:
完了之后重启,把上面链接中的devmem下载放到一个文件夹里,执行一下
这里devmem安装好了
3. 设置管脚复用
这一部分参考了这个帖子: https://www.hiascend.com/forum/thread-0267127649273559072-1-1.html
第一部分讲到了,除了40PIN连接定义中一开始就是gpio的管脚,其他的得设置复用之后才能用,这里我选了管脚3

配置复用关系就得看寄存器信息表了 链接

管脚3复用到GPIO2,设置复用关系的基地址是0x0082320000,偏移地址是0x02C,基地址+偏移地址设置成0x3就是这个复用关系,修改好复用关系之后,组号和pid是2-12。这里32代表32位,保持不变不用管

小灯泡一头连接GND,一头连接管脚3

设置可以看到小灯泡暗亮无误。
最后
吐槽一下,首次安装还是挺麻烦的,而且开机之后需要重新配置复用关系,尤其是生成Image那里,翻文档找了一下午。建议这个功能可以集成一下,直接调用python或者C++直接使用。 另外感谢 @林同学 的大力支持!!!
谢邀,本文将提供以下内容:
gpio功能比较不好用,请认真读完本篇,有问题且确认不是自己操作的问题,再在这个帖子下提问,看到我大概会回一下,能谷歌的问题不回。
1. 小藤的 gpio 使用教学
首先,我们要看的是 40PIN连接定义 这张表: 链接
这张表看到的GPIO有11个,这些GPIO口是可以直接使用的,而 40Pin接口复用关系 这个表,有点误导人,这里最左边第一列表示这个管脚能使用GPIO,但不一定能直接用,需不需要先做复用配置,还是要看上面那张表 链接
也就是说,第二个表里面不存在于第一个表的gpio口,需要先配置复用关系,他才是gpio,而第一个表中有的gpio,则是这个管脚不需要配置复用关系,默认给出的就是gpio功能。
那么我们先抛开需要复用那些,看下默认的怎么用。这里选相邻的两个默认都是gpio的管脚:16、18号管脚,对应gpio23、gpio24,而这里又有一个问题,他们的组号、管脚怎么看?
这里的介绍有点误导人,两个参数应该是组号、pid,这两个来自于上面第二个表,也就是接口复用关系里面的后缀,后面的寄存器的表也能看到:
第一个框是管脚;第二个是gpio编号;第三个复用关系带了gpio代表他是gpio功能,后缀有两个数字,代表组号和pid,也就是说,gpio命令里面要填的数字是这两个,分别是2-16、0-25。
这里需要一个小灯泡用来测高低电平,没有的话,买了ch340串口线的,反正这里不需要vcc,撕下来一条线,连接16和18号管脚(电灯泡的话连接16和随便一个GND或者VCC都可以),这里连接了16、18管脚。
先设置16为输出,18为输入:
设置16电平,查询两个电平:
可以看到16、18管脚值都会随16管脚设置改变,没有问题,这一部分结束。
2. 小藤桌面版本安装devmem
小藤RC1版本的镜像,只需要下载devmem安装一下就可以了,RC2桌面版本的说是需要弄什么什么安全(具体我忘了,只记得安全了),所以禁止了devmem直接修改内存的功能,所以RC2版本想用devmem需要修改系统配置,再自己制作一个系统内核!这里我弄好了一个,放百度网盘了,需要可以下载,devmem也一并放了,因为有墙,不好下载,如果这个Image文件有啥问题可以留个言,或者你们自己做一个。不做内核的可以下载完跳到安装内核和devmem的步骤。
链接:https://pan.baidu.com/s/1nAfxaXyZd8-fmQZCxm025w?pwd=6666 提取码:6666
编译内核参考的文档是这个:https://support.huawei.com/enterprise/zh/doc/EDOC1100305050/6b8ce419
首先下载源码包,源码包在使用40pin接口->接口复用操作->准备->获取源码的第一步可以下载到
链接我粘过来了: https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.RC2/Ascend-hdk-310b-sdk-soc_23.0.rc2.zip
这里需要准备一个x86的linux电脑,实际上可以用自己的pc装一个ubuntu: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC1/Application Development Guide/ttmutat/tmuacop_0010.html
把包放进去解压之后里面有好多个包,解压里面的Ascend310B-source.tar.gz
进入Ascend310B-source,然后修改一个文件:
注释掉这两行:
之后按照文档介绍安装一大堆依赖:
然后解压工具包里面的 toolchain.tar.gz 按照指导安装交叉编译工具链
然后再回到前面Ascend310B-source,进去编译: bash build.sh kernel 编译过程中弹出窗口设置需要使用usb和gpio,但是这两个好像我没修改设置默认就是开的:
等待编译完成,在output文件夹中就有一个Image文件了,也就是上面给的百度网盘的链接,但是由于我对这个东西不熟,所以可能漏了什么,如果使用发现有什么问题可以在帖子下回复我。
之后就是把Image文件复制到开发板上,运行命令:
完了之后重启,把上面链接中的devmem下载放到一个文件夹里,执行一下
这里devmem安装好了
3. 设置管脚复用
这一部分参考了这个帖子: https://www.hiascend.com/forum/thread-0267127649273559072-1-1.html
第一部分讲到了,除了40PIN连接定义中一开始就是gpio的管脚,其他的得设置复用之后才能用,这里我选了管脚3
配置复用关系就得看寄存器信息表了 链接
管脚3复用到GPIO2,设置复用关系的基地址是0x0082320000,偏移地址是0x02C,基地址+偏移地址设置成0x3就是这个复用关系,修改好复用关系之后,组号和pid是2-12。这里32代表32位,保持不变不用管
小灯泡一头连接GND,一头连接管脚3
设置可以看到小灯泡暗亮无误。
最后
吐槽一下,首次安装还是挺麻烦的,而且开机之后需要重新配置复用关系,尤其是生成Image那里,翻文档找了一下午。建议这个功能可以集成一下,直接调用python或者C++直接使用。 另外感谢 @林同学 的大力支持!!!