乐鑫技术交流
直播中

王银喜

7年用户 2317经验值
私信 关注
[问答]

esp-idf变量GPIO在哪里定义的?

你好,我最近在研究esp-idf 的源码,在LL layer 我找不到GPIO是在哪里定义的
Code: Select all
//gpio_struct.hextern gpio_dev_t GPIO;// gpio_ll.h #define GPIO_LL_GET_HW(num) (((num) == 0) ? (&GPIO) : NULL)

                                    

回帖(1)

李斌

2024-6-11 16:46:27
你好!在ESP-IDF中,GPIO的定义和使用主要分布在以下几个文件中:

1. `gpio_struct.h`:这个文件定义了GPIO的硬件抽象层(HAL)结构体,包括GPIO的寄存器地址、中断等信息。你提到的`extern gpio_dev_t GPIO;`就是在这个文件中定义的,它声明了一个全局的GPIO设备结构体实例。

2. `gpio_ll.h`:这个文件包含了低级(low-level)的GPIO操作函数,例如设置GPIO模式、读写GPIO等。你提到的`#define GPIO_LL_GET_HW(num) (((num) == 0) ? (&GPIO) : NULL)`是一个宏定义,用于根据GPIO编号获取对应的GPIO硬件结构体实例。

3. `driver/gpio.c` 和 `driver/gpio.h`:这两个文件包含了GPIO的驱动实现,包括初始化、设置模式、读写等操作。这些函数是基于硬件抽象层(HAL)和低级操作(LL)实现的。

4. `esp32/rom/gpio.v`:这是ESP32的寄存器定义文件,包含了GPIO寄存器的地址和位字段定义。虽然这个文件不是C语言编写的,但它为其他C语言文件提供了寄存器的基础信息。

5. `esp32/include/esp32/rom/gpio.h`:这个文件包含了ESP32的GPIO寄存器操作宏定义,用于直接操作寄存器。

总结一下,GPIO的定义和使用主要分布在`gpio_struct.h`、`gpio_ll.h`、`driver/gpio.c`和`driver/gpio.h`等文件中。你可以根据这些文件了解GPIO在ESP-IDF中的实现和使用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分