差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
nk-rk3399-v0c [2023/03/08 19:26]
wjj
nk-rk3399-v0c [2023/09/21 01:59] (当前版本)
hjw
行 1: 行 1:
 ===== NK-RK3399-V0C ===== ===== NK-RK3399-V0C =====
-==== Motherboard frame diagram ====+==== 主板框架图 ====
 {{:pasted:20221214-220552.png}} {{:pasted:20221214-220552.png}}
-==== Interface definition ====+==== 主板接口定义 ====
  
 {{page>:template:temp_hw}} {{page>:template:temp_hw}}
行 19: 行 19:
 {{page>:template:temp_download}} {{page>:template:temp_download}}
 === 系统烧录 === === 系统烧录 ===
-{{page>:template:temp_burn}}+ 
 +1、下载烧录工具: 
 +  * 请务必先安装驱动,烧录工具链接含有驱动DriverAssitant压缩包,解压后点击DriverInstall.exe安装驱动 
 +  
 +{{:arm:rk3399:3399-shaolu.png?600|}} 
 + 
 +2、开始烧录: 
 +  * 将数据线一端与主板OTG连接,另一端连接电脑。注意烧录前,需关闭电源,开电源时按住boot_key按键进行烧入。 
 + 
 +{{:arm:rk3399:shaolugujian.png?600|}} 
 + 
 +  * 打开压缩包中开发工具 >> 升级固件 >> 点击固件并选择好固件 >> 点升级开始烧录 
 + 
 +{{:arm:rk3399:faxian.png?600|}} 
 + 
 +  * 烧录过程中的状态,会有进度显示 
 + 
 +{{:arm:rk3399:shaoluzhong.png?600|}} 
 + 
 +  * 更换系统平台(例如安卓切换到Linux)时,可能出现无法烧录的情况,此时打开开发工具 >> 高级功能 >> 点击进入Maskrom切换烧录模式后烧录系统 
 + 
 +{{:arm:rk3399:moshi.png?600×456|}} 
 + 
 +3、完成烧录: 
 +  * 烧录过程不需要任何操作,烧录成功后右框会显示设备自动重启,烧录完成。 
 + 
 +{{:arm:rk3399:shaoluwancheng.png?600|}} 
 + 
 +=== Fwbackups备份软件安装 === 
 + 
 +{{page>:template:temp_ff}} 
 + 
 +=== 生成rootfs镜像 === 
 + 
 +{{page>:template:temp_vv}} 
 === Debug串口调试 === === Debug串口调试 ===
 1、通过串口进入系统后台,需要利用板子的Debug接口,接口位置和定义如图: 1、通过串口进入系统后台,需要利用板子的Debug接口,接口位置和定义如图:
行 62: 行 97:
 {{page>:template:temp_android_uart}} {{page>:template:temp_android_uart}}
 == LAN == == LAN ==
 +1. 将网线连接到主板LAN1接口上
 +
 {{:arm:rk3399:android:lan_1.jpg?600|}} {{:arm:rk3399:android:lan_1.jpg?600|}}
 +
 +2. 查看网卡IP地址
 +
 + a)点击设置 => 点击更多
 +  
 +{{:arm:rk3399:android:lan-2.png?600|}}
 +  
 + b)点击Ethernet
 +  
 +{{:arm:rk3399:android:lan-3.png?600|}}
 +
 + c)查看IP地址,一般系统默认动态获取IP地址
 +  
 +{{:arm:rk3399:android:lan-4.png?600|}}
 +
 +3. 连接上网络后,打开浏览器浏览网页查看是否连接上网络
 +
 +{{:arm:rk3399:android:lan-5.png?600|}}
 +
 +4.设置以太网静态IP地址
 +
 + * 点击 Ethernet IP mode 选择 static
 +
 +{{:arm:rk3399:android:lan-6.png?600|}}
 +
 + * 进行设置
 +
 +{{:arm:rk3399:android:lan-7.png?600|}}
 +
 == WIFI == == WIFI ==
 1.打开设置,点击WLAN 1.打开设置,点击WLAN
行 83: 行 149:
 == Can == == Can ==
 {{page>:template:temp_android_can}} {{page>:template:temp_android_can}}
-== GPIO/DIO == +== GPIO == 
-{{:arm:rk3399:linux:io.png?600|}}+{{page>:template:temp_android_gpio}}
 == Audio == == Audio ==
 {{page>:template:temp_android_audio}} {{page>:template:temp_android_audio}}
行 236: 行 302:
 3. 打开浏览器,浏览任意网站。 3. 打开浏览器,浏览任意网站。
  
-{{:arm:rk3399:linux:baidu.png?600|}}+{{:arm:rk3399:linux:36s0_4g11.png?600|}}
      
 4. 5G测试方法与4G类似,输入命令5g即可自动拨号: 4. 5G测试方法与4G类似,输入命令5g即可自动拨号:
行 244: 行 310:
 {{page>:template:temp_linux_can}} {{page>:template:temp_linux_can}}
 == GPIO/DIO == == GPIO/DIO ==
