ESP8266 RTOS SDK学习之Makefile分析(二)

写在前面: 

本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

上一篇:Makefile分析(一)https://blog.csdn.net/qq_42992084/article/details/102251221

在上一篇,我们已经大致了解到在官方 SDK的 Makefile的一些作用以及是怎么去一一对应运行的,然后这一篇则是学会自己去添加我们个人建立的文档,源文件以及头文件等,并且把它包含进去编译运行

新建文件夹目录下 Makefile的改写

首先,我们在 user文件下建立一个自己的 bsp文件夹(当然,你也可以用别的名字),再在里面建立一个 include文件夹和 driver文件夹,如下

添加完后你可能会问,它不是需要 Makefile才能让它执行起来吗?是的,所以我们在 user文件夹里面把它的 Makefile复制拷贝过来就好,方便快捷,不用自己编写,毕竟我们不是专业的,哈哈哈

复制过来,我们点进去修改一下,毕竟要对应好我们建立的文件夹,不然系统识别不出来,会报错,如图

这个位置就改框出来那里,修改成 lib + 文件夹名字(bsp) + .a

再下拉至底部,看到下图了吗,跟你的文件可是有点出入的,发现了吗?

是的,在方框那里,对比原来我们复制过来的内容,在 $(PDIR) 后面加上了 “ ../ ” ,这是为什么?如果你不添加上去,你后面编译一下会出错,先解释一下 “ .. ” 表示上一级的意思,我们建立的文件夹是在 user文件夹下,所以相对的得声名我这个 Makefile在上一级的基础上进行寻找

好了,上面的是我们添加的文件夹里面的 Makefile,这个已经修改好了,但是上一章不是说了 Makefile启动主要是三个嘛,同样的,你在一个地方添加了东西,那你就得在这几个主 Makefile一一添加,因为它们是彼此关联的

app目录下 Makefile的编写

然后,我们进入到 app目录下的 Makefile,找到所需添加的位置,第一个地方大概在 这个位置(看行号,就在附近),如图

看之前的注释就知道, driver是我们在 bsp里面用来存放 .c源文件的,所以我们把它添加进去,在原基础上添加,如上图框框那里,用 “ \ ” 续航符追加

添加完成后,往下拉,第二个地方在这里

同样的,跟上面一样,追加我们添加的 .a文件路径,记得要跟上面我们后面改的 .a文件名一样,路径也要对应好, “ / ” 表示层级

最后,第三个地方下拉到尾部,同样的添加我们存放 .h头文件的文件夹路径,以便系统查找

主目录下的 Makefile修改

如上图,这里改一下,把红色框的替换成黄色框的,因为我们在搭建环境的时候吧 driver_lib 替换成了 app,不过好像不改也可以的,它在 driver_lib原文件夹上的 Makefile上有定义

在最后,再扩展一下后面用到的操作以及一些相关联的原理吧

第一个

 我们在修改上图那个地方的时候,写入的 COMPILE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=QIO SPI_SIZE_MAP=4 这串东西的依据是你对烧录时候设置的配置以及内存选用的大小,可以回去查看之前的文章,也就是下图的这些

其中,上图框选的内容,你可以直接填上去,而不去改写上面 Build的信息,不过我们一般不会这么做,在 Build直接改写多方便啊,然后你最终设置的内容会在你的打印窗口顶部可以看到,如下图

第二个

在我们调用主目录下 include文件夹下的各种 API接口时(下图框选的部分),即这些里面声明的函数,它的原函数都封装成一个静态库,这些库在 lib文件夹上(下图的 lib文件夹)

然后,当你用到某一个接口时,在 app下的 Makefile,找到下图这个位置,查看是否有包含进去

第三个,也就最后一个,就是:建议在执行 Build project之前,先 Clean project

发布了31 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42992084/article/details/102625607