ESP8266在Alios-Things上的入门开发指南 (一)开发环境搭建及HelloWorld固件

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
简介: 一、    开发环境搭建         目前国内大多数开发者使用的都是WinXP/Win7/Windows XX做MCU的开发。习惯Windows环境开发的朋友,如果一旦一接触到MCU需要是Linux环境来进行开发编译,第一反应理所应当是“臣妾做不到”!比方说,我们主角ESP8266这颗芯片,原厂提供的就是基于Linux做的开发(早期乐鑫还提供VM的开发环境镜像)。

一、    开发环境搭建

        目前国内大多数开发者使用的都是WinXP/Win7/Windows XX做MCU的开发。习惯Windows环境开发的朋友,如果一旦一接触到MCU需要是Linux环境来进行开发编译,第一反应理所应当是“臣妾做不到”!比方说,我们主角ESP8266这颗芯片,原厂提供的就是基于Linux做的开发(早期乐鑫还提供VM的开发环境镜像)。因此,我们为了开发这块芯片,就避免不了与linux打交道。

        在Windows上安装虚拟机,再在做芯片的开发,这是目前比较常用的一种方式。但是如果基于VistualStudioCode插件的alios-studio进行开发需linux开发环境的,我是更推荐如下这种方式:使用docker

        那么我们现在开始搭建windows下基于docker的ESP8266的alios-things的开发环境。

系统环境:      Windows10

应用环境:      Docker安装完毕(Windows下安装docker的方式可以到网上查一下)

                     VisualStudioCode(以下简称VSCode)

1、 VSCode安装alios-studio插件,操作如图1所示

ee7b337b4446a2e960aa5298d58d16d3565cbcf1

图1

       注意:记得把C/C++的插件也一并安装好,alios-studio对其有依赖.

2、安装alios-things的docker镜像

      方法A:

     有能力的同学可以参考我在github给出的dockerfile文件(当然也可以不参考),自己搭建一个docker镜像

https://github.com/lanjackg2003/alios-things-docker.git

    方法B:

     直接从dockerhub服务器通过pull方式获取我编译好的镜像,方法如图2

https://hub.docker.com/r/jacklan/alios-things-docker

bf1ffa060581b9b5025748e9a42160694e8873fb

图2

    打开命令行,执行如下命令

[plain]  view plain  copy
  1. docker pulljacklan/alios-things-docker  

    至此,Windows下的支持docker方式的编译环境已经搭建完毕了。


二、    克隆alios-things仓库代码

    可以通过安装git工具,并通过git clone指令进行下载

[plain]  view plain  copy
  1. git clone https://github.com/alibaba/AliOS-Things  

    如图3所示:

aff50a75f661df72560e331819ba625e2a2e2b17

图3

       当然你也可以使用你熟悉的工具从github中下载alios-things的代码。


三、    编译Esp8266的HelloWorld固件

1、用VSCode打开AliOS-Things代码仓库,如图4

45d9d50f95ced113937436a49ac388fd292dc38e

图4

2、 修改Alios-Things的HelloWorld.c代码

    如图5,增加了一句代码:  

    printf("esp8266hellowrold example by jack!\r\n");

43b9be33cc782c5c9898bca5a9bb0626ad9e4527

图5

