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

来源:互联网 发布:学java还是.net 编辑:程序博客网 时间:2024/06/05 10:44

这里不介绍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# lsbin        driver_lib  extra_include  ld   LICENSE   README.md    toolsdocuments  examples    include        lib  Makefile  third_party  VERSION

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

root@ubuntu:/mnt/hgfs/VMShare/ESP8266/ESP8266_RTOS_SDK-master# ls liblibairkiss.a  libespnow.a    libmain.a     libnet80211.a  libpwm.a          libwpa.alibcirom.a    libfreertos.a  libmbedtls.a  libnopoll.a    libsmartconfig.a  libwps.alibcrypto.a   libgcc.a       libmesh.a     libopenssl.a   libspiffs.alibdriver.a   libjson.a      libminic.a    libphy.a       libssc.alibespconn.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。

原创粉丝点击