企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
内核设备树的路径在(arch/arm64/boot/dts/rockchip): ![](https://img.kancloud.cn/a8/7d/a87d387fcb8fb52b738ccfcfa8c5970e_832x66.png) ### 其中rk3308.dtsi和rk3308k.dtsi是通用配置树,rk3308-evb-xxx是针对某个 硬件型号的配置信息,如果我们需要自定义一个针对自己的硬件外设,可以根据这两个配置树进行参考修改。 ### 驱动起来后会先注册5个ttySx设备。但如果没有经过2.3.1使能的串口,虽然也有设备节点,但是是不能操作的。 ![](https://img.kancloud.cn/68/86/688655f3f8ce671e9587229b74b929d7_726x122.png =600x) ### 在rk3308.dtsi中,可以看到: ![](https://img.kancloud.cn/e8/e5/e8e51d8b378c7ce37c6ac10e5d13fd7c_486x518.png =400x) ### 驱动会根据aliase,来对应串口编号,如下: serial0最终会生成ttyS0,serial3会生成ttyS3设备。 ### 同样在该配置文件中可以找到如下定义: ![](https://img.kancloud.cn/10/08/1008c68de66af68cacad850e4a97b11f_832x218.png =600x) ### ``` rockchip,serial‐id = <2>;    /*设置串口id,想换不同的串口就改这个ID*/ rockchip,baudrate = <xxx>; /* 波特率,只能115200或者1500000 */ ``` 该节点驱动加载后会注册/dev/ttyFIQ0设备,需要注意的是rockchip,serial-id即便改了,注册的也是ttyFIQ0;接着我们在rk3308-evb-v10.dtsi中可以看到使能该节点: ![](https://img.kancloud.cn/52/b2/52b20956aa2c70fb5435e33adba33bb8_438x124.png =300x) ### 同样在rk3308-evb-v10.dtsi中可以看到: ![](https://img.kancloud.cn/0c/a2/0ca26554fae4cfe2918b30a3b175cc59_832x110.png =800x) ### 这里是使能了early printk功能,当kernel启动不了,但又没有什么提示消息时,可以打开early printk查看;这是因为在内核刚启动时,有些打印语句可能在串口还没有注册之前就调用了,那当然不能显示啦,early printk就是实现这个功能,提前注册好串口。 ### 其中0xff0c0000是uart2的物理基地址,不同的串口基地址不一样;地址可以在rk3308.dtsi中的设备节点查看到: ![](https://img.kancloud.cn/5a/c6/5ac6e19c4387cd81ef0a72777a9a2967_758x352.png =600x)