3、通过快捷键  CTRL+Shift+` 三个按键,打开终端


3b5e04257e43bae1242f2fb645a2ba53b347c576

图6

       我们可以看到,powershell的路径已经是alios-things代码仓库目录了,所以我们接下来把这个目录挂载到docker的容器的工作目录里面。

       在powershell中执行cmd切换到命令行

[plain]  view plain  copy
  1. docker run -v %cd%:/home/alios/AliOS-Things --name alios-things-build -it --rm jacklan/alios-things-docker  

小窍门:想在powershell直接调起docker的容器可以直接将命令行脚本转城bat文件,然后运行。

dda845715402de3822942f971be39a70b86fc248

图7

后续我会将这个Win_Build.bat也放到github中.


4、 接下来,使用alios-things的cube工具来编译刚刚我们的HelloWorld代码

    在docker容器中执行如下命令

[plain]  view plain  copy
  1. aos make helloworld@esp8266  

13edf3f9174e534570f3dd3ec84925779b2fb08f

图8

94dd3d477e594b4694837ad13f98b58ed9147b65

图9

 

小贴士:

dd626cea9f9b1944e08f00d480f639baa25e011f



 

四、    烧写固件到ESP8266开发板

        到乐鑫官网下载烧录工具: Flash 下载工具(ESP8266 & ESP32)

https://www.espressif.com/zh-hans/support/download/other-tools

        使用乐鑫的Windows下载工具,按照如下地址下载:

文件名

烧录地址

boot_v1.7_921600.bin

0x0

esp_init_data_default.bin

0x3fc000

blank.bin

0x3fe000

helloworld@esp8266-0x1000.bin

0x1000

    “boot_v1.7_921600.bin" "esp_init_data_default.bin" "blank.bin"这三个文件可以在

“xxx\AliOS-Things\platform\mcu\esp8266\bsp目录找到。

    打开烧写工具,按照表格的地址进行填写后,对ESP8266板子进行烧写即可。

    当前我使用的是NodeMCU这个开发板,所以我的烧录配置参数如下图

585c4f0da71e7486fbb8b765e9f07c1cffb5ef2c

图10


五、    验证结果

cbb9324951b4a067f26495373f878d406b9d3893

图11

    从串口打印中可以看到 “esp8266 hellowrold example by jack!” 的输出信息。

注意:

    串口参数:

      波特率     :  921600

      停止位     :  1

      数据位     :  8

      奇偶校验  :  无




补充注意:

    对于非Win10的 Windows系统,虽然docker也是支持的。但是要注意一点,其实你的docker是跑在你的虚拟机上面 并非真实的windows上的docker。

    因此 你是无法直接通过windows的文件路径挂载到docker里面,应该挂载虚拟机下的路径到docker容器。

    在此有两个步骤:

    1.将windows上的路径,通过虚拟机共享文件夹的方式共享到docker虚拟机

    2.挂载时候,使用docker下的共享文件夹路径进行挂载。

    如:

[plain]  view plain  copy
  1. docker run -v /G_DRIVE/vmshare/alios/AliOS-Things:/home/alios/AliOS-Things --name alios-things-build -it --rm jacklan/alios-things-docker  

    这句指令的"G_DRIVE"其实是"G盘"与docker虚拟机共享的文件夹的挂载路径。

   如果挂载windows路径到docker虚拟机,可以参考以下链接(特别注意设置共享文件夹后,一定要重新虚拟机才会生效)

    完整记录在 windows7 下使用 docker 的过程


    总结一下,本人是比较推荐win10下使用docker技术进行开发,其他windows下这种方式效率其他没有那么高。部分原因从刚刚的分析过程应该可以体会一二。


相关文章
|
Linux 编译器 Go
兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00
Go lang,为并发而生的静态语言,源于C语言又不拘泥于效率,高效却不流于古板,Python灵活,略输性能,Java严谨,稍逊风骚。君不见各大厂牌均纷纷使用Go lang对自己的高并发业务进行重构,原因无他,经济下行的大背景之下,性能突出、效率拉满的Go lang无疑是高并发场景下节约服务器资源的一剂灵药。
兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00
|
JavaScript
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
341 0
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
|
XML 前端开发 Java
Java Spring开发环境搭建及简单入门示例教程
Java Spring开发环境搭建及简单入门示例教程
Java Spring开发环境搭建及简单入门示例教程
|
开发框架 JavaScript 前端开发
Express后台开发环境搭建入门课程
前言: 如果你是一个合格的前端开发工程师,那么可能你或多或少都接触过nodejs,因为在很多情况下,我们前端开发人员想开发一个自己的项目,但是不会后端,导致项目无法进展下去,所以很多时候掌握一门后端技术会让前端开发人员的的路子变宽很多。 那么我们前端开发人员使用nodejs来进行开发无疑是最好的选择之一,因为毕竟nodejs可以让我们用js语法编写后台程序和接口,让我们能够向着全栈开发工程师迈进。
91 0
Express后台开发环境搭建入门课程
|
Web App开发 IDE Linux
《Python入门》Linux 下 Python Web开发环境搭建笔记
之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境。 我使用的系统是:ubuntu 14.04 server,根据个人经验,CentOS 6.5 下也适用。
1586 0
|
Java 开发工具 Android开发
|
Web App开发 JavaScript 前端开发
《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
最近想尝试一下英特尔的基于WebRTC协同通信开发套件,所以需要在本地搭建Node.js Web的开发测试环境。 这里讲的是CentOS 下的搭建方法,使用Windows的小伙伴请参考: 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记 Node.js是什么? 我们看看百科里怎么说的? JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本语言可以运行在服务器上的时候,一场席卷全球的风暴就开始了。
1430 0
|
Web App开发 JavaScript 前端开发
《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记
最近想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序,所以需要在本地搭建Node.js Web的开发测试环境。 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴请参考:《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记 Node.js是什么? 我们看看百科里怎么说的? JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本语言可以运行在服务器上的时候,一场席卷全球的风暴就开始了。
1108 0
|
Web App开发 IDE 开发工具
《Python入门》Windows 7下Python Web开发环境搭建笔记
最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境。 关于Python的版本 进入Python的网站,鼠标移到导航条上的下载,我们会发现提供两下主版本的下载链接! 这两个之间存在什么差别呢? 个人理解,2.7.x的版本为更加稳定的版本,而3.x的版本则是比较前卫的版本,包含了很多新功能新特性之类的; 但如果想要用Python开发一个新项目,那么该如何选择Python版本呢?大部分Python库都同时支持Python 2.7.x和3.x版本的,所以不论选择哪个版本都是可以的。
1211 0
|
分布式计算 Java Scala
Spark修炼之道(进阶篇)——Spark入门到精通:第三节 Spark Intellij IDEA开发环境搭建
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Intellij IDEA 14.1.4开发环境配置 Spark应用程序开发 1. Intellij IDEA 14.1.4开发环境配置 Intellij IDEA 功能十分强大,能够开发JAVA、Scala等相关应用程序,在依赖管理 智能提示等方面做到了极致,大家可
6173 0