ESP8266基于Linux的SDK软件开发②软件环境搭建

这里不介绍Linux虚拟机的安装和使用方法,专注ESP8266的SDK的编译和使用。SDK和程序下载工具的官方链接:http://www.espressif.com/zh-hans/support/download/sdks-demos
我使用的是ESP8266 RTOS SDK V1.5.0,Flash下载工具是V3.4.9.2,其他版本的SDK和下载应该都工具大同小异。由于SDK是Linux下的,Flash下载工具是Windows下的,编译出来的bin文件在SDK路劲的bin文件夹中,为了下载方便将SDK放在虚拟机共享目录下进行编译。 SDK的目录结构体如下:

root@ubuntu:/mnt/hgfs/VMShare/ESP8266/ESP8266_RTOS_SDK-master# ls
bin        driver_lib  extra_include  ld   LICENSE   README.md    tools
documents  examples    include        lib  Makefile  third_party  VERSION

example文件夹里面存放的是示例代码,我们就是用这些示例代码为模板进行开发。软件中使用的所有库都是以静态链接库的形式提供的,库存放在lib文件夹中:

root@ubuntu:/mnt/hgfs/VMShare/ESP8266/ESP8266_RTOS_SDK-master# ls lib
libairkiss.a  libespnow.a    libmain.a     libnet80211.a  libpwm.a          libwpa.a
libcirom.a    libfreertos.a  libmbedtls.a  libnopoll.a    libsmartconfig.a  libwps.a
libcrypto.a   libgcc.a       libmesh.a     libopenssl.a   libspiffs.a
libdriver.a   libjson.a      libminic.a    libphy.a       libssc.a
libespconn.a  liblwip.a      libmirom.a    libpp.a        libssl.a

有些库的源码没有提供。开放源码的库饿的源码在third_party和driver_lib文件夹中,libdriver.a库的源码在driver_lib文件夹里面,主要是芯片外设的驱动程序:

gpio.c  hw_timer.c  i2c_master.c  Makefile  spi_interface.c  uart.c

其他的库文件的源码放在了third_party文件夹中包括lwip和 freertos的源码,在源码路径中单独编译可以生成相应的静态库文件。
使用库编程需要在编译的时候链接库文件,以example文件中的wifi_station_machine_demo工程为例,其Makefile中的LINKFLAGS_eagle.app.v6就链接了很多库,可以使用这些库中提供的函数,但是没有链接libdriver库,那我们就自己添加“-ldriver”上去:

LINKFLAGS_eagle.app.v6 = \
    -L$(SDK_PATH)/lib        \
    -Wl,--gc-sections   \
    -nostdlib   \
    -T$(LD_FILE)   \
    -Wl,--no-check-sections \
    -u call_user_start  \
    -Wl,-static                     \
    -Wl,--start-group                   \
    -lcirom \
    -lcrypto    \
    -lespconn   \
    -ldriver    \
    -lespnow    \
    -lfreertos  \
    -lgcc                   \
    -lhal                   \
    -ljson  \
    -llwip  \
    -lmain  \
    -lmesh  \
    -lmirom \
    -lnet80211  \
    -lnopoll    \
    -lphy   \
    -lpp    \
    -lpwm   \
    -lmbedtls               \
    -lopenssl               \
    -lsmartconfig   \
    -lspiffs    \
    -lwpa   \
    -lwps       \
    $(DEP_LIBS_eagle.app.v6)                   \
    -Wl,--end-group

添加了-ldriver之后才能使用libdriver中的函数。
官方提供了SDK中所有库函数的说明,文档下载官方链接:http://www.espressif.com/zh-hans/support/download/documents,或者在SDK路径下的documents文件夹中有SDK API Reference。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值