ESP8266 NONOS SDK2.0 自定义库编译

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/douzhao1982/article/details/77591480

编译环境 :WIN7 64位+Eclipse IDE from AITHINKER-ESP8266-SDK
SDK版本: ESP8266 NONOS SDK V2.1.0 20170505

编译过程参考了:http://blog.csdn.net/qq_15647227/article/details/51593554  在此表示感谢

SDK的下载和IDE环境的安装这里就不多说了,参考原教程即可。这里重点说明一下对SDK的根目录需要做哪些改动:

  1. 从example目录下面复制你想使用的范例到SDK根目录下。
  2. 将该文件夹改名为app(可以不是这个名称,但是为了后续描述需要,这里统称为app文件夹)
  3. 将SDK根目录下driver_lib/include文件夹复制到app文件夹内,覆盖原文件
  4. 将SDK根目录下driver_lib/driver文件夹复制到app文件夹内,覆盖原文件
  5. 可能由于编译器升级的缘故,部分代码需要做下面的修改:
    • app\driver\hw_timer.c: 
      • 第117行  ETS_FRC_TIMER1_INTR_ATTACH(hw_timer_isr_cb, NULL); 修改为:ETS_FRC_TIMER1_INTR_ATTACH((ets_isr_t)hw_timer_isr_cb, NULL);
    • app\driver\key.c:
      • 第71行 ETS_GPIO_INTR_ATTACH(key_intr_handler, keys); 修改为 ETS_GPIO_INTR_ATTACH((ets_isr_t)key_intr_handler, keys);
  6. 修改app/Makefile,在第25行SUBDIRS =   \    下面一行插入   driver    \,如下:
    • 修改前
    • SUBDIRS=    \
      	user    \
      	mqtt   \
      	modules  
    • 修改后
    • SUBDIRS=    \
      	driver \
      	user    \
      	mqtt   \
      	modules  
  7. 修改app/Makefile,在第52行COMPONENTS_eagle.app.v6 = \   下面一行插入 driver/libdriver.a\,如下:
    • 修改前
    • COMPONENTS_eagle.app.v6 = \
      	user/libuser.a  \
      	mqtt/libmqtt.a  \
      	modules/libmodules.a
    • 修改后
    • COMPONENTS_eagle.app.v6 = \
      	driver/libdriver.a	\
      	user/libuser.a  \
      	mqtt/libmqtt.a  \
      	modules/libmodules.a
  8. 修改app/Makefile, 删除  -ldriver \   行
  9. 修改app/Makefile, 在INCLUDES := 行最后边增加  -I $(PDIR)include/driver
  10. 将SDK根目录中的include文件夹 复制到app文件夹内,跳过相同的文件
  11. 删除SDK根目录下的driver_lib和include文件夹
  12. 完成之后的目录应当如下图所示:

ps:个别环境下需要把app/driver/.output/eagle/libuser.a 文件手工复制到SDK根目录下的lib文件夹中并覆盖同名文件。估计和其他环境变量配置有关系。
恭喜你,已经可以成功使用自定义驱动库libdriver.a进行编译了:


展开阅读全文

没有更多推荐了,返回首页