Arduino ESP8266开发板上手实践

By xia0

Arduino ESP8266开发板上手实践

环境搭建(macOS)

官方说明:https://github.com/esp8266/Arduino

  • 安装IDE (Arduino IDE)

    下载地址:https://www.arduino.cc/en/main/software

    还有种方式是利用Makefile去做开发,这里先做个记录,说不定以后会用这个开发模式,毕竟可控性比较高。但目前还不是很熟悉,建议选择上面的IDE。

  • 下载ESP8266硬件包

    1 、在设置里面的附加板管理器网址中增加以下链接https://arduino.esp8266.com/stable/package_esp8266com_index.json

    2、在工具中找到你的开发板,然后进入开发板管理器,搜索esp8266安装该库,我这里已经安装了。

    注意:如果这种方式安装不了,你可以选择下载软件包手动安装,这里不展开分析。参考这里

  • 运行示例代码

    我这里打开Blink这个示例代码,这段代码很简单,就是控制LED灯的闪烁。

    代码如下

    /*
      ESP8266 Blink by Simon Peter
      Blink the blue LED on the ESP-01 module
      This example code is in the public domain
    
      The blue LED on the ESP-01 module is connected to GPIO1
      (which is also the TXD pin; so we cannot use Serial.print() at the same time)
    
      Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
    */
    
    void setup() {
      pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
    }
    
    // the loop function runs over and over again forever
    void loop() {
      digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (Note that LOW is the voltage level
      // but actually the LED is on; this is because
      // it is active low on the ESP-01)
      delay(1000);                      // Wait for a second
      digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
      delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
    }
    

    在这里点击项目上传,就会编译该Blink项目并上传写入开发板上面运行。如果一切顺利的话,你的开发板的LED灯应该就会开始闪烁了。

重要!!!一些坑以及注意点

下面说下一切不是很顺利的情况,首先我这里是以mac会开发平台,所以这里都是mac相关的注意事项和问题。

确定你的端口正常,即电脑是否与开发板正常通信。一般来说你上传代码报错多半是由于端口不可用或者无法找到端口。这里提供几个思路去检查。

1、确定usb是否连接,这里可以下载一个IORegistryExplorer的工具。下载地址1 下载地址2 下载地址3在我插入开发板的时候可以看到usb2.0下面多了一个设备,说明能够usb连接正常。

2、确定安装了开发板相关的驱动,这个驱动的作用主要就是将设备操作通过Virtual COM Port去通信。这里有几个坑。之前网上能搜到的驱动都不支持最新的macOS系统(10.14)。所以导致我的/dev目录下并没有出现对应的文件。之前的驱动大多是这个CH340G CH34G CH34X Mac OS X driver 照着里面的步骤,把SIP禁用以及其他都操作了一遍都不行。最后才发现这个驱动可能不支持最新的mac系统,这里我找到一个能够在最新系统正常的驱动下载地址在这里。安装完以后在/dev就应该有一个tty.SLAB_USBtoUART的文件。说明通信的端口已经建立,这时候再IDE中选择该端口。

资源链接

这里我提供一些我在搭建过程中搜到的一些资源,可以参考一下

AVR逆向基础

下面我们就来熟悉一下这个系统,包括代码环境,编译环境,常见库,开发相关。还是以一些demo代码作为学习。

由于我们主要是研究iOT逆向,所以可能不会关注在实际开发上面。这里先学习下Arduino上面的执行文件格式,以及指令架构等。

我们通常说的Arduino上面就运行的是一个AVR指令架构的处理器。

AVR refers to the line of MCUs manufactured by Atmel and used in the original designs.

由于ida对这个执行文件的支持不是很好,我们准备用radare2来分析这个bin文件。

参考