工具/软件:
我们有一个 J721EXSOMEVM 板连接到大型载板。 我们还连接了 GESI 扩展板。 我们正在尝试使用 GESI 板上提供的一个已定义的 GPIO 来进行简单的 GPIO 测试。 我们无法看到任何 GPIO 输出。 我们在 MCU2_1 处理器上运行 FreeRTOS。 以下是我们所做的工作。
我们使用的 GPIO 是可从接头 J16-LHS 引脚 9 访问的 BoosterPack GPIO2(主 GPIO0 127)(GESI 扩展用户 guid spruit1b、表 4-7)。 我们将一个数字探头和一个模拟探头连接到该引脚、以查看是否可以将 GPIO 控制为输出。
J721E_pinmux_data.c — 将 GPIO 127 多路复用至 SOM 引脚/焊盘
static pinmuxPerCfg_t gGpio0PinCfg[] =
{
/* MySYSTEM1 -> GPIO0_0 -> AC18 */
{
PIN_EXTINTN, PIN_MODE(7) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyGPIO0 -> GPIO0_97 -> Y28 */
{
PIN_RGMII6_TX_CTL, PIN_MODE(7) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyGPIO0 -> GPIO0_98 -> V23 */
{
PIN_RGMII6_RX_CTL, PIN_MODE(7) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyGPIO0 -> GPIO0_117 -> W4 */
{
PIN_SPI1_CS1, PIN_MODE(7) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyGPIO0 -> GPIO0_127 -> AC4 */
{
PIN_UART1_CTSN, PIN_MODE(7) | \
((PIN_PULL_DISABLE ) & (~PIN_PULL_DIRECTION | ~PIN_INPUT_ENABLE))
},
{PINMUX_END}
};
// UART1_CTSN
#define BP_GPIO2_J16_PIN9 (127U)
#define GPIO_SPI_RCV_TASK (0U)
#define MAX_GPIOS_USED_IN_APP (1U)
GPIO_PinConfig gpioPinConfigs[] =
{
GPIO_DEVICE_CONFIG(GPIO_SPI_RCV_TASK, BP_GPIO2_J16_PIN9) |
GPIO_CFG_OUTPUT,
};
* GPIO Driver call back functions */
GPIO_CallbackFxn gpioCallbackFunctions[] =
{
NULL,
};
/* GPIO stuff */
uint32_t gpioBaseAddr[MAX_GPIOS_USED_IN_APP] =
{
CSL_GPIO0_BASE,
};
uint32_t gpioPinNums[MAX_GPIOS_USED_IN_APP] =
{
BP_GPIO2_J16_PIN9,
};
int main(void)
{
....
Board_pinmuxGetCfg(&boardPinmuxCfg);
boardPinmuxCfg.autoCfg = BOARD_PINMUX_AUTO;
boardPinmuxCfg.gesiExp = BOARD_PINMUX_GESI_ICSSG;
Board_pinmuxSetCfg(&boardPinmuxCfg);
boardConfig = BOARD_INIT_PINMUX_CONFIG |
BOARD_INIT_MODULE_CLOCK |
BOARD_INIT_UART_STDIO |
BOARD_INIT_MODULE_CLOCK_MAIN;
boardStatus = Board_init(boardConfig);
Board_initGPIO( );
GPIO_init( );
// Set GPIO
GPIO_write(GPIO_SPI_RCV_TASK, true);
我还查看了寄存器以确保它们看起来设置正确。 请参阅下面的、了解设置该位后的 GPIO 设置和控制寄存器。

设置位后的 GPIO 控制寄存器。
