乐鑫技术交流
直播中

李中宏

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

ESP8266_RTOS_SDK编译错误的原因?

我刚刚下载了 RTOS sdk 并按照以下步骤操作:
https://github.com/espressif/esp8266_rtos_sdk

我可以在examples文件夹中编译应用程序。但是我需要使用 gpio 功能,所以想生成驱动程序库。
我遵循了方法 1,Readme.md 存在于 driver_lib 中。但它会导致错误。

请帮忙。


esp8266@esp8266-VirtualBox:~/ESP8266_RTOS_SDK/driver_lib$ ./make_lib.sh
echo 'make_lib.sh 版本 20160307'
make_lib.sh版本20160307
回声 ''

+ cd
使清洁
make: *** No rule to make target `clean'.  Stop.
make COMPILE=gcc
make: *** No targets specified and no makefile found.  Stop.
cp .output/eagle/debug/lib/lib.a .。/../lib/lib.a
cp: cannot stat '.output/eagle/debug/lib/lib.a': 没有这样的文件或目录
xtensa-lx106-elf-strip --strip-不需要../../lib/lib.a
Xtensa-LX106-ELF-STRIP:'../../lib/lib.a': 没有这样的文件
光盘 ..
esp8266@esp8266-VirtualBox:~/ESP8266_RTOS_SDK/driver_lib$ ./make_lib.sh 驱动程序
echo 'make_lib.sh 版本 20160307'
make_lib.sh版本20160307
回声 ''

CD驱动程序
使清洁
rm -f -r .output/eagle/debug
make COMPILE=gcc
依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json uart.c
依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json spi_interface.c
依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json i2c_master.c
依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json hw_timer.c
依赖: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json gpio.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf  -DICACHE_FLASH   -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json  -o .output/eagle/debug/obj/gpio.o -c gpio.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf  -DICACHE_FLASH   -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/ESP8266_RTOS_SDK/include/json  -o .output/eagle/debug/obj/hw_timer.o -c hw_timer.c
xtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf  -DICACHE_FLASH   -I include -I ../include -I /home/esp8266/ESP8266_RTOS_SDK/include -I /home/esp8266/ESP8266_RTOS_SDK/extra_include -I /home/esp8266/ESP8266_RTOS_SDK/driver_lib/include -I /home/esp8266/ESP8266_RTOS_SDK/include/espressif -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv4 -I /home/esp8266/ESP8266_RTOS_SDK/include/lwip/ipv6 -I /home/esp8266/ESP8266_RTOS_SDK/include/nopoll -I /home/esp8266/ESP8266_RTOS_SDK/include/spiffs -I /home/esp8266/ESP8266_RTOS_SDK/include/ssl -I /home/esp8266/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:错误:“BIT0”未声明(在此函数中首次使用)
#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,
                 from i2c_master.c:15:
i2c_master.c:在函数“i2c_master_gpio_init”中:
/home/esp8266/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:错误:“GPIO_PIN0_ADDRESS”未声明(在此函数中首次使用)
#define GPIO_PIN_ADDR(i)        (GPIO_PIN0_ADDRESS + i*4)
                                  ^
i2c_master.c:114:20:注意:在宏“GPIO_PIN_ADDR”的扩展中
     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)); //open drain;
                    ^
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)); //open drain;
                                                                                                                                                              ^
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));
                    ^
make: *** [.output/eagle/debug/obj/i2c_master.o] Error 1
cp .output/eagle/debug/lib/libdriver.a ../../lib/libdriver.a
cp: cannot stat '.output/eagle/debug/lib/libdriver.a': 没有这样的文件或目录
xtensa-lx106-elf-strip --strip-不需要../../lib/libdriver.a
光盘 ..
esp8266@esp8266-virtualbox:~/esp8266_rtos_sdk/driver_lib$


                 

回帖(1)

wufan931111

2024-7-12 17:53:24
根据您提供的错误信息,这个问题可能是由于以下几个原因导致的:

1. **makefile文件缺失或错误**:`make: *** No rule to make target 'clean'. Stop.` 这个错误表明make工具在执行时找不到名为`clean`的目标。这通常是因为makefile文件中没有定义`clean`目标或者makefile文件不存在。请检查driver_lib目录下是否存在Makefile文件,并确保其内容正确。

2. **权限问题**:如果您没有足够的权限执行make_lib.sh脚本,可能会导致错误。请确保您具有执行该脚本的权限。您可以使用`chmod`命令来更改权限,例如:`chmod +x make_lib.sh`。

3. **环境问题**:确保您的开发环境已正确设置,包括安装了必要的工具和库。例如,确保您已安装了make工具和编译器。

为了解决这个问题,您可以尝试以下步骤:

1. 检查driver_lib目录下是否存在Makefile文件。如果不存在,请创建一个或从其他项目中复制一个。

2. 确保Makefile文件中包含`clean`目标。例如:

```
clean:
        rm -f *.o *.a
```

3. 确保您具有执行make_lib.sh脚本的权限。如果需要,使用`chmod +x make_lib.sh`命令更改权限。

4. 确保您的开发环境已正确设置,包括安装了必要的工具和库。

5. 重新运行`./make_lib.sh`脚本,看看问题是否得到解决。

如果问题仍然存在,请提供更多详细信息,以便我们更好地帮助您解决问题。
举报

更多回帖

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