当我尝试在 rtos_sdk 的 driver_lib 目录中制作驱动程序时,我在编译 i2c_master 的步骤中得到了这个:
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-func
tions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno -builtin-printf -DICACHE_FLASH -I 包含 -I ../include -I /home/pi/ESP8266_RTOS_SDK/include -I /home/pi/ESP8266_RTOS_SDK/extra_include -I /home/pi/ESP8266_RTOS_SDK/driver_lib/include -I /主页/pi/ESP8266_RTOS_SDK/include/espressif -I /home/pi/ESP8266_RTOS_SDK/include/lwip -I /home/pi/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/pi/ESP8266_RTOS_SDK/include/lwip/ipv6 -我 /home/pi/ESP8266_RTOS_SDK/include/nopoll -I /home/pi/ESP8266_RTOS_SDK/include/spiffs -I /home/pi/ESP8266_RTOS_SDK/include/ssl -I /home/pi/ESP8266_RTOS_SDK/include/json -o 。 output/eagle/debug/obj/i2c_master.o -c i2c_master.c
在 i2c_master.c:13:0 包含的文件中:
i2c_master.c: 在函数 'i2c_master_getDC':
../include/gpio.h:193:66: error: 'BIT0' undeclared (first use in this function)
#define GPIO_INPUT_GET(gpio_no) ((gpio_input_get()>>gpio_no )&BIT0)
^
i2c_master.c:60:15: 注意:在宏“GPIO_INPUT_GET”的扩展中
sda_out = GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO));
^ ../include/gpio.h:193:66:注意:每个未声明的标识符只针对它出现在#define GPIO_INPUT_GET(gpio_no) ((gpio_input_get()>>gpio_no)&BIT0)
中的每个函数报告一次 ^
i2c_master.c:60:15: 注意:在宏“GPIO_INPUT_GET”的扩展中
sda_out = GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO));
^
文件包含自 ../include/i2c_master.h:4:0,
来自 i2c_master.c:15:
i2c_master.c: 在函数 'i2c_master_gpio_init':
/home/pi/ESP8266_RTOS_SDK/include/espressif/esp8266/pin_mux_register. h:149:47: 错误:'BIT2' 未声明(首次在此函数中使用)
SET_PERI_REG_MASK(PIN_NAME, (((FUNC & BIT2) << 2) | (FUNC & 0x3)) << PERIPHS_IO_MUX_FUNC_S); \
^
i2c_master.c:111:5: 注意:在宏“PIN_FUNC_SELECT”的扩展中
PIN_FUNC_SELECT(I2C_MASTER_SDA_MUX, I2C_MASTER_SDA_FUNC);
^
在 i2c_master.c:13:0 包含的文件中:
../include/gpio.h:85:34: error: 'GPIO_PIN0_ADDRESS' undeclared (first use in this function)
#define GPIO_PIN_ADDR(i) (GPIO_PIN0_ADDRESS + i*4 )
^
i2c_master.c:114:20: 注意:在宏“GPIO_PIN_ADDR”的扩展中
_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //开漏;
^
i2c_master.c:114:158: 错误:'GPIO_PAD_DRIVER_ENABLE' 未声明(首次在此函数中使用)
GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO))) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //开漏;
^
i2c_master.c:115:20: 错误:'GPIO_ENABLE_ADDRESS' 未声明(首次在此函数中使用)
GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << I2C_MASTER_SDA_GPIO));
^
../../Makefile:333: ***шибка вып***лнения рецепта для цели «.output/eagle/debug/obj/i2c_master.o»
make: *** [.output/eagle/debug/obj/i2c_master.o] Ошибка 1个
+ cp .output/eagle/debug/lib/libdriver/.a ../../lib/libdriver/.a
cp: не удал***сь вып***лнить stat для «.output/eagle/debug/lib/libdriver/.a»:上一个
xtensa-lx106-elf-strip --strip-unneeded ../../lib/libdriver/.a
xtensa-lx106-elf-strip: '../../lib/libdriver/. a': 没有那个文件
+ cd ..