-1. IO 控制节点都在/sys/class/io_control/+1.IO控制节点都在/sys/class/io_control 
 + 
 +{{:arm:rk3399:linux:rk3399_gpio10.png?600|}}
  
-{{:arm:rk3399:linux:io.png?600|}} 
-   
-    
 2. IO 对应表如下:   2. IO 对应表如下:  
 ^ 功能   ^ 主板丝印  ^ 节点名    ^   ^ 功能   ^ 主板丝印  ^ 节点名    ^  
行 254: 行 319:
 | :::    | IO2       | gpio_ip1  |   | :::    | IO2       | gpio_ip1  |  
 | :::    | IO3       | gpio_ip2  |   | :::    | IO3       | gpio_ip2  |  
-| :::    | IO4       | gpio_ip3  |  +| :::    | IO4       | gpio_ip3 
-| :::    | IO5       | gpio_ip4  |+| :::    | IO5       | gpio_ip4  |
 | :::    | IO6       | gpio_ip5  | | :::    | IO6       | gpio_ip5  |
-^ 输出   | IO7       | gpio_op0  |  + 输出  | IO7       | gpio_op0  |  
 | :::    | IO8       | gpio_op1  |   | :::    | IO8       | gpio_op1  |  
 | :::    | IO9       | gpio_op2  |   | :::    | IO9       | gpio_op2  |  
-| :::    | IO10      | gpio_op3  |  +| :::    | IO10      | gpio_op3  |
 | :::    | IO11      | gpio_op4  | | :::    | IO11      | gpio_op4  |
 | :::    | IO12      | gpio_op5  | | :::    | IO12      | gpio_op5  |
-  +
-  +
 3. IO控制方法: 3. IO控制方法:
  
行 282: 行 346:
      
   cat /sys/class/io_control/gpio_ip0   cat /sys/class/io_control/gpio_ip0
 +  
 == Audio == == Audio ==
   * 将喇叭连接板子上的 SPK 端口   * 将喇叭连接板子上的 SPK 端口
行 725: 行 790:
 ==== Linux 应用支持 ==== ==== Linux 应用支持 ====
 === QT交叉编译环境 === === QT交叉编译环境 ===
