TA的每日心情 | 奋斗 2023-7-6 08:48 |
---|
签到天数: 169 天 连续签到: 1 天 [LV.7]常住居民III
|
上一篇将引脚配置完成了,最终是要生成程序的。
这里就要用到菜单栏的“Generate”了。
选择代码存放的路径。
点击“确定”后,打开路径文件夹,可以看到生成的文件了。
有如下的4个文件,一个C文件,一个H头文件,一个设备树的txt文件,一个配置csv文件。
打开C文件代码如下:
#include "types.h"#include "pinmux.h"#include "am335x_pinmux.h"/** Peripheral Pin Configurations */#define BUILDCFG_MOD_UART#if defined(BUILDCFG_MOD_UART)static pinmuxPerCfg_t gUart1PinCfg[] = { { /* My UART 1 -> uart1_rxd -> D16 */ PIN_UART1_RXD, 0, \ ( \ PIN_MODE(0) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_txd -> D15 */ PIN_UART1_TXD, 0, \ ( \ PIN_MODE(0) | \ ((PIN_PULL_UD_EN) & (~PIN_PULL_TYPE_SEL & ~PIN_RX_ACTIVE)) \ ) \ }, { /* My UART 1 -> uart1_ctsn -> D18 */ PIN_UART1_CTSN, 0, \ ( \ PIN_MODE(0) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_rtsn -> D17 */ PIN_UART1_RTSN, 0, \ ( \ PIN_MODE(0) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_dcdn -> K18 */ PIN_GMII1_TXCLK, 0, \ ( \ PIN_MODE(5) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_dsrn -> L18 */ PIN_GMII1_RXCLK, 0, \ ( \ PIN_MODE(5) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_dtrn -> L17 */ PIN_GMII1_RXD3, 0, \ ( \ PIN_MODE(5) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, { /* My UART 1 -> uart1_rin -> L16 */ PIN_GMII1_RXD2, 0, \ ( \ PIN_MODE(5) | \ ((PIN_PULL_UD_EN | PIN_RX_ACTIVE) & (~PIN_PULL_TYPE_SEL)) \ ) \ }, {PINMUX_INVALID_PIN}};static pinmuxModuleCfg_t gUartPinCfg[] = { {1, TRUE, gUart1PinCfg}, {CHIPDB_INVALID_INSTANCE_NUM}};#endif /* if defined(BUILDCFG_MOD_UART) *//** EVM pin configurations for EVM */pinmuxBoardCfg_t gGpevmPinmuxData[] ={#if defined(BUILDCFG_MOD_UART) {CHIPDB_MOD_ID_UART, gUartPinCfg},#endif /* if defined(BUILDCFG_MOD_UART) */ {CHIPDB_MOD_ID_INVALID}};如下是设备树文件的代码,这里可以在检查一下看一下Pin的方向是不是对的。
my_uart_1_pins_default: my_uart_1_pins_default { pinctrl-single,pins = < 0x180 ( PIN_INPUT | MUX_MODE0 ) /* (D16) uart1_rxd.uart1_rxd */ 0x184 ( PIN_OUTPUT | MUX_MODE0 ) /* (D15) uart1_txd.uart1_txd */ 0x178 ( PIN_INPUT | MUX_MODE0 ) /* (D18) uart1_ctsn.uart1_ctsn */ 0x17c ( PIN_INPUT | MUX_MODE0 ) /* (D17) uart1_rtsn.uart1_rtsn */ 0x12c ( PIN_INPUT | MUX_MODE5 ) /* (K18) gmii1_txclk.uart1_dcdn */ 0x130 ( PIN_INPUT | MUX_MODE5 ) /* (L18) gmii1_rxclk.uart1_dsrn */ 0x134 ( PIN_INPUT | MUX_MODE5 ) /* (L17) gmii1_rxd3.uart1_dtrn */ 0x138 ( PIN_INPUT | MUX_MODE5 ) /* (L16) gmii1_rxd2.uart1_rin */ >;};/* Optional sleep pin settings. Must manually enter values in the below skeleton. */my_uart_1_pins_sleep: my_uart_1_pins_sleep { pinctrl-single,pins = < 0x180 ( ) /* (D16) uart1_rxd.uart1_rxd */ 0x184 ( ) /* (D15) uart1_txd.uart1_txd */ 0x178 ( ) /* (D18) uart1_ctsn.uart1_ctsn */ 0x17c ( ) /* (D17) uart1_rtsn.uart1_rtsn */ 0x12c ( ) /* (K18) gmii1_txclk.uart1_dcdn */ 0x130 ( ) /* (L18) gmii1_rxclk.uart1_dsrn */ 0x134 ( ) /* (L17) gmii1_rxd3.uart1_dtrn */ 0x138 ( ) /* (L16) gmii1_rxd2.uart1_rin */ >;};对于C文件与H文件,添加到内核的/arch/arm/中的对应目录中。
对于设备树的代码添加到/arch/arm/boot/dts中对应的dts或dtsi文件中。
重新编译内核与dtb文件,更新到开发板后,重启即可。 |
|