IMX系列是通过修改设备树的IOMUX来配置GPIO复用。 LS系列GPIO复用是通过 RCW(复位配置字)来配置的, LS1046的 RCW是512 bits。本节主要参考 LS1046ARM 4.4.6.1 RCW Field Definitions 章节 和 3.4.1 UART, GPIO, FTM, and LPUART signal multiplexing 章节。来分析一下UART的复用。
- 通过下图得知UART_BASE[366:368]的配置为7
- 启动开发板,可以在串口log 看到 RCW的值如下。 上面我们已知RCW共512字节,所以每个字母位是4个bit,每个WORD是32bit. 每一行是4个WORD,共128bit. 4行总共 512bit(从0到511位)。而 UART_BASE的字节是 366到368. 我们可以定位到第三行第4个WORD, 中的 数字 38(从364 位到371 位)。 数字38 的二进制是00111000 分别对应364位到 371位。所以 UART_BASE[366:368]的二进制是 111 也就是7 . 刚好对应上诉RCW文件中的配置。