ESP32开发环境配置(Windows 10)

引言

ESP32是个不错的玩具,同时支持Wifi和BLE,双核32位MCU,主频高达240MHz,可玩性很足。2016年就已经开始关注,一直没时间好好整一整。这段时间争取通过一些小玩具好好理一下。

这颗MCU结构和流行的结构有显著区别,常用的KEIL之流用不上,厂家也没有提供集成开发环境,头疼啊。这里要抱怨下国产MCU开发环境一直是个头疼的事情,用过4-5个系列MCU了,各种坑啊。不过,也可以理解,毕竟投入有限,好钢用在刀刃上,开发工程师的感受可以忽略了。

编译环境顾名思义就是一个把编程语言转化为机器码的系列工具。这里主要包括ToolChain、ESP_IDF、编辑环境、操作系统和硬件开发板:

  • ToolChain:ESP32的编译环境,原厂在Linux环境下开发的原生工具,Windows下使用仿真环境(MSYS2)实现开发环境移植;
  • ESP_IDF:API库和编译脚本;
  • 编辑环境:厂家推荐使用ECLIPS,为了更好理解编译环境,目前我在尝试VIM无果后,使用Notepad++;
  • 操作系统:支持Windows、Linux和Mac。据说,Linux里面比较快,本人尝试了VMware虚拟Linux,连不上硬件,悲剧,后来图方便,继续使用Window 10;
  • 硬件开发板:NodeMCU-32S 核心开发板

<li>
  <div align="left">
    连接ESP32硬件,红灯常亮,设备管理器显示发现串口,且工作正常,记录串口号;
  </div>
</li>

<li>
  <div align="center">
    <a href="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image-2.png"><img width="279" height="206" title="image" style="display: inline; background-image: none;" alt="image" src="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image_thumb-2.png" border="0" /></a>
  </div>
</li>

<li>
  <div align="left">
    打开mingw32.exe,进入<font style="background-color: rgb(204, 204, 204);">esp/hello_world</font>目录,输入<font style="background-color: rgb(204, 204, 204);">make menuconfig</font>,配置默认串口为COM35,保存,退出;
  </div>
</li>

<li>
  <div align="center">
    <a href="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image-3.png"><img width="545" height="59" title="image" style="display: inline; background-image: none;" alt="image" src="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image_thumb-3.png" border="0" /></a>
  </div>
</li>

<li>
  <div align="center">
    <a href="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image-4.png"><img width="438" height="341" title="image" style="display: inline; background-image: none;" alt="image" src="https://hb-bucket-wp.oss-cn-qingdao.aliyuncs.com/2020/01/image_thumb-4.png" border="0" /></a>
  </div>
</li>

<li>
  <div align="left">
    输入命令<font style="background-color: rgb(204, 204, 204);">make flash monitor</font>,出现下面结果,就成功了。make 为编译,flash为下载程序到开发板,monitor为显示工作信息。
  </div>
</li>
<p>
  Leaving&#8230;<br /> Hard resetting&#8230;<br /> MONITOR<br /> &#8212; idf_monitor on COM35 115200 &#8212;<br /> &#8212; Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H &#8212;<br /> ets Jun&nbsp; 8 2016 00:22:57
</p>

<p>
  rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)<br /> flash read err, 1000<br /> ets_main.c 371<br /> ets Jun&nbsp; 8 2016 00:22:57
</p>

<p>
  rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)<br /> configsip: 0, SPIWP:0xee<br /> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00<br /> mode:DIO, clock div:2<br /> load:0x3fff0018,len:4<br /> load:0x3fff001c,len:5732<br /> load:0x40078000,len:0<br /> load:0x40078000,len:13804<br /> entry 0x40079030<br /> I (67) boot: Detected ESP32<br /> I (31) boot: ESP-IDF v3.0-rc1-dirty 2nd stage bootloader<br /> I (31) boot: compile time 01:44:47<br /> I (31) boot: Enabling RNG early entropy source&#8230;<br /> I (37) boot: SPI Speed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 40MHz<br /> I (41) boot: SPI Mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : DIO<br /> I (45) boot: SPI Flash Size : 4MB<br /> I (49) boot: Partition Table:<br /> I (52) boot: ## Label&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Usage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type ST Offset&nbsp;&nbsp; Length<br /> I (60) boot:&nbsp; 00 nvs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WiFi data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 01 02 00009000 00006000<br /> I (67) boot:&nbsp; 1 phy_init&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RF data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 01 01 0000f000 00001000<br /> I (75) boot:&nbsp; 2 factory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; factory app&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00 00 00010000 00100000<br /> I (82) boot: End of partition table<br /> I (86) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x04ef8 ( 20216) map<br /> I (102) esp_image: segment 1: paddr=0x00014f20 vaddr=0x3ffb0000 size=0x02150 (&nbsp; 8528) load<br /> I (107) esp_image: segment 2: paddr=0x00017078 vaddr=0x40080000 size=0x00400 (&nbsp; 1024) load<br /> 0x40080000: _iram_start at C:/msys32/home/haibo/esp/esp-idf/components/freertos/xtensa_vectors.S:1685
</p>

<p>
  I (113) esp_image: segment 3: paddr=0x00017480 vaddr=0x40080400 size=0x081f8 ( 33272) load<br /> I (136) esp_image: segment 4: paddr=0x0001f680 vaddr=0x400c0000 size=0x00000 (&nbsp;&nbsp;&nbsp;&nbsp; 0) load<br /> I (136) esp_image: segment 5: paddr=0x0001f688 vaddr=0x00000000 size=0x00988 (&nbsp; 2440)<br /> I (143) esp_image: segment 6: paddr=0x00020018 vaddr=0x400d0018 size=0x1331c ( 78620) map<br /> 0x400d0018: _stext at ??:?
</p>

<p>
  I (183) boot: Loaded app from partition at offset 0x10000<br /> I (183) boot: Disabling RNG early entropy source&#8230;<br /> I (184) cpu_start: Pro cpu up.<br /> I (187) cpu_start: Starting app cpu, entry point is 0x40080df0<br /> 0x40080df0: call_start_cpu1 at C:/msys32/home/haibo/esp/esp-idf/components/esp32/cpu_start.c:222
</p>
<p align="center">
  <p align="left">
    明天再整理一下创建全新工程的步骤。
  </p>
  
  <p align="center">
    <p align="center">
      <p>
        </font></font><font size="4"><font size="4"></font></font><font size="4"></font>
      </p>
      
      <p>
        <font size="4"></p> 
        
        <p align="left">
          <p>
            </font><font size="4"></font>
          </p>