GNU/Linux - MenuConfig of Kernel: CONFIG_GPIOLIB + CONFIG_GPIO_SYSFS

CONFIG_GPIOLIB

在 Linux 内核配置中,CONFIG_GPIOLIB 是一个启用 GPIO(通用输入/输出)库(gpiolib)支持的选项。该库为管理 GPIO 引脚提供了一个通用接口,允许驱动程序和用户空间应用程序以统一的方式与 GPIO 进行交互,而不受底层硬件架构的限制。

启用 CONFIG_GPIOLIB 后,可使用以下功能:

1. GPIO 操作: GPIO 库提供了用于设置 GPIO 引脚方向(输入或输出)、读写 GPIO 值以及控制其他 GPIO 相关功能的函数。

2. GPIO 事件处理: 当 GPIO 事件发生时,如输入值发生变化(如上升沿或下降沿),应用程序可以注册以接收通知。这通常用于按钮按下、传感器数据采集或中断处理等任务。

3. GPIO 输出和非输出: GPIO 引脚可动态导出和解导出到用户空间,允许用户空间应用程序访问和控制 GPIO 引脚,而无需直接访问内核。

4. GPIO 芯片抽象: GPIO 库抽象了 GPIO 控制器的特定硬件细节,允许驱动程序和应用程序以独立于平台的方式使用 GPIO 引脚。

在内核配置中启用 CONFIG_GPIOLIB,开发人员就可以利用内核提供的标准化易用接口,将 GPIO 引脚用于各种用途,包括控制硬件外设、连接传感器、实现用户界面等。

In the Linux kernel configuration, CONFIG_GPIOLIB is an option that enables support for the GPIO (General Purpose Input/Output) library (gpiolib). This library provides a generic interface for managing GPIO pins, allowing dri

