硬件资源分布
通过对资源的梳理,可以发现,不改硬件的情况下,启明6M5上有不少串口可以通过不同方式进行串口验证,其中,可以通过can总线接口验证的有UART7(P401、P402),可以通过TF卡扩展板引出来的有UART0(P411、P410)和UART4(P205、P206),可以用485接口测试的有UART5(P501、P502)和UART7(P613,P614),可以通过232接口验证的有UART8(PA00、P607),可以直接验证的口有UART4(P512、P511)和JTAG调试串口UART2(P112和P113),而最多的是仅仅需要简单跳线就可以验证的口,这些口是UART2(P301、P302),UART3(P408、P409),UART4(P900,P315),UART5(P805、P513),UART6(P505、P506),UART8(P105、P104),UART9(P203、P202),UART9(P601、P602)。
由于手头上并无485和232接口板,而且工作这么多年,也没用过can总线,完全不知道can总线数据结构,而直接引出的串口已默认配好,JTAG串口在我之前适配RRH62000驱动时也适配过,因此剩下的就只有需要跳线验证的那几组串口了。因此本次适配串口就以需要跳线的串口来适配。
另外,如果只看串口,其实有更好的方法,由于J35是两个跳冒接出的排针,因此可以将此跳冒拿开,把待测试串口接到此排针上,之后再把软件的MSH配置到待测试的串口上,若能够收到rtt系统消息,且能发送msh命令查看内容,便代表串口配置成功。
软件修改
开启需要测试的串口
添加uart的Stack
除了UART4(默认的调试串口就是UART4,更换其他UART4功能的口,本质上就是把现有口的UART功能挪到新口上使用),其他UART都需要添加Stack,添加方法都一样。
将新生成的Stack改为所需功能
下面例子是改成uart2的,改成其他的也是一样的操作。
注册串口回调
由于drv_usart_v2.c里面写的中断回调函数是 user_uartX_callback,因此生成配置里面对应中断的回调也得按照此规则编写,否则会出现编译报错或者编译能通过,但无法响应中断的问题。
选择对应串口
这些操作做完之后,点击Generate Project Content便可生成带UART2的新工程
将MSH对应串口改为新开的串口
开启uart2
在此界面,会发现目前仅仅配置了UART2和UART4,其他UART则需要更改KConfig文件,以添加UART0配置为例,修改方法如下:
将MSH所对应的串口改为uart2
生成新工程
在emu界面中输入 scons --target=mdk5并回车,此时会生成新配置的工程。
硬件跳线
硬件按照下表接线
验证结果
编译代码后将代码下载至开发板中,运行结果如下:
\ | / - RT - Thread Operating System / | \ 5.2.0 build Dec 8 2024 22:00:19 2006 - 2024 Copyright by RT-Thread team Hello RT-Thread! msh > msh > msh >lis list msh >list de device msh >list device device type ref count -------- -------------------- ---------- uart4 Character Device 0 uart2 Character Device 2 pin Pin Device 0 msh >
总结
至此,我们以UART2(P301、P302)为例,适配了UART V2版驱动,如果需要适配其他串口,也可以参考此方法进行适配。