本帖最后由 彩色笔 于 2017-9-22 15:35 编辑
经过一阵子的捣浆糊,无数次的迷茫,困惑,终于慢慢看到点希望的曙光。网上的资料很多,但都不系统,讲地也不详细,一半靠努力学,一半靠悟。阻挡了很多菜鸟的进步,我现在把我的经验分享出来,希望少点痛苦多点成就感。
学习这个主要分两大块,第一块,是APP端建立,第二块是MCU端建立。以下文章是从MCU端建立来说的。
MCU端建立又分为SOC程序建立和单片机程序建立。前者是利用esp8266本身来写,优点是少了单片机,体积更小,成本更低。缺点是入门得化了半月一月的,端口资源也少。 如果利用自己熟悉的单片机来开发进度就快多了,这就是后者单片机端的建立。 优点是自身熟悉,操作流畅,端口资源丰富,缺点就是体积和成本都要增加。需要ESP8266+MCU,MCU建议有采用有两个串口的。
开始我们学习之路吧。
第一章 ES8266 WIFI模块开发环境搭建 本人有开发单片机的基础,但对于WIFI智能模块需要用到的软件是小白一枚,这几天看了安信可和机智云的开发教程,很多细节都没写清楚,走了许多转路,针对学习中遇到的痛苦经历,以及官方资料不详尽,本人把这些写下来一则备忘,二则为了和我同样的小白们少浪费些时间。 选择安信可的AiThinker_IDE的原因是,它不需要搭建linux和虚拟机,非常方便。解压后在windows环境下直接就能用。现在支持XP,win7了。 第一步,如何安装安信可一体化开发环境 ESP8266 SKD的开发环境有很多,官方的开发环境配置比较复杂,这里介绍使用安可信出品的集成开发环境ESP8266 IDE,其实就是eclipse集成了相关的开发插件,用起来还是挺方便的。 安信可一体化开发环境有以下特点: · 支持ESP8266 NONOS和FreeRTOS环境开发 · 支持ESP31B/ESP32 FreeRTOS环境开发 · 下载即用,无需另外配置环境 · 可直接编译所有乐鑫官方推出的SDK开发包 下载地址:http://pan.baidu.com/s/1skRvR1j (百度云盘) 下载红框内的最新版本。其它的老版本不用下了。 已更新支持 XP 支持ESP32 支持OpenOCD 支持GCC 5.2版本
解压后:
双击AiThinkerIDE_V0.5_setup安装程序,选择一个解压目录,默认是D盘。我在D盘新建个文件夹“WIFI_ESP8266”,这里要注意文件夹名称不要有中文和空格和小数点,要不后面编译程序时不会成功。
解压完成后,打开目录
下面以个名字了解下,其中安信可的AiThinker_IDE.exe将一些烦琐的步骤简化了。
文件名 | 描述
| 备注 | Cygwin.exe | cygwin和xtensa编译器环境 | 含ESP8266 和 ESP31B/ESP32 开发环境 | Eclipse.exe | eclipse c/c++ 开发工具,仅在官网版本基础上打包了jre运行环境 | 本机已经安装 eclipse cdt 环境的的无需重复下载 | AiThinker_IDE.exe | 一体化开发环境配置工具 |
---------------------------------------------------------------------------------------------------------------------------------
开始整合编译环境
第一步:双击这个
。
第二步:先点击“Dafult”按钮,将用到的程序自动关联起来。然后点击“Save”保存设置。
步骤2:运行
第二章 如何使用安信可 ESP 系列一体化开发环境
以导入一个SDK为例,按官方的步骤有问题,反正我没成功。我总结了一下,有两种导入方式有些差别:
第一种,当File->Import弹出对话框后,选“General”里的"Existing Projects into Workspace" 导入。第二种,选"C/C++"里的"Existing Code as Makefile Project" 导入。当第一种导入不成功时,可尝试用第二种导入。机智云生成的SDK都是用第二种方法导入的。网络上eclipse大都用的第一种,为什么这样我没有去深究,我觉得还是先学好怎么用吧。
两种方法的共同点是,所需的项目文档一定要导入AiThinkerIDE_V0.5\cygwin\home\aithinker\project文件夹,这个文件夹类似eclipse官方资料常提到的workspace文件夹,否则编译不成功,不成功,不成功(重要的事说三遍)。这一步卡了我三天,谁让我是小白呢,下面我按我的流程详细写下来备忘。 安信可IDE安装好后,已经给我们准备好了打开的快捷方式。我们打开刚才解压缩的"AiThinkerIDE_V0.5"文件夹,可以看到有个“OpenWorkSpace" 批处理文件。双击打开,会自己定位到所要导入的文件夹,该文件夹内,就是已经导入好的项目SDK。
先说第一种导入方式:以安信可官方下载的SDK为例
步骤1:双击打开AiThinker_IDE。“File”->"Import"。项目栏里右击选择“Import”也可以。
步骤2:选择“General”->"Existing Projects into Workspace" 点击“next”。
步骤3:如图,选择桌面上解压好的的esp8266_nonos_sdk_v1.5.4文件夹。下面又要注意了,文件夹名称不能有小数点,不能是中文名,并且将“Options”栏里,"Copy projects into workspace",前打勾。意思是将该文件夹复制进文章开头提到的project文件夹内。一定要打勾,否则编译又是不成功!不成功!不成功!。
就是该项目文件夹一定要放到AiThinkerIDE_V0.5\cygwin\home\aithinker\project文件夹内。可以自己手动复制,也可以让软件自己复制。
废话多一点,自己多注意点。
如果出现这种样子,就是文件夹内有同名文件了。
由于程序默认已加载了“ESP8266_NONOS_SDK”,跟我们现在要导入的文档是一样的,重复了,所以要把以前的删除。按下“del”键,或者右键单击,选择“Delete”。
在弹出的对话框内如下图,将“Delete project contents on disk......”前打上勾。然后点击OK。就将项目名称连同workspace文件夹内的文档全部删除了。
重新按以上步骤导入下,成功后,先选择“clean project”,防止出错。然后再右键单击选择“bulid project”或者工具栏上的那个小锤子。
OK,开始编译。完成后,如下图
第二种导入方式,针对第三方云平台项目用第一种方法无法导入问题。例如“机智云”生成的项目文件夹。
步骤1:解压从机智云下载的项目并复制到project文件夹内。双击"OpenWorkSpace"批处理文件,自动打开。简化步骤
步骤2:将项目手动复制进去。下图选中的就是我刚才复制的项目文件夹。
步骤3:双击打开该文件夹,直到定位到有“MakeFile”的文件夹处。并复制文件路径,到安信可IDE内用。注意路径上有文件名,不能出现中文。
步骤4:双击打开AiThinker_IDE。“File”->"Import"。图略了。
步骤5:双击下图的“Existing Code as Makefile Project”
步骤6:将刚才复制的路径直接粘贴到“Existing Code Location”处,省地点“Browse”按钮一层层找了。下面选"Cygwin GCC"。 点“Finish”。
导入成功,但还有些地方需要修改,否则编译不成功。我是从机智云论坛上看来的,目前我还没整明白。就是双击打开MakeFile,将下面这段程序参数修改下。
BOOT?=none
APP?=0
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=0
改成
BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6 boot赋值为new,意思就是可以升级 APP 赋值为1,就可以生成user1的bin 文件 如果需要OTA云端升级,就要用到user2文件,只要在这里将APP值赋为2就行了。
SPI_SPEED是下载的速度 SPI_MODE是下载模式 SPI_SIZE_MAP是flash的大小这个可以看上面那个文档详细介绍 赋值为0表示使用的flash是512k 有一处没搞清楚,安信可官方的SPI_SIZE_MAP?=2 机智云论坛上的那位大神是SPI_SIZE_MAP?=4,而下面有位版主说要改成SPI_SIZE_MAP?=6 反正都能编译成功。 具体可以查看这人的文章 http://blog.csdn.net/chen244798611/article/details/51375337
试验了下。 编译后生成的bin文件名称不同。看user1.1024.new.2.bin那行。 SPI_SIZE_MAP?=2 Flash容量是1024Kb
SPI_SIZE_MAP?=4 文件名:user1.4096.new.4.bin SPI_SIZE_MAP?=6 文件名是user1.4096.new.6.bin Flash容量为4096Kb没有改变。 机智云SDK生成的文件名是user1.4096.new.6.bin 故我们先写成SPI_SIZE_MAP?=6
第三章 烧录
关于烧录方面,这里提一下。烧录文件在项目文件bin/upgrade 文件夹内,文件格式是.bin。烧录地址是后面的0x01000。
软件:ESPFlashDownloadTool_v3.4.4 在安信可官方也可以下载到,搜文件名。
烧录前先讲些基本知识。
软件编译好后,烧录文件为bin格式的文件。例如:boot.bin 和 user1.512.new.4.bin按生成的地址为准。
设置好以后 我们可以看看编译的结果如下 从这里可以看到 boot的开始地址是0x00000 支持的版本必须要1.2版本或以上版本
第一步:软件解压后双击运行,选择"ESP8266 DownloadTool"
第二步:我在桌面建立了个“烧写文件”文件夹,里面放着每次要烧录的文件。
以机智云gokit3串口烧录为例
上面方式一的bin文件,还要加上 esp_init_data_default.bin blank.bin boot.bin才行。并且地址要写正确,按下图中地址来写。如下图:
如果要生成那种单个文件,地址是0x00000的。类似方式二这种。
需要在方式一的基础上,点击烧录软件里的“CombineBin”按钮生成。生成在烧录软件的“combine”文件夹内。
关于烧录,最后讲一点,机智云 Gokit3 SOC开发时,板子上的CP2102 USB转串口模块是不能烧录的。如下图白色USB线连接的,只能用来向电脑端串口传送数据,波特率是115200
|