-{{page>:template:temp_Linux_qt}}+* 主机环境推荐:Debian 10 x64 bit, 
 +可以直接导入配置好的虚拟机镜像: 
 +[[ftp://drv.nodka.com/arm_download/debian_10_qt_build.ova|QT编译环境virtualbox]] 
 +       
 +或者使用QT编译环境 Docker image: 
 +[[ftp://drv.nodka.com/arm_download/nodka_docker_qt_build_20230223.tar|QT编译环境Docker]] 
 +   ### load docker image  
 +   sudo docker load <nodka_docker_qt_build_20230223.tar 
 +    
 +   ### 运行docker image,注意 : /home/APP_PATH为QT应用程序所在目录 
 +   sudo docker run --rm --mount type=bind,source=/home/APP_PATH,target=/mnt/ -i -t 09a37c1b2fc3 /bin/bash  
 +   
 +   ###  编译QT 应用程序 
 +   cd  /mnt 
 +   qmake 
 +   make 
 +* 主机交叉编译环境配置参考步骤: 
 + 
 + 1. 安装交叉编译工具链: 
 +    apt install -y crossbuild-essential-arm64 
 +     
 + 2. 拷贝平板系统内的/usr & /lib 到主机 /home/nodka/qt5/qt_sysroot 目录下 
 + 
 + 3. 配置以下环境变量  
 + 
 +  QTSYSROOT="/home/nodka/qt5/qt_sysroot" 
 +  QTPATH=$QTSYSROOT/usr/local/qt5.12-arm 
 +     
 +  LD_LIBRARY_PATH=$QTPATH/lib:$LIBRARY_PATH 
 +  LIBRARY_PATH=$QTPATH/lib:$LIBRARY_PATH 
 +  C_INCLUDE_PATH=$QTPATH/include:$C_INCLUDE_PATH 
 +  PATH=$QTPATH/bin:$PATH 
 +     
 +  PKG_CONFIG_PATH=$QTPATH/lib/pkgconfig:$PKG_CONFIG_PATH 
 +     
 +  export LD_LIBRARY_PATH 
 +  export LIBRARY_PATH 
 +  export C_INCLUDE_PATH 
 +  export CPLUS_INCLUDE_PATH 
 +     
 +  export PKG_CONFIG_PATH 
 +  export PATH 
 + 
 + 
 + 4. 编译APP 
 +   
 +  qmake 
 +  make 
 + 
 +{{:template:pasted:20230204-012752.png}} 
 === QT Creator === === QT Creator ===
-{{page>:template:temp_Linux_qt_creator}}+1. 安装 
 + 
 +进入Qt官方下载页面,选择一个版本下载 qt-creator-opensource-linux-x86_64-x.x.x.run,下载完成之后,在终端执行 ./xxxx.run 运行安装,注意文件需要有执行权限。 
 + 
 +2.配置 
 + 
 +安装完成后,启动 Qt Creator,打开菜单 Tools -> Option ,找到Kits。 
 + 
 +  *配置 Qt Versions 
 +   
 +点击右侧 add 按钮添加,选择 Qt 环境安装位置中的 qmake 即可 
 +   
 +qmake: 
 + 
 +  /usr/local/qt5.12-arm/bin/qmake 
 +   
 +{{:arm:rk3399:linux:linux_qt-1.png?600|}} 
 + 
 +  *配置 Compilers 
 + 
 +点击右侧 add 按钮添加 gcc 和 g++ 交叉编译器的位置 
 + 
 +如果主机安装了 crossbuild-essential-arm64,则编译器就在 /usr/bin/ 下 
 + 
 +如果使用了第三方的交叉编译器,找到安装位置并添加即可 
 + 
 +如果目标平台是 Buildroot ,则需要使用 Buildroot Qt 环境包中的编译器 
 + 
 +g++:/usr/bin/aarch64-linux-gnu-g++ 
 + 
 +{{:arm:rk3399:linux:linux_qt-3.png?600|}} 
 + 
 +gcc:/usr/bin/aarch64-linux-gnu-gcc 
 + 
 +{{:arm:rk3399:linux:linux_qt2-2.png?600|}} 
 + 
 +为方便调试,配置 Debeggers 和 Devices 用于在线调试: 
 + 
 +  *配置 Debuggers 
 + 
 +点击右侧 add 按钮添加 gbd-multiarch: apt install -y gdb-multiarch 
 + 
 +检查目标机上是否存在 /usr/bin/gdbserver, 没有的话需要安装:apt install -y gdbserver,没有的话需要安装:apt install -y gdbserver (Buildroot 自带,无需安装) 
 + 
 +回到主机的 Qt Creator,点击右侧 add 按钮添加 gdb 
 + 
 +选择主机中的 gdb-multiarch : /usr/bin/gdb-multierch 
 + 
 +{{:arm:rk3399:linux:linux_qt-4.png?600|}} 
 + 
 +  *配置 Devices 
 + 
 +设置好设备的 IP 、用户名(root)。为了方便调试,可以在设备上设置静态 IP。 
 + 
 +{{:arm:rk3399:linux:linux_qt-5.png?600|}} 
 + 
 +  *配置Kits 
 + 
 +将前面设置的配置项添加到 Kits。 
 + 
 +如果目标平台是 Ubuntu 系统,这一步也需要添加 sysroot 的路径 
 + 
 +{{:arm:rk3399:linux:linux_qt-6.png?600|}} 
 === 高清硬解码 === === 高清硬解码 ===
 {{page>:template:temp_Linux_dec}} {{page>:template:temp_Linux_dec}}
 === Docker === === Docker ===
-{{page>:template:temp_Linux_docker}}+Docker English-Community 支持以下的 Ubuntu 版本: 
 +  *Xenial 16.04(LTS) 
 +  *Bionic 18.04(LTS) 
 +  *Cosmic 18.04 
 +  *Disco 19.04 
 +  *其他更新的版本... 
 + 
 +安装命令如下: 
 + 
 +  curl -fsSL https://get.docker.com | bash -s docker --miror Aliyun 
 +   
 +也可以使用国内 daocloud 一键安装命令: 
 + 
 +  curl -sSL https://get.daocloud.io/docker | sh 
 +   
 +测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功: 
 + 
 +  sudo docker run hello-world 
 +   
 +  Unable to find image 'hello-world:latest' locally 
 +  latest: Pulling from library/hello-world 
 +  1b930d010525: Pull complete                                                                                                                                   
 +  Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f 
 +  Status: Downloaded newer image for hello-world:latest 
 +   
 +   
 +  Hello from Docker! 
 +  This message shows that your installation appears to be working correctly. 
 +   
 +   
 +  To generate this message, Docker took the following steps: 
 +   1. The Docker client contacted the Docker daemon. 
 +   2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 
 +      (amd64) 
 +   3. The Docker daemon created a new container from that image which runs the 
 +      executable that produces the output you are currently reading. 
 +   4. The Docker daemon streamed that output to the Docker client, which sent it 
 +      to your terminal. 
 +   
 +   
 +  To try something more ambitious, you can run an Ubuntu container with: 
 +   $ docker run -it ubuntu bash 
 +   
 +   
 +  Share images, automate workflows, and more with a free Docker ID: 
 +   https://hub.docker.com/ 
 +   
 +   
 +  For more examples and ideas, visit: 
 +   https://docs.docker.com/get-started/
  
 ===OpenCL=== ===OpenCL===
 +
   * 系统已经支持OpenCL,输入命令clinfo即可查看支持详情:   * 系统已经支持OpenCL,输入命令clinfo即可查看支持详情:
  
行 744: 行 972:
  
 {{:arm:rk3399:linux:linux_ota.png?600|}} {{:arm:rk3399:linux:linux_ota.png?600|}}
 +
  
  
打印/导出