- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
3、固件编译和烧录过程详解
上一篇小e试用贴介绍了小e的功能初步体验效果,并解决了个别手机微信控制端无法和开发板正常绑定的问题。体验过板子的强大功能之后,我们就要开始逐渐深入小e的底层开发了,没有这些底层的支持小e是不可能有这样的完美效果和强大功能的。玩一个板子,就要明白它的如何工作的,也只有了解了其底层原理,以后板子出现非硬件故障我们也好对其进行“维修”,才能够让其实现我们自己想要的功能。因为小e开发板到手时候是已经刷好固件的了,但是官方已经开放了固件源码,这个源码经过编译之后最终生成的就是小e具有各种功能的bin固件。我们在利用lubuntu虚拟机编译固件源码之前建立的共享文件以及为什么要将官方固件源码et_iot_source这个文件夹复制到此共享文件中的最终目的:就是为了编译此源码生成固件,并将生成的固件烧录到小e开发板!接下来我们就开始体验一下编译固件和烧录我们自己编译好固件的感觉!这个感觉其实是棒棒的^_^ 首先我们需要使用到的有以下3个资源,这个在官方的环境搭建教程当中介绍过,也有相应的资源共大家下载(网盘资源:http://pan.baidu.com/s/1jHj4FHG):
1、VirtualBox-4.3.12-93733-Win.exe (虚拟机工具)
2、ESP8266_lubuntu_20141021.ova(lubuntu 虚拟机镜像)
3、FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar (烧写工具)
一、编译固件
VirtualBox虚拟机的安装及环境的配置在此就不再多说,官方资料已给出详细的步骤。需要注意的是有些时候虚拟机启动时会出现一些错误,根据个别人说法就是多重启几次就好了;在有就是如果不是第一次安装该软件,再次安装之后出现的各种问题很有可能就是之前没有卸载干净,大家最好养成习惯别直接shift+delete永久删除,那样只是删除了部分安装文件,大部分的软件配置文件还在电脑中存留,会导致下次安装失败等等一系列的问题!如果大家成功安装并导入lubuntu虚拟机之后,那就可以着手准备编译了:
lubuntu打开后桌面上就只有一个终端图标显示,如上图所示。接触Linux的对此估计是再熟不过了,许多资源都是需要通过终端获取的,比如软件的下载。包含软件的安装也可以在终端里面实现。lubuntu的终端和其余Linux发行版的终端也是大同小异,终端的界面其实与windows的DOS窗口较为雷同,都是黑黑的背景,灰白色的字体,通过输入各种命令实现某些功能,还好之前有使用Ubuntu编译openwart固件的经验,再次遇到也不是那么陌生了。接下来我们就要利用这个终端开始一系列的编译工作了....
打开终端界面,输入ls查看虚拟机磁盘根目录内容:
我们会看到有4个文件: Desktop(桌面)、Share(共享文件)、mount.sh、umount.sh,前两个是个文件夹,后两个是其他的文件,这4个文件就是我们虚拟机硬盘的目录内容。我们可以打开文件资源管理器对比一下:
如上图,硬盘根目录就只有终端显示的4个内容。对于如何
打开文件资源管理器,虚拟机左下角有4个小图标,对应功能分别是:
①打开资源管理器;
②打开浏览器(自带火狐的浏览器);
③单击关闭所有窗口(这个具体功能也不太清楚,但它可以实现此效果);
④切换第二桌面(该系统自带两个桌面);
下一步,输入sudo ./mount.sh(注意中间还有一个空格,后面的那个mount.sh文件是可以在资源管理器中打开的并修改内容的,前几天我编译固件出现问题时以为是这里面的问题,就修改了一下内容,结果还是不行);
输入该命令之后回车提示输入ESP8266密码:默认是espressif(密码输入过程中不显示,Ubuntu的也是的)。
如果密码输错三次会有错误信息提示:
由于第一次走到这一步时没有出现其他什么情况,我一直回车,连按3次就出现了上面的情况,我以为是虚拟机的问题,于是又卸载全部重新配置一遍,全部重头开始!后来明白了我当初步骤并没有错,本来就是正确的现象,却被自己给否定了,哈哈!
密码输入成功回车后,输入cd Share进入共享文件夹(注意大小写,因为我们的虚拟机共享文件夹的名字就是Share,也是之前那四个文件的第二个文件夹) 再输入cd et_directory进入
et_directory文件夹,进入该文件夹之后我们依然可以输入ls查看其里面的内容,
同时我们可以打开我们之前在共享文件夹里面复制过去的那个固件源码文件夹,可以发现终端里查看到的所有文件都是和固件源码里面的文件一一对应的!这就是我们需要固件源码的原因,我们看到的其实就是之前复制到共享文件夹中的那个文件!
下一步,输入cd et_app进入该文件夹,依然可以输入ls查看内容,同时我们打开固件源码包里的
et_app文件夹与其对比,同样是一模一样的:
最后一步,输入./gen_misc.sh开始编译.......(最激动的时刻)编译的过程就是终端打印出一行行的信息,不停的刷新着屏幕:
好在要编译的固件不大,没一会就编译成功了!打印的信息中会有successully提示!
上面图中的两个红框信息非常重要!
第一个红框里面显示的生成的固件目录所在位置:
SDK_PATH: /home/esp8266/Share/et_iot_source;
BIN_PATH: /home/esp8266/Share/et_iot_source/bin/upgrade;
第二个红框里面显示的是生成的固件名称:
user1.2048.new.3
如果不看仔细的话有可能编译成功后却不知道生成的固件在哪放的,也是挺麻烦的了!
下面我们就跟着输出的信息一步一步找到固件生成目录看看究竟:
继续挖掘找到我们最终需要的bin固件:
到这一步,我们可以找到之前我下载好的官方固件包,如下图,打开看到里面的东西正好和我们编译出来的东西相匹配!这也说明我们生成的这个固件就是我们需要烧录到小e开发板的固件!
二、固件烧录
找到我们之前下载好的烧录软件:FLASH_DOWNLOAD_TOOLS
烧写软件打开之后DOS窗口会自动弹出并打印软件相关配置信息,包括波特率、COM口等基本信息:
在下载的烧录软件的那个文件里面有个日志文件,里面是软件的一些设置日志:
至于烧录软件的文件地址目录设置、波特率等基本信息设置在官方教程中有详细说明,就不再多说了。
要烧录的4个文件的地址和生成固件的文件目录要正确配置:
文件地址配置好和基本设置弄好之后点击start开始烧录:结果DOS信息提示烧录文件地址配置错误;
如果文件地址配置不正确,软件会找不到文件,系统地址处显示红色警告:
完全配置正确后则是绿色的,如下图所示:
终于弄好了,准备烧录看到COM口不对,又开始查看电脑COM口,结果电脑上的COM口太大,软件下拉目录里面没有这么大的,只好修改COM口了。
上面的一系列工作做完之后重新开始点击start,DOS窗口刷新出来一堆的信息.......哈哈,马上就要成功啦!
快好了...快好了...快好.....................error!失败!
为什么会失败?哪里不对吗?真的有,不细心就是会出错:在你配置好之后点击start之前软件提示你需要同步上电!意思应该就是小e开发板在上电的瞬间开始烧录!
不过我上电试了好几次,还是没能成功烧录进去,占时不知道什么原因,今天群里看到有人说板子上两个按键的功能时间我好像明白过来了,有一个按键是烧录时起到一定作用,我猜测应该我没有按按键的原因!现在板子不在身边,也没法实验,待明天再试一次看看效果如何!
最后提示一下,如果我们的lubuntu虚拟机过一会不动它的话,它会自动锁屏,而且还需要输入密码解锁。
因为装好之后并没有对它设置密码,所以我试了试ESP8266的密码,还真是的。如果锁屏,就输入espressif解锁吧!这次的试用贴就占时写到这里,过几天更新新的教程,大家加油,下面的几个资源需要的下载,看清楚需要那个,不需要的就不要下载啦免得浪费积分!
官方lubuntu虚拟机环境搭建教程:
M302I-ESP8266-IDEguide.pdf(790.59 KB, 下载次数: 11)
2016-1-19 22:49 上传
点击文件名下载附件官方固件源码(就是这个帖子里介绍的需要编译的固件源码):
固件源码.rar(2.94 MB, 下载次数: 26)
2016-1-19 22:57 上传
点击文件名下载附件官方固件包(就是固件源码编译之后生成的几个要烧录文件):
固件包.rar(213.51 KB, 下载次数: 13)
2016-1-19 22:55 上传
点击文件名下载附件本帖Word版教程:
固件编译和烧录教程.rar(2.86 MB, 下载次数: 33)
2016-1-19 22:55 上传
点击文件名下载附件
很详细的固件编译与烧录过程分析哦,我给你上推荐,希望再接再厉,期待精华帖
赞一个赞一个赞一个赞一个赞一个赞一个赞一个赞一个赞一个赞一个赞一个赞一个
牛人 我感到惭愧了
.............
高抬了,我和别人还差的远着呢
不错,最近我也烧录下试试
好的,第一次遇到很多问题,弄1个多小时也没搞定,,成功之后,,就几分钟哈哈
讲解的很详细,很受用,看视频教程都没看明白的地方,一看这个马上懂得
能看懂就好,毕竟不是试用每个人的
好详细,非常需要,感谢
感谢小编