[1072/1082] Building CXX object esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj FAILED: esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj C:\esp32\Espressif\tools\tools\xtensa-esp-elf\esp-14.2.0_20241119\xtensa-esp-elf\bin\xtensa-esp32s3-elf-g++.exe -DESP_PLATFORM -DIDF_VER=\"v5.5.1-dirty\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -ID:/ESP32/1/build/config -ID:/ESP32/1/components/OLED -IC:/esp32/v5.5.1/esp-idf/components/newlib/platform_include -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/include/freertos -IC:/esp32/v5.5.1/esp-idf/components/freertos/config/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos -IC:/esp32/v5.5.1/esp-idf/components/freertos/esp_additions/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include/soc -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/include/soc/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/dma/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/ldo/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/debug_probe/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/tuning_scheme_impl/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/power_supply/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/port/esp32s3/. -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/port/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/. -IC:/esp32/v5.5.1/esp-idf/components/esp_hw_support/mspi_timing_tuning/port/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/heap/include -IC:/esp32/v5.5.1/esp-idf/components/heap/tlsf -IC:/esp32/v5.5.1/esp-idf/components/log/include -IC:/esp32/v5.5.1/esp-idf/components/soc/include -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/register -IC:/esp32/v5.5.1/esp-idf/components/hal/platform_port/include -IC:/esp32/v5.5.1/esp-idf/components/hal/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/hal/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/include/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3 -IC:/esp32/v5.5.1/esp-idf/components/esp_common/include -IC:/esp32/v5.5.1/esp-idf/components/esp_system/include -IC:/esp32/v5.5.1/esp-idf/components/esp_system/port/soc -IC:/esp32/v5.5.1/esp-idf/components/esp_system/port/include/private -IC:/esp32/v5.5.1/esp-idf/components/xtensa/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/xtensa/include -IC:/esp32/v5.5.1/esp-idf/components/xtensa/deprecated_include -IC:/esp32/v5.5.1/esp-idf/components/lwip/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/include/apps -IC:/esp32/v5.5.1/esp-idf/components/lwip/include/apps/sntp -IC:/esp32/v5.5.1/esp-idf/components/lwip/lwip/src/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/freertos/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include/arch -IC:/esp32/v5.5.1/esp-idf/components/lwip/port/esp32xx/include/sys -IC:/esp32/v5.5.1/esp-idf/components/driver/deprecated -IC:/esp32/v5.5.1/esp-idf/components/driver/i2c/include -IC:/esp32/v5.5.1/esp-idf/components/driver/touch_sensor/include -IC:/esp32/v5.5.1/esp-idf/components/driver/twai/include -IC:/esp32/v5.5.1/esp-idf/components/driver/touch_sensor/esp32s3/include -IC:/esp32/v5.5.1/esp-idf/components/esp_pm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_ringbuf/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_gpio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_pcnt/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_gptimer/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_spi/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_mcpwm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_ana_cmpr/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_i2s/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdmmc/include -IC:/esp32/v5.5.1/esp-idf/components/sdmmc/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdspi/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_dac/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_rmt/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_tsens/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_sdm/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_i2c/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_uart/include -IC:/esp32/v5.5.1/esp-idf/components/vfs/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_ledc/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_parlio/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_usb_serial_jtag/include -IC:/esp32/v5.5.1/esp-idf/components/esp_driver_twai/include -mlongcalls -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -O0 -fmacro-prefix-map=D:/ESP32/1=. -fmacro-prefix-map=C:/esp32/v5.5.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu++2b -fno-exceptions -fno-rtti -fuse-cxa-atexit -MD -MT esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj -MF esp-idf\OLED\CMakeFiles\__idf_OLED.dir\OLED.C.obj.d -o esp-idf/OLED/CMakeFiles/__idf_OLED.dir/OLED.C.obj -c D:/ESP32/1/components/OLED/OLED.C In file included from D:/ESP32/1/components/OLED/OLED.C:20: D:/ESP32/1/components/OLED/OLED.C: In function 'void I2C_Init()': D:/ESP32/1/components/OLED/OLED.h:26:13: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive] 26 | #define SDA 5 | ^ | | | int D:/ESP32/1/components/OLED/OLED.C:98:31: note: in expansion of macro 'SDA' 98 | .sda_io_num = SDA, //鎸囧畾SDA寮曡剼鍙? | ^~~ D:/ESP32/1/components/OLED/OLED.h:25:13: error: invalid conversion from 'int' to 'gpio_num_t' [-fpermissive] 25 | #define SCL 4 | ^ | | | int D:/ESP32/1/components/OLED/OLED.C:99:31: note: in expansion of macro 'SCL' 99 | .scl_io_num = SCL, //鎸囧畾SCL寮曡剼鍙? | ^~~ D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member 'i2c_master_bus_config_t::intr_priority' -Wmissing-field-initializers] 103 | }; | ^ D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member 'i2c_master_bus_config_t::trans_queue_depth' [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:103:5: warning: missing initializer for member 'i2c_master_bus_config_t::<unnamed struct>::allow_pd' [-Wmissing-field-initializers] D:/ESP32/1/components/OLED/OLED.C:115:5: warning: missing initializer for member 'i2c_device_config_t::scl_wait_us' [-Wmissing-field-initializers] [1073/1082] Performing configure step for 'bootloader' -- Found Git: C:/esp32/Espressif/tools/tools/idf-git/2.39.2/cmd/git.exe (found version "2.39.2.windows.1") -- Minimal build - OFF -- The C compiler identification is GNU 14.2.0 -- The CXX compiler identification is GNU 14.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-gcc.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/esp32/Espressif/tools/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Building ESP-IDF components for target esp32s3 -- Project sdkconfig file D:/ESP32/1/sdkconfig -- Compiler supported targets: xtensa-esp-elf -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/soc/esp32s3/ld/esp32s3.peripherals.ld -- Bootloader project name: "bootloader" version: 1 -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.api.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.bt_funcs.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libgcc.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.wdt.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.version.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.libc.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/esp_rom/esp32s3/ld/esp32s3.rom.newlib.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld -- Adding linker script C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main/ld/esp32s3/bootloader.rom.ld -- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_security esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa -- Component paths: C:/esp32/v5.5.1/esp-idf/components/bootloader C:/esp32/v5.5.1/esp-idf/components/bootloader_support C:/esp32/v5.5.1/esp-idf/components/efuse C:/esp32/v5.5.1/esp-idf/components/esp_app_format C:/esp32/v5.5.1/esp-idf/components/esp_bootloader_format C:/esp32/v5.5.1/esp-idf/components/esp_common C:/esp32/v5.5.1/esp-idf/components/esp_hw_support C:/esp32/v5.5.1/esp-idf/components/esp_rom C:/esp32/v5.5.1/esp-idf/components/esp_security C:/esp32/v5.5.1/esp-idf/components/esp_system C:/esp32/v5.5.1/esp-idf/components/esptool_py C:/esp32/v5.5.1/esp-idf/components/freertos C:/esp32/v5.5.1/esp-idf/components/hal C:/esp32/v5.5.1/esp-idf/components/log C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/main C:/esp32/v5.5.1/esp-idf/components/bootloader/subproject/components/micro-ecc C:/esp32/v5.5.1/esp-idf/components/newlib C:/esp32/v5.5.1/esp-idf/components/partition_table C:/esp32/v5.5.1/esp-idf/components/soc C:/esp32/v5.5.1/esp-idf/components/spi_flash C:/esp32/v5.5.1/esp-idf/components/xtensa -- Configuring done (21.2s) -- Generating done (0.3s) -- Build files have been written to: D:/ESP32/1/build/bootloader ninja: build stopped: subcommand failed.
最新发布
11-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值