sdk获取和内核编译,参考上一篇博文:rk3588内核裁剪
一、相关文件
文件1:
rk3588_repo_sdk_v1.0.2a/kernel/arch/arm64/boot/dts/rockchip/rk3588-firefly-itx-3588j.dtsi
此文件是针对firefly的板级设备树文件。
文件2:
rk3588_repo_sdk_v1.0.2a/kernel/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi
此文件是关于io复用的设备树文件。
文件3:
rk3588_repo_sdk_v1.0.2a/kernel/include/dt-bindings/pinctrl/rockchip.h
此文件是所有具有复用功能的gpio,例如:#define RK_PA4 4
代表的是GPIO_PA_4即A组的GPIO4。
二、设备树文件修改
官方的内核和设备树,默认打开了串口0、串口1、串口6;
定义位于文件rk3588-firefly-itx-3588j.dtsi的170行
开发板启动以后,我们可以在/dev目录下看到的ttyS0和ttyS1就是这两个串口;
另外,这个串口名字,是根据枚举顺序定义的,如果想要更改默认的串口名字,例如想让ttyS0对应到设备树里面的uart1,ttyS1对应到设备树里面的uart0,我们可以自己定义命名规则:
cd /etc/udev/rules.d
touch 90-rename-serial-ports.rule
vim 90-rename-serial-ports.rule
添加如下内容:
ACTION=="add" KERNEL=="ttyS2" NAME="ttyS1"
即可完成自定义的命名。
如果我们自己的底板用到了串口3,那么此时就需要我们自己将串口3的声明加入到此设备树文件中(原开发板的串口3是用复用做音频的IIC)。
首先,定位到文件rk3588s-pinctrl.dtsi中的uart3;此文件中,rk已经将所有的io复用全部写好了,有些板子例如im6ull并没有全部写出来,还需要我们自己根据芯片手册,将io的复用写出来。
可以看到,不止一个引脚可以复用为uart3,我们选择一个自己底板使用io口,然后将复用的lable(uart3m1_xfer)赋值到rk3588-firefly-itx-3588j.dtsi中的uart定义部分,如果我们使用的是PC0和PC1,那么我们的设备树文件就是下面这样:
完成如上操作,即可将uart3使能,其他的adc和iic也是类似的操作;
使用命令:文章来源:https://www.toymoban.com/news/detail-703929.html
./build.sh extboot
即可完成设备树的编译,如果内核没有更改,只是改了设备树,编译速度会很快,kernel目录下生成的boot.img就是生成的内核+设备树的镜像,烧录进设备在目录/dev下即可看到ttyS3即uart3.文章来源地址https://www.toymoban.com/news/detail-703929.html
到了这里,关于firefly开发板RK3588非默认外设使能(串口uart、IIC、adc等)设备树修改详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!