AliOS Things + 关注 AliOS Things

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

  1. 云栖社区>
  2. AliOS Things>
  3. 博客>
  4. 正文

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

行者武松 发布时间:2018-06-12 15:31:26 浏览4132 评论3

摘要: 一、    开发环境搭建         目前国内大多数开发者使用的都是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下这种方式效率其他没有那么高。部分原因从刚刚的分析过程应该可以体会一二。


【云栖快讯】云栖专辑 | 阿里开发者们的第20个感悟:好的工程师为人写代码,而不仅是为编译器  详情请点击

网友评论

1F
rddalisb

手头刚好有一块8266可用来试试看。

2F
xiaotong0202

试了一下,有点问题,编译下载 都成功,但是串口输出信息不对,请大神帮忙看看,多谢
144ea24f40fc699e8e24d6237338d7f

3F
微轲

写的相当不错,但是没几个人知道。因为这个设置在云栖里面,不是在bbs.aliyun.com(这个里面的确实是讨论,但是里面一点干货都没)。在http://www.alios.cn/things那怎么样都知道不到来这里的入口。每个玩物联网的学生手上肯定有esp8266但是,没几个学生知道这有介绍esp8266的Alios things。