跳到主要内容

生效dtb文件

准备

获取源码

  1. 下载[软件包](https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Ascend HDK/Ascend HDK 23.0.RC3/Ascend-hdk-310b-sdk-soc_23.0.rc3.zip)。
  2. 解压后获取工具链安装包toolchain.tar.gz与源码包Ascend310B-source tar.gz。

环境准备

  • 一台带网络端口且操作系统为Ubuntu 22.04的x86 Linux服务器。
  • Linux服务器已安装python、make、gcc、unzip、pigz、bison、flex、libncurses-dev、squashfs-tools、bc、device-tree-compiler、libssl-dev、cmake与交叉编译工具链。

:::note 说明

  • 所有的依赖必须用root用户进行安装。

  • 用户可以通过如下命令进行安装上述依赖。

    apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake :::

工具链安装

  1. 登录Linux服务器。

  2. 执行如下命令,切换至root用户。

    su - root

  3. 执行如下命令,创建/opt/compiler目录。

    mkdir /opt/compiler

  4. 将交叉编译工具链包“toolchain.tar.gz”上传至/opt/compiler目录。详细操作请参见Windows与开发者套件的文件传输

  5. 进入到/opt/compiler目录。

    cd /opt/compiler

  6. 执行如下命令,解压交叉编译工具。

    tar -xvf toolchain.tar.gz -C ./

  7. 在配置文件中增加交叉编译工具链路径。

    echo "export PATH=/opt/compiler/toolchain/bin:$PATH: " >> /etc/profile

  8. 执行如下命令,使环境变量生效。

    source /etc/profile

  9. 执行如下命令,查看交叉编译工具链版本。

    aarch64-target-linux-gnu-gcc -v

    显示有版本信息,则表明安装工具链成功。

父主题: 接口复用操作

编译

  1. 登录Linux服务器。

  2. 执行如下命令,切换至root用户。

    su - root

  3. 将源码包“Ascend310B-source.tar.gz”上传至Linux系统root用户属组目录下,例如/opt。详细操作请参见传输文件

  4. 执行如下命令,进入源码包所在目录,例如/opt。

    cd /opt

  5. 执行如下命令,解压源码包“Ascend310B-source.tar.gz”。

    tar -xzvf Ascend310B-source.tar.gz

    tar -xzvf 源码包

  6. 执行如下命令,进入product目录。

    cd Ascend310B-source/dtb/dts/hi1910b/hi1910BL/product

  7. 执行如下命令编辑hi1910B-pinctrl-M100-B51.dtsi文件。

    vim hi1910B-pinctrl-M100-B51.dtsi

    根据表格表1管脚19、21、23与24的端口复用寄存器基地址为0x0082320000,管脚19、21、23与24的复用寄存器偏移地址分别为0x068、0x06c、0x060和0x064。

    找到pinmux@82320000节点,修改SPI0节点的复用寄存器的值即可。

    当前寄存器值0x0为SPI功能,将其更改为0x3,0x3为gpio功能。

    更改后如下图所示,图中红色方框内为修改内容。

    用户可根据自身需要配置端口复用寄存器的值,寄存器的值与复用功能的对应关系请参见表1

  8. (可选)hi1910B-pinctrl-M100-B51.dtsi文件未全部包含表1中涉及的管脚,当用户需要复用文件中未涉及的管脚,可参考此步骤添加。

    • 当管脚的复用寄存器基地址为0x00C4000000、0x0082320000或0x0400140000时,可在hi1910B-pinctrl-M100-B51.dtsi文件中对应节点下参考如下格式进行配置。

      示例:在0x00C4000000节点下新增配置,将管脚22复用为gpio0_02,红框内为新增内容。

    • 当管脚的复用寄存器基地址为0x00A0140000时,hi1910B-pinctrl-M100-B51.dtsi文件中无此节点,此时可参考hi1910B-pinctrl-M150-B50.dtsi中的配置。

      :::note 说明 hi1910B-pinctrl-M150-B50.dtsi在“Ascend310B-source/dtb/dts/hi1910b/hi1910BL/product”目录下。 :::

  9. 按“Esc”键,再执行如下命令,保存修改并按“Enter”键退出。

    :wq!

  10. 执行以下命令,返回至opt目录。

    cd /opt

  11. 禁用SPI0功能。

    由于SPI0的管脚被改成GPIO功能,SPI0的驱动无法使用,需要将其功能进行屏蔽。

    执行以下命令,打开Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base路径下的“hi1910B-spi.dtsi”文件。

    vim Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base/hi1910B-spi.dtsi

    在SPI0设备节点中添加语句“status = "disabled";”以禁用SPI0管脚的主功能。修改完成后如下图所示,图中红色方框内为新增内容。

    :::note 说明 本节以SPI0为例,修改dts文件,若复用其他管脚功能,请根据实际情况修改dts文件,禁用不使用的功能或添加新功能。 :::

  12. 按“Esc”键,再执行如下命令,保存修改并按“Enter”键退出。

    :wq!

  13. 执行如下命令,编译dtb文件。

    c****d /opt/Ascend310B-source

    bash build.sh dtb

    出现如下回显,表示编译内核dtb文件成功。

    generate /opt/Ascend310B-source/output/dt.img success!
    sign /opt/Ascend310B-source/output/dt.img success!

    :::note 说明 编译后的dt.img文件会自动存放于output目录下。 :::

父主题: 接口复用操作

生效dtb文件

  1. 登录开发者套件系统环境。

  2. 将编译后的“dt.img”文件上传至任意目录下,例如/opt。详细操作请参见传输文件

  3. 执行以下命令,进入/opt目录。

    cd /opt

  4. 升级dt.img文件。

    dd if=dt.img of=/dev/mmcblk1 count=4096 seek=114688 bs=512

  5. 升级完成后重启生效。

    reboot

父主题: 接口复用操作

概述

gpio_operate工具用于设置GPIO管脚的输入与输出方向,也可将每个GPIO管脚独立的设为0或1。

父主题: GPIO工具介绍

使用指南

  • gpio_operate命令必须使用root账号执行。

  • 支持设置的GPIO管脚如表1所示,以下管脚存在复用关系,使用前须将其复用为GPIO。

    表1 开发者套件支持的GPIO管脚

    组号管脚号
    02,3,14,15,23,25 (说明:第0组的第23个管脚为内部使用管脚,用于设置开发者套件的LED3状态指示灯。)
    11,6
    211,12,15,16,17,18,19,20,25,26,27,28
    40
    72,3,4,5,6,7

父主题: GPIO工具介绍

获取GPIO帮助信息

命令功能

gpio_operate -h用于获取gpio_operate命令帮助信息。

参数说明

使用实例

获取gpio_operate命令帮助信息。

gpio_operate -h
Usage: gpio_operate <Command|-h> [Options...]
gpio_operate Command:
-h : This command's help information.
set_value : Set gpio pin value.
get_value : Get gpio pin value.
set_direction : Set gpio pin direction value.
get_direction : Get gpio pin direction value.

父主题: 使用示例

在线提单