• 【香橙派4B】6、测试串口


    目录

    引脚图

    下载 orangepi-build

    校验压缩包

    解压 orangepi-build.tar.gz

    同步源码

    编译内核

    更换linux-rk3399-legacy.config文件

    运行 build.sh

    选择 Kernel package

    选择开发板的型号(orangepi4)

    选择"< Exit >"

    关闭内核源码的更新功能

    更改内核源码

    禁用 spi1

    打开 uart4

    重装开发板内核

    上传新的内核

    卸载旧的 Linux 内核

    安装新的 Linux 内核

    重启开发板

    更换rk3399-orangepi-4.dtb文件

    修改测试程序

    编译测试程序

    运行测试程序

    引脚图

     

           OragnePi 4B 的 SPI 和 UART4 复用相同的引脚,在 dts 中默认打开了 40pin 中的 SPI1,关闭了 UART4 控制器,如果需要使用 UART4,首先需要在内核的 dts 中打开UART4 的配置并关闭 SPI1 的配置。

    下载 orangepi-build

            orangepi-build有几个G,不推荐从GitHub下载,推荐从百度云下载。

    链接:https://pan.baidu.com/s/1vWQmCmSYdH7iCDFyKpJtVw

    提取码:zero

    百度云盘的 orangepi-build 文件夹下有两个文件:

    1. orangepi-build.tar.gz 为 orangepi-build 源码的压缩包
    2. orangepi-build.tar.gz.md5sum 为 orangepi-build 源码的压缩包的 MD5 校验和文件

      下载完成后,将这两个文件拉进虚拟机或者Linux系统的PC机。

    注意:Linux的版本需为Ubuntu18

    校验压缩包

    md5sum -c orangepi-build.tar.gz.md5sum

    出现“成功”,说明源码没有问题。

     

    解压 orangepi-build.tar.gz

    1. test@test:~$ tar -zxf orangepi-build.tar.gz
    2. test@test:~$ cd orangepi-build/
    3. test@test:~/orangepi-build$ ls
    tar -zxf orangepi-build.tar.gz
    cd orangepi-build/
    ls

    同步源码

    确保源码为最新的

    1. //test@test:~/orangepi-build$ git pull
    2. git pull

    编译内核

    注意:须使用客服给的文件才能编译成功

     

    更换linux-rk3399-legacy.config文件

     

     更换为客服给的linux-rk3399-legacy.config文件

    运行 build.sh

    1. //test@test:~/orangepi-build$ sudo ./build.sh
    2. sudo ./build.sh

    选择 Kernel package

    选择开发板的型号(orangepi4)

    选择"< Exit >"

    关闭内核源码的更新功能

            orangepi-bulid 编译系统编译 linux 内核源码时首先会将 linux 内核源码和 github 服务器的 linux 内核源码进行同步,所以如果想修改 linux 内核的源码,首先需要关闭源码的更新功能(需要完整编译过一次 linux 内核源码后才能关闭这个功能,否则会提示找不到linux 内核的源码),否则所作的修改都会被还原。

    设置 userpatches/config-default.conf 中的 IGNORE_UPDATES 变量为“yes

    1. //test@test:~/orangepi-build$ vim userpatches/config-default.conf
    2. vim userpatches/config-default.conf

    更改内核源码

    1. test@test:~# cd orangepi-build
    2. test@test:~# vim kernel/orange-pi-4.4-rockchip64/arch/arm64/boot/dts/rockchip/rk3399-orangepi-common.dtsi
    cd orangepi-build
    vim kernel/orange-pi-4.4-rockchip64/arch/arm64/boot/dts/rockchip/rk3399-orangepi-common.dtsi

    禁用 spi1

    1. &spi1 {
    2. status = "okay"; //将 okay 改为 disabled

    打开 uart4

    1. &uart4 {
    2. status = "disabled"; //将 disabled 改为 okay

     再次编译内核,编译完成后的内核版本不一定会一样。

    重装开发板内核

    启动开发板,进入root模式

    上传新的内核

    1. test@test:~/orangepi-build$ cd output/debs
    2. test@test:~/orangepi-build/output/debs$ scp linux-image-legacy-rk3399_2.1.0_arm64.deb root@192.168.xx.xx:/root
    cd output/debs
    scp linux-image-legacy-rk3399_2.1.0_arm64.deb root@192.168.xx.xx:/root

    卸载旧的 Linux 内核

    1. //root@orangepi:~# apt purge -y linux-image-legacy-rk3399
    2. apt purge -y linux-image-legacy-rk3399

    安装新的 Linux 内核

    1. //root@orangepi:~# dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
    2. dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb

    重启开发板

    更换rk3399-orangepi-4.dtb文件

    仍然是需要使用客服给的文件

     

    1.  进入开发板的/boot/dtb/rockchip目录
    2. 更换rk3399-orangepi-4.dtb文件
    3. 重启开发板

    修改测试程序

    1. //root@orangepi4:~/wiringOP/examples# vim serialTest.c
    2. vim serialTest.c

    编译测试程序

    1. //root@orangepi4:~/wiringOP/examples# make serialTest
    2. make serialTest

    运行测试程序

    将19,21号引脚进行短接

    1. //root@orangepi4:~/wiringOP/examples# ./serialTest
    2. ./serialTest

    出现下面的效果,即启用串口成功

  • 相关阅读:
    # LoongArch 内存模型与栅障
    大厂面试 | 百度Java面试题分享
    【Java算法】滑动窗口 上
    RK3399系统移植 | 基于 ubuntu core 20.04 构建根文件系统
    cesium画的矩形不是方的?
    LINMP搭建wordpress-数据库不分离
    wpf中的Border和Background
    Revopoint的3D输出格式及转换工具
    【动态规划刷题 10】最大子数组和 III && 环形子数组的最大和
    Maven进阶-配置私服(Nexus 的使用)
  • 原文地址:https://blog.csdn.net/CETET/article/details/127132207