esptool

Dependencies:   mbed

Committer:
TuanPM
Date:
Mon Apr 06 06:43:53 2015 +0000
Revision:
0:f6a51823dfa8
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TuanPM 0:f6a51823dfa8 1 #ifndef _ESPTOOL_H_
TuanPM 0:f6a51823dfa8 2 #define _ESPTOOL_H_
TuanPM 0:f6a51823dfa8 3 #include "mbed.h"
TuanPM 0:f6a51823dfa8 4 #define ESP_FLASH_BEGIN 0x02
TuanPM 0:f6a51823dfa8 5 #define ESP_FLASH_DATA 0x03
TuanPM 0:f6a51823dfa8 6 #define ESP_FLASH_END 0x04
TuanPM 0:f6a51823dfa8 7 #define ESP_MEM_BEGIN 0x05
TuanPM 0:f6a51823dfa8 8 #define ESP_MEM_END 0x06
TuanPM 0:f6a51823dfa8 9 #define ESP_MEM_DATA 0x07
TuanPM 0:f6a51823dfa8 10 #define ESP_SYNC 0x08
TuanPM 0:f6a51823dfa8 11 #define ESP_WRITE_REG 0x09
TuanPM 0:f6a51823dfa8 12 #define ESP_READ_REG 0x0a
TuanPM 0:f6a51823dfa8 13
TuanPM 0:f6a51823dfa8 14 //# Maximum block sized for RAM and Flash writes, respectively.
TuanPM 0:f6a51823dfa8 15 #define ESP_RAM_BLOCK 0x1800
TuanPM 0:f6a51823dfa8 16 #define ESP_FLASH_BLOCK 0x400
TuanPM 0:f6a51823dfa8 17
TuanPM 0:f6a51823dfa8 18 //# Default baudrate. The ROM auto-bauds, so we can use more or less whatever we want.
TuanPM 0:f6a51823dfa8 19 #define ESP_ROM_BAUD 115200
TuanPM 0:f6a51823dfa8 20
TuanPM 0:f6a51823dfa8 21 //# First byte of the application image
TuanPM 0:f6a51823dfa8 22 #define ESP_IMAGE_MAGIC 0xe9
TuanPM 0:f6a51823dfa8 23
TuanPM 0:f6a51823dfa8 24 //# Initial state for the checksum routine
TuanPM 0:f6a51823dfa8 25 #define ESP_CHECKSUM_MAGIC 0xef
TuanPM 0:f6a51823dfa8 26
TuanPM 0:f6a51823dfa8 27 //# OTP ROM addresses
TuanPM 0:f6a51823dfa8 28 #define ESP_OTP_MAC0 0x3ff00050
TuanPM 0:f6a51823dfa8 29 #define ESP_OTP_MAC1 0x3ff00054
TuanPM 0:f6a51823dfa8 30
TuanPM 0:f6a51823dfa8 31 //# Sflash stub: an assembly routine to read from spi flash and send to host
TuanPM 0:f6a51823dfa8 32 #define SFLASH_STUB "\x80\x3c\x00\x40\x1c\x4b\x00\x40\x21\x11\x00\x40\x00\x80" \
TuanPM 0:f6a51823dfa8 33 "\xfe\x3f\xc1\xfb\xff\xd1\xf8\xff\x2d\x0d\x31\xfd\xff\x41\xf7\xff\x4a" \
TuanPM 0:f6a51823dfa8 34 "\xdd\x51\xf9\xff\xc0\x05\x00\x21\xf9\xff\x31\xf3\xff\x41\xf5\xff\xc0" \
TuanPM 0:f6a51823dfa8 35 "\x04\x00\x0b\xcc\x56\xec\xfd\x06\xff\xff\x00\x00"
TuanPM 0:f6a51823dfa8 36 class ESPTOOL {
TuanPM 0:f6a51823dfa8 37
TuanPM 0:f6a51823dfa8 38 public:
TuanPM 0:f6a51823dfa8 39 ESPTOOL(Serial& serial, PinName pinEnable, PinName pinProgram)
TuanPM 0:f6a51823dfa8 40 private:
TuanPM 0:f6a51823dfa8 41 Serial& _serial;
TuanPM 0:f6a51823dfa8 42 DigitalOut _pinEn, _pinPro;
TuanPM 0:f6a51823dfa8 43 uint8_t read();
TuanPM 0:f6a51823dfa8 44 void read(uint8_t *data, uint32_t len);
TuanPM 0:f6a51823dfa8 45 void write(uint8_t *data, uint32_t len);
TuanPM 0:f6a51823dfa8 46 }
TuanPM 0:f6a51823dfa8 47 #endif