当前位置: 首页 > news >正文

【香橙派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

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

同步源码

确保源码为最新的

//test@test:~/orangepi-build$ git pull
git pull

编译内核

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

 

更换linux-rk3399-legacy.config文件

 

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

运行 build.sh

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

选择 Kernel package

选择开发板的型号(orangepi4)

选择"< Exit >"

关闭内核源码的更新功能

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

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

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

更改内核源码

test@test:~# cd orangepi-build
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

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

打开 uart4

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

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

重装开发板内核

启动开发板,进入root模式

上传新的内核

test@test:~/orangepi-build$ cd output/debs
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 内核

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

安装新的 Linux 内核

//root@orangepi:~# dpkg -i linux-image-legacy-rk3399_2.1.0_arm64.deb
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. 重启开发板

修改测试程序

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

编译测试程序

//root@orangepi4:~/wiringOP/examples# make serialTest
make serialTest

运行测试程序

将19,21号引脚进行短接

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

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

相关文章:

  • 【408】【数据结构】【图】
  • 【架构设计】如何实现3ms内从1000w级别的用户里面随机抽奖出100名用户
  • HTB-Chatterbox
  • 矩阵乘法的消去律
  • FL Studio最新20.9版本完整FL水果中文语言更新
  • JAVA集合(二)List接口详解
  • 矩阵的秩的性质
  • Redis在SpringBoot项目中使用
  • Android AIDL跨进程通信
  • Java大牛必会|分布式缓存实现方案之Spring Cache
  • KF、EKF、IEKF、UKF卡尔曼滤波器
  • Neo4j入门+深入
  • 21年icpc上海区域赛B题Strange Permutations (容斥+生成函数)
  • 【CSS】QQ邮箱布局,词典四列布局,行内布局
  • 滑动窗口问题
  • [译] React v16.8: 含有Hooks的版本
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • C++11: atomic 头文件
  • extjs4学习之配置
  • go语言学习初探(一)
  • Linux中的硬链接与软链接
  • node 版本过低
  • PHP的类修饰符与访问修饰符
  • React-redux的原理以及使用
  • SAP云平台里Global Account和Sub Account的关系
  • Spring Cloud中负载均衡器概览
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue2.x学习三:事件处理生命周期钩子
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 构建工具 - 收藏集 - 掘金
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 推荐一个React的管理后台框架
  • 微信小程序--------语音识别(前端自己也能玩)
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​2020 年大前端技术趋势解读
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #define用法
  • #pragma once
  • (+4)2.2UML建模图
  • (1)bark-ml
  • (C语言)二分查找 超详细
  • (HAL库版)freeRTOS移植STMF103
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)负载均衡,回话保持,cookie
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET 发展历程
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .Net组件程序设计之线程、并发管理(一)