From 8b96b1a5f4ca41bba771b40b1fb7ab99a48e9a38 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 5 Jan 2017 13:54:40 +0200 Subject: [PATCH] update IDF libs and esptool.py adds autoreset after firmware upload --- cores/esp32/esp32-hal-i2c.c | 4 +- tools/esptool.py | 440 ++++++++++++------- tools/sdk/bin/bootloader.bin | Bin 4688 -> 5152 bytes tools/sdk/include/config/sdkconfig.h | 7 + tools/sdk/include/driver/driver/i2c.h | 514 +++++++++++++++++++++++ tools/sdk/include/driver/driver/i2s.h | 380 +++++++++++++++++ tools/sdk/include/esp32/soc/cpu.h | 9 + tools/sdk/include/esp32/soc/i2c_reg.h | 2 + tools/sdk/include/esp32/soc/i2c_struct.h | 6 +- tools/sdk/include/lwip/lwipopts.h | 2 +- tools/sdk/include/lwip/port/lwipopts.h | 2 +- tools/sdk/ld/esp32.common.ld | 24 +- tools/sdk/lib/libapp_update.a | Bin 31292 -> 31292 bytes tools/sdk/lib/libbootloader_support.a | Bin 96382 -> 98330 bytes tools/sdk/lib/libbt.a | Bin 7981170 -> 7981170 bytes tools/sdk/lib/libdriver.a | Bin 626624 -> 842502 bytes tools/sdk/lib/libesp32.a | Bin 421426 -> 423810 bytes tools/sdk/lib/libethernet.a | Bin 82840 -> 82840 bytes tools/sdk/lib/libexpat.a | Bin 1030628 -> 1030628 bytes tools/sdk/lib/libfreertos.a | Bin 500138 -> 500138 bytes tools/sdk/lib/libjson.a | Bin 183460 -> 183460 bytes tools/sdk/lib/liblog.a | Bin 21194 -> 21194 bytes tools/sdk/lib/liblwip.a | Bin 1634662 -> 1634662 bytes tools/sdk/lib/libmbedtls.a | Bin 3193590 -> 3193590 bytes tools/sdk/lib/libmicro-ecc.a | Bin 160248 -> 160248 bytes tools/sdk/lib/libnewlib.a | Bin 79748 -> 79514 bytes tools/sdk/lib/libnghttp.a | Bin 1281422 -> 1281422 bytes tools/sdk/lib/libnvs_flash.a | Bin 543400 -> 543400 bytes tools/sdk/lib/libopenssl.a | Bin 255072 -> 255072 bytes tools/sdk/lib/libspi_flash.a | Bin 91790 -> 91790 bytes tools/sdk/lib/libtcpip_adapter.a | Bin 69046 -> 69046 bytes tools/sdk/lib/libulp.a | Bin 21548 -> 21548 bytes tools/sdk/lib/libvfs.a | Bin 63414 -> 63414 bytes tools/sdk/lib/libwpa_supplicant.a | Bin 466236 -> 466236 bytes tools/sdk/lib/libxtensa-debug-module.a | Bin 12054 -> 12054 bytes 35 files changed, 1213 insertions(+), 177 deletions(-) create mode 100644 tools/sdk/include/driver/driver/i2c.h create mode 100644 tools/sdk/include/driver/driver/i2s.h diff --git a/cores/esp32/esp32-hal-i2c.c b/cores/esp32/esp32-hal-i2c.c index fd42db5a..b372e4d1 100644 --- a/cores/esp32/esp32-hal-i2c.c +++ b/cores/esp32/esp32-hal-i2c.c @@ -347,7 +347,7 @@ i2c_err_t i2cSetFrequency(i2c_t * i2c, uint32_t clk_speed) I2C_MUTEX_LOCK(); //the clock num during SCL is low level - i2c->dev->scl_low_period.scl_low_period = period; + i2c->dev->scl_low_period.period = period; //the clock num during SCL is high level i2c->dev->scl_high_period.period = period; @@ -375,7 +375,7 @@ uint32_t i2cGetFrequency(i2c_t * i2c) return 0; } - return APB_CLK_FREQ/(i2c->dev->scl_low_period.scl_low_period+i2c->dev->scl_high_period.period); + return APB_CLK_FREQ/(i2c->dev->scl_low_period.period+i2c->dev->scl_high_period.period); } /* diff --git a/tools/esptool.py b/tools/esptool.py index 4d847214..026d22ca 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -1,10 +1,9 @@ #!/usr/bin/env python -# NB: Before sending a PR to change the above line to '#!/usr/bin/env python2', please read https://github.com/themadinventor/esptool/issues/21 +# NB: Before sending a PR to change the above line to '#!/usr/bin/env python2', please read https://github.com/espressif/esptool/issues/21 # # ESP8266 & ESP32 ROM Bootloader Utility -# https://github.com/themadinventor/esptool -# # Copyright (C) 2014-2016 Fredrik Ahlberg, Angus Gratton, Espressif Systems (Shanghai) PTE LTD, other contributors as noted. +# https://github.com/espressif/esptool # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software @@ -28,10 +27,10 @@ import sys import time import base64 import zlib +import shlex __version__ = "2.0-dev" - MAX_UINT32 = 0xffffffff MAX_UINT24 = 0xffffff @@ -108,7 +107,7 @@ class ESPLoader(object): ESP_ERASE_FLASH = 0xD0 ESP_ERASE_REGION = 0xD1 ESP_READ_FLASH = 0xD2 - ESP_GET_FLASH_ID = 0xD3 + ESP_RUN_USER_CODE = 0xD3 # Maximum block sized for RAM and Flash writes, respectively. ESP_RAM_BLOCK = 0x1800 @@ -136,7 +135,7 @@ class ESPLoader(object): # The number of bytes in the UART response that signify command status STATUS_BYTES_LENGTH = 2 - def __init__(self, port=DEFAULT_PORT, baud=ESP_ROM_BAUD, do_connect=True): + def __init__(self, port=DEFAULT_PORT, baud=ESP_ROM_BAUD): """Base constructor for ESPLoader bootloader interaction Don't call this constructor, either instantiate ESP8266ROM @@ -151,34 +150,35 @@ class ESPLoader(object): if isinstance(port, serial.Serial): self._port = port else: - self._port = serial.Serial(port) + self._port = serial.serial_for_url(port) self._slip_reader = slip_reader(self._port) # setting baud rate in a separate step is a workaround for # CH341 driver on some Linux versions (this opens at 9600 then # sets), shouldn't matter for other platforms/drivers. See - # https://github.com/themadinventor/esptool/issues/44#issuecomment-107094446 + # https://github.com/espressif/esptool/issues/44#issuecomment-107094446 self._port.baudrate = baud - if do_connect: - self.connect() @staticmethod - def detect_chip(port=DEFAULT_PORT, baud=ESP_ROM_BAUD): - """Use serial access to detect the chip type. + def detect_chip(port=DEFAULT_PORT, baud=ESP_ROM_BAUD, connect_mode='default_reset'): + """ Use serial access to detect the chip type. We use the UART's datecode register for this, it's mapped at the same address on ESP8266 & ESP32 so we can use one memory read and compare to the datecode register for each chip type. + This routine automatically performs ESPLoader.connect() (passing + connect_mode parameter) as part of querying the chip. """ - detect_port = ESPLoader(port, baud, True) + detect_port = ESPLoader(port, baud) + detect_port.connect(connect_mode) sys.stdout.write('Detecting chip type... ') date_reg = detect_port.read_reg(ESPLoader.UART_DATA_REG_ADDR) for cls in [ESP8266ROM, ESP32ROM]: if date_reg == cls.DATE_REG_VALUE: # don't connect a second time - inst = cls(detect_port._port, baud, False) + inst = cls(detect_port._port, baud) print '%s' % inst.CHIP_NAME return inst print '' @@ -204,11 +204,14 @@ class ESPLoader(object): return state """ Send a request and read the response """ - def command(self, op=None, data="", chk=0): + def command(self, op=None, data="", chk=0, wait_response=True): if op is not None: pkt = struct.pack(' 0: flags |= SPI_USR_MISO @@ -630,6 +644,9 @@ class ESPLoader(object): wait_done() status = self.read_reg(SPI_W0_REG) + # restore some SPI controller registers + self.write_reg(SPI_USR_REG, old_spi_usr) + self.write_reg(SPI_USR2_REG, old_spi_usr2) return status def read_status(self, num_bytes=2): @@ -687,6 +704,32 @@ class ESPLoader(object): self.run_spiflash_command(SPIFLASH_WRDI) + def hard_reset(self): + self._port.setRTS(True) # EN->LOW + time.sleep(0.1) + self._port.setRTS(False) + + def soft_reset(self, stay_in_bootloader): + if not self.IS_STUB: + if stay_in_bootloader: + return # ROM bootloader is already in bootloader! + else: + # 'run user code' is as close to a soft reset as we can do + self.flash_begin(0, 0) + self.flash_finish(False) + else: + if stay_in_bootloader: + # soft resetting from the stub loader + # will re-load the ROM bootloader + self.flash_begin(0, 0) + self.flash_finish(True) + elif self.CHIP_NAME != "ESP8266": + raise FatalError("Soft resetting is currently only supported on ESP8266") + else: + # running user code from stub loader requires some hacks + # in the stub loader + self.command(self.ESP_RUN_USER_CODE, wait_response=False) + class ESP8266ROM(ESPLoader): """ Access class for ESP8266 ROM bootloader @@ -715,11 +758,20 @@ class ESP8266ROM(ESPLoader): '4MB-c1':0x60, '4MB-c2':0x70} + FLASH_HEADER_OFFSET = 0 + def flash_spi_attach(self, is_spi, is_legacy): - pass # not implemented in ROM, but OK to silently skip + if self.IS_STUB: + super(ESP8266ROM, self).flash_spi_attach(is_spi, is_legacy) + else: + # ESP8266 ROM has no flash_spi_attach command in serial protocol, + # but flash_begin will do it + self.flash_begin(0, 0) def flash_set_parameters(self, size): - pass # not implemented in ROM, but OK to silently skip + # not implemented in ROM, but OK to silently skip for ROM + if self.IS_STUB: + super(ESP8266ROM, self).flash_set_parameters(size) def chip_id(self): """ Read Chip ID from OTP ROM - see http://esp8266-re.foogod.com/wiki/System_get_chip_id_%28IoT_RTOS_SDK_0.9.9%29 """ @@ -775,6 +827,7 @@ class ESP8266StubLoader(ESP8266ROM): def get_erase_size(self, offset, size): return size # stub doesn't have same size bug as ROM loader + ESP8266ROM.STUB_CLASS = ESP8266StubLoader @@ -809,26 +862,22 @@ class ESP32ROM(ESPLoader): '16MB':0x40 } + FLASH_HEADER_OFFSET = 0x1000 + def read_efuse(self, n): """ Read the nth word of the ESP3x EFUSE region. """ return self.read_reg(self.EFUSE_REG_BASE + (4 * n)) def chip_id(self): - word16 = self.read_efuse(16) - word17 = self.read_efuse(17) + word16 = self.read_efuse(1) + word17 = self.read_efuse(2) return ((word17 & MAX_UINT24) << 24) | (word16 >> 8) & MAX_UINT24 def read_mac(self): """ Read MAC from EFUSE region """ - word16 = self.read_efuse(16) - word17 = self.read_efuse(17) - word18 = self.read_efuse(18) - word19 = self.read_efuse(19) - wifi_mac = (((word17 >> 16) & 0xff), ((word17 >> 8) & 0xff), ((word17 >> 0) & 0xff), - ((word16 >> 24) & 0xff), ((word16 >> 16) & 0xff), ((word16 >> 8) & 0xff)) - bt_mac = (((word19 >> 16) & 0xff), ((word19 >> 8) & 0xff), ((word19 >> 0) & 0xff), - ((word18 >> 24) & 0xff), ((word18 >> 16) & 0xff), ((word18 >> 8) & 0xff)) - return (wifi_mac,bt_mac) + words = [self.read_efuse(1), self.read_efuse(2)] + bitstring = struct.pack(">II", *words) + return tuple(ord(b) for b in bitstring[:6]) # trim 2 byte CRC def get_erase_size(self, offset, size): return size @@ -845,6 +894,7 @@ class ESP32StubLoader(ESP32ROM): self._port = rom_loader._port self.flush_input() # resets _slip_reader + ESP32ROM.STUB_CLASS = ESP32StubLoader @@ -1337,6 +1387,7 @@ def div_roundup(a, b): """ return (int(a) + int(b) - 1) / int(b) + def align_file_position(f, size): """ Align the position in the file to the next block of specified size """ align = (size - 1) - (f.tell() % size) @@ -1439,9 +1490,23 @@ def dump_mem(esp, args): print 'Done!' +def detect_flash_size(esp, args): + if args.flash_size == 'detect': + flash_id = esp.flash_id() + size_id = flash_id >> 16 + args.flash_size = {0x12: '256KB', 0x13: '512KB', 0x14: '1MB', 0x15: '2MB', 0x16: '4MB', 0x17: '8MB', 0x18: '16MB'}.get(size_id) + if args.flash_size is None: + print 'Warning: Could not auto-detect Flash size (FlashID=0x%x, SizeID=0x%x), defaulting to 4m' % (flash_id, size_id) + args.flash_size = '4m' + else: + print 'Auto-detected Flash size:', args.flash_size + + def write_flash(esp, args): """Write data to flash """ + detect_flash_size(esp, args) + flash_mode = {'qio':0, 'qout':1, 'dio':2, 'dout': 3}[args.flash_mode] flash_size_freq = esp.parse_flash_size_arg(args.flash_size) flash_size_freq += {'40m':0, '26m':1, '20m':2, '80m': 0xf}[args.flash_freq] @@ -1462,7 +1527,7 @@ def write_flash(esp, args): print 'Erasing flash...' image = argfile.read() # Update header with flash parameters - if address == 0 and image[0] == '\xe9': + if address == esp.FLASH_HEADER_OFFSET and image[0] == '\xe9': image = image[0:2] + flash_info + image[4:] calcmd5 = hashlib.md5(image).hexdigest() uncsize = len(image) @@ -1512,14 +1577,16 @@ def write_flash(esp, args): except NotImplementedInROMError: pass print '\nLeaving...' - if args.flash_mode == 'dio' and esp.CHIP_NAME == "ESP8266": - esp.flash_unlock_dio() - else: + + if esp.IS_STUB: + # skip sending flash_finish to ROM loader here, + # as it causes the loader to exit and run user code esp.flash_begin(0, 0) if args.compress: esp.flash_defl_finish(False) else: esp.flash_finish(False) + if args.verify: print 'Verifying just-written flash...' verify_flash(esp, args, header_block) @@ -1583,14 +1650,11 @@ def elf2image(args): def read_mac(esp, args): mac = esp.read_mac() + def print_mac(label, mac): print '%s: %s' % (label, ':'.join(map(lambda x: '%02x' % x, mac))) - print("%r" % (mac,)) - if len(mac) == 1: - print_mac("MAC", mac) - else: - print_mac("WiFi MAC", mac[0]) - print_mac("BT MAC", mac[1]) + print_mac("MAC", mac) + def chip_id(esp, args): chipid = esp.chip_id() @@ -1711,6 +1775,18 @@ def main(): type=arg_auto_int, default=os.environ.get('ESPTOOL_BAUD', ESPLoader.ESP_ROM_BAUD)) + parser.add_argument( + '--before', + help='What to do before connecting to the chip', + choices=['default_reset', 'no_reset', 'esp32r0'], + default=os.environ.get('ESPTOOL_BEFORE', 'default_reset')) + + parser.add_argument( + '--after', '-a', + help='What to do after esptool.py is finished', + choices=['hard_reset', 'soft_reset', 'no_reset'], + default=os.environ.get('ESPTOOL_AFTER', 'hard_reset')) + parser.add_argument( '--no-stub', help="Disable launching the flasher stub, only talk to ROM bootloader. Some features will not be available.", @@ -1744,7 +1820,7 @@ def main(): parser_write_mem.add_argument('value', help='Value', type=arg_auto_int) parser_write_mem.add_argument('mask', help='Mask of bits to write', type=arg_auto_int) - def add_spi_flash_subparsers(parent): + def add_spi_flash_subparsers(parent, auto_detect=False): """ Add common parser arguments for SPI flash properties """ parent.add_argument('--flash_freq', '-ff', help='SPI Flash frequency', choices=['40m', '26m', '20m', '80m'], @@ -1754,8 +1830,8 @@ def main(): default=os.environ.get('ESPTOOL_FM', 'qio')) parent.add_argument('--flash_size', '-fs', help='SPI Flash size in MegaBytes (1MB, 2MB, 4MB, 8MB, 16M)' ' plus ESP8266-only (256KB, 512KB, 2MB-c1, 4MB-c1, 4MB-2)', - action=FlashSizeAction, - default=os.environ.get('ESPTOOL_FS', '1MB')) + action=FlashSizeAction, auto_detect=auto_detect, + default=os.environ.get('ESPTOOL_FS', 'detect' if auto_detect else '1MB')) parent.add_argument('--ucIsHspi', '-ih', help='Config SPI PORT/PINS (Espressif internal feature)',action='store_true') parent.add_argument('--ucIsLegacy', '-il', help='Config SPI LEGACY (Espressif internal feature)',action='store_true') @@ -1764,7 +1840,7 @@ def main(): help='Write a binary blob to flash') parser_write_flash.add_argument('addr_filename', metavar='
', help='Address followed by binary filename, separated by space', action=AddrFilenamePairAction) - add_spi_flash_subparsers(parser_write_flash) + add_spi_flash_subparsers(parser_write_flash, auto_detect=True) parser_write_flash.add_argument('--no-progress', '-p', help='Suppress progress output', action="store_true") parser_write_flash.add_argument('--verify', help='Verify just-written data (only necessary if very cautious, data is already CRCed', action='store_true') parser_write_flash.add_argument('--compress', '-z', help='Compress data in transfer',action="store_true") @@ -1855,6 +1931,8 @@ def main(): for operation in subparsers.choices.keys(): assert operation in globals(), "%s should be a module function" % operation + expand_file_arguments() + args = parser.parse_args() print 'esptool.py v%s' % __version__ @@ -1866,12 +1944,15 @@ def main(): operation_args,_,_,_ = inspect.getargspec(operation_func) if operation_args[0] == 'esp': # operation function takes an ESPLoader connection object initial_baud = min(ESPLoader.ESP_ROM_BAUD, args.baud) # don't sync faster than the default baud rate - chip_constructor_fun = { - 'auto': ESPLoader.detect_chip, - 'esp8266': ESP8266ROM, - 'esp32': ESP32ROM, - }[args.chip] - esp = chip_constructor_fun(args.port, initial_baud) + if args.chip == 'auto': + esp = ESPLoader.detect_chip(args.port, initial_baud, args.before) + else: + chip_class = { + 'esp8266': ESP8266ROM, + 'esp32': ESP32ROM, + }[args.chip] + esp = chip_class(args.port, initial_baud) + esp.connect(args.before) if not args.no_stub: esp = esp.run_stub() @@ -1890,20 +1971,56 @@ def main(): esp.flash_spi_attach(0, 0) if hasattr(args, "flash_size"): print "Configuring flash size..." + detect_flash_size(esp, args) esp.flash_set_parameters(flash_size_bytes(args.flash_size)) operation_func(esp, args) + + # finish execution based on args.after + if args.after == 'hard_reset': + print 'Hard resetting...' + esp.hard_reset() + elif args.after == 'soft_reset': + print 'Soft resetting...' + # flash_finish will trigger a soft reset + esp.soft_reset(False) + else: + print 'Staying in bootloader.' + if esp.IS_STUB: + esp.soft_reset(True) # exit stub back to ROM loader + else: operation_func(args) +def expand_file_arguments(): + """ Any argument starting with "@" gets replaced with all values read from a text file. + Text file arguments can be split by newline or by space. + Values are added "as-is", as if they were specified in this order on the command line. + """ + new_args = [] + expanded = False + for arg in sys.argv: + if arg.startswith("@"): + expanded = True + with open(arg[1:],"r") as f: + for line in f.readlines(): + new_args += shlex.split(line) + else: + new_args.append(arg) + if expanded: + print "esptool.py %s" % (" ".join(new_args[1:])) + sys.argv = new_args + + class FlashSizeAction(argparse.Action): """ Custom flash size parser class to support backwards compatibility with megabit size arguments. (At next major relase, remove deprecated sizes and this can become a 'normal' choices= argument again.) """ - def __init__(self, option_strings, dest, nargs=1, **kwargs): + def __init__(self, option_strings, dest, nargs=1, auto_detect=False, **kwargs): super(FlashSizeAction, self).__init__(option_strings, dest, nargs, **kwargs) + self._auto_detect = auto_detect def __call__(self, parser, namespace, values, option_string=None): try: @@ -1925,6 +2042,8 @@ class FlashSizeAction(argparse.Action): known_sizes = dict(ESP8266ROM.FLASH_SIZES) known_sizes.update(ESP32ROM.FLASH_SIZES) + if self._auto_detect: + known_sizes['detect'] = 'detect' if value not in known_sizes: raise argparse.ArgumentError(self, '%s is not a known flash size. Known sizes: %s' % (value, ", ".join(known_sizes.keys()))) setattr(namespace, self.dest, value) @@ -1952,100 +2071,105 @@ class AddrFilenamePairAction(argparse.Action): pairs.append((address, argfile)) setattr(namespace, self.dest, pairs) + # Binary stub code (see flasher_stub dir for source & details) ESP8266ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ -JlmuEgVGbP3zYv5L1xmpPPrX/wFeThnJ\ +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\ """))) ESP32ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ """))) if __name__ == '__main__': diff --git a/tools/sdk/bin/bootloader.bin b/tools/sdk/bin/bootloader.bin index 570b509cf5f53c8e3f759e1af0db6372b7dd84bd..8a009baa78d71377173c64d9af27827c4b97b0a2 100644 GIT binary patch delta 2607 zcmcbhvOr^kCL`NKtjDq|HiA5!uC7Jno3MGk2IjNKHG0JT0(`4DagGHXP-c>n1PUX zU4{I#wBpnfuvUfQ%&JrfE43myH8rJJAqH%iLUKlC0Ya7wyRl%`D`X@VE9B)Xl%y8r zX67Z9WagzSq~?_rRq80@<(DXc9nHnS(7^6s!ZZ0EtC(*H!yo&QS_X%nhA;LWAHLfE z-~azVg8&0VBf}s2`AmQ83m*NlXJBAt`2U}QVLihi`~UI`4A&X{*sC)Bv3F$rW1r3V z$G)BMkNqyjKlX1YJF>~MN;Cbj&!3#i=3Kvo>5u(+ra$%!3`PtOz_f!s2g4uxB~uw3 zxS9Xh`!WBq?_~zb7ula-{$qcD<&XUhJvIj>1qOyQEPw3(viz}UXZ>UU|NnmmOV&U3 ziL8I@+gShDuVMXTzbb%%;W6tUdoi{@_DXDj>?_#**c%=WTo`bG!QqF(7yBOuUnUE) z8`LlQ|A2#G!Qulv5(_k%Wj`=5m?bg<&in5;?|;Bj1&1vPPeT|MSSj48dODwBFW14@ z{};~uf0y+wOXDn%zBWzbq!-8E32mAjo?El|5 z0i;rC0mB3a1}6@to)9$=cQ+9RhDjXEJ&|hlC;5-DGBC`L@X(m4VmRd0^&{7DqVqDq^iX@}|3l09?V05~e4G*uG!h%dL25TGSO5}PlxWVw zvXudPanphW zQoD6{8Vx|=AZ42tELe0)04%2c{{e>{3CAg}ZMZ`<|1Q5mGPO_pK7!iLn# z|HZNx7cE$@YT?sMlRt8b)u&$kFJ{H4q-bEIsHSx2zk$*t0i_KZNo~9gU{$H-|MyfW zDQdKR|Ifg{@U#$Q>gRvQ7Jzt4icDdj7?c!Q&P+-z07<<2*EZ|_p@lLEixf63U_5ZJ zVQBz^E!P~brFo!`y!LP5^M7}l-ZHcKF&tX(0HR3d)In8y23xM4U#U4DMQ8sly#Mbm zQ=2dYL*v)Ui?|&4(m}#I{w+NH?=ExWj>#Xmq-2i#+j#Wfta;O|d7KnogB0DmU2^#r zEnt{<;NQlBlhwFY>UaE`xaQxfbH^9@xKEK3{FZ6kj!S3#L!p@Qro2H19r5TBST{OKPNT@u@c6mUSQ9a z{##i5uhAW(3Q~du7X35dD*n_1;u<-3%&j+ zTv7m)atsU(2_jGR)14fq}uGKtxQOQPmnOZ}xAY-9LlN z3T)s1i%sQlaB_@gVv}QFXq5lgkSfq<{BM#5!}JKT;6)1HG1U|lati-$FfP>m*ZA@80}ciru0|1%0yi-RhD?q|K@hu9 zak3hpyap?Xy_U5RLNo1UKFiW54ieMlTFctV0AhVJ;xrVToXck<&-QPQu&Or5c(#8F zS^nK+Z9D-oek}_Rw@gptv&sAT420Fd9{c?F5i{e$Pk%vv-!hqzU&;RE-|4&Ln-m!o zAO980U{qBCD|_^J;gi2N#2S}?j8VMvx4X5IeTLYq2x((;6=AVYzj(OUvhnonWN+L% zIf;M2zA(t@Wq%j0`rDWZ(!nOiP`LDOfYJf=?UG`LSyTl<^7H;KT>Mwzl0sv`xt{e8s9f0wN>2&7T5YjVGUSbZWxFNE*1R&vXr3*0N4@+1ONa4 delta 2113 zcmZ3WaY1E*CL`-atH{dXJBYxcZlJhe2-1ccU1rbLr5)yLr=pOdyfxa z?f>up|DQpCfgyz9k9`r-ANztwzw8+p7#aTmXJBYz_+$THo`GQ%!yo$}41erJ82{MY zG5)cSV*F#@%lOCsz+^{udDeG~f9#zmr?NXol{5XZU&Qpso`J!LVKbO^u;*a-W4~l7 zgTp~FLDvH$=7KLao8 zAA3{QKlV|qf9xArCyQ}7)-V76fP-Pd;sZPq3pAQ#KQJ(uIWhz;{_nW>f51`&hb;UW3I7 zPa_zV7BEg=U|?Wy;$Z3tQ4?`@6JcPO#KGJXsdke87%KxqgoKAiq*A@7ksBYBT}EX?`OBQ162X(B_M?DJ@_!urd7>%%Pb2 z-@vFriJ5_itFazrgJIJDgGv7{#{K`8^nV5OflZ8$7BVzef@FBO8Y`f5If!1%`1Ixf zJ5o#Q81`~yER6Vn(EER*4@g4x!y-inv0GxB6d4tR|8F-EO08j7uuI{f^Z$hb|8EHD z@VRYdSZc+vKuaOaig9TbC>m`3FSPo9gYku6+bRYI2BQTB_A=@4NG)!R1DUsI!GcYf z1ax?$Ry9UV4&YJA_4KxxP6+sF&Em!~&S(Iqb!?KpyDN&?bhLGGzEzn ztWxNim6{6*Ke7L9yZ$%of<%wWGAvlwu=L7*u`I?#3l^+esCwmp&n_iJ4I@PZ1?A#n z%nS^R790R6xis03TQvL_F9TTF(hL84s+1Hp+P?p1U|@Kf1~T^VzhetPJS9b@FeXMN zMV2#*Qd2<^KmN7N`pPaRwuz+lTYhihpvD9|4KTljJETyANhL=f-# zzlAUV-DPSMW?*RiKlv25gG&rZ_|U(FSO48*Zannw0S5ypaWgzpbm^J5=-eM3js@+L z8&)VxJoj(o`G2$KO}FN8QgjVcbnAA>Z#s%;NOOQ4cm8?i+QncQgofTck)CY5$hmu6wm(mNYUq$qVK}3AUkJ4?Odej_LQGt z!7PQaRg6#lL9UwkZ{ga1mlWL|DY`aJnEZf8gmL5KuRIF&OF=q#xEjH9VaGqkS^uhB z6w(9~LIoTgzVdLLWxLDzmt`;4qXiC)i$H220zBM4d^}Q(b0>%Js@6{di!w=Q=Nuj`0~b)<@nll0{dYit!AXe$l9`N>7#izAYMT^&z@cU4$dK6h z&xwsetb}o?J=ll!{}$H%YYYUbQd+<;fq@~g=AZdi@u#*RZ&mzTSg8r}xhF{84HU&| zSqhW>HKv33Ygr)lN3VYcMFN2ZlNI^II8&f9v6CJ6MC#-IH8C-)u~@W#p)m*~!NUco zvRWL;fjTQUDcB3=9qlB4X1R zRgJ(>9{(2l|8uya&?pHq%gu~|fx)0aL`}IkSfq<`)`s4!*sFWMGF|35*Zq`K!)&e!RUil|Mqg-W%J?Vk#E!nNp&#J z`L&WURSOg_TK{e^E;Rnv`1|hz4p31e2U6fB#=wxt(I^dKH){WrF7KKg#4oME58|(7 zZG_NFdzsI&G%A9`bh*~DHgbVj-;6j7r6*72Hp;dRKAW5`AjNoma+kn`y;TVo7JqvDjmvLAX{G+B6< zWIyO~$$rpf0mr2yL*opv{M5e+T8k9)9A!V4IWkO~^7nuOLkDL=gG!jk|A`Zkc_3{J zW{C_-|NdXg*f04S~t$h1iVS|0=eEG<7odG96H0(BKFw`k(si xe`C|%iA^B!6&w?0DI8E>n3Tb=u>S8RMTW-u%^bq~jDo7dKfo4%sy`6k1OPSDOTGXA diff --git a/tools/sdk/include/config/sdkconfig.h b/tools/sdk/include/config/sdkconfig.h index 810babc7..c1d6627d 100644 --- a/tools/sdk/include/config/sdkconfig.h +++ b/tools/sdk/include/config/sdkconfig.h @@ -24,12 +24,14 @@ #define CONFIG_EMAC_TASK_PRIORITY 20 #define CONFIG_ULP_COPROC_RESERVE_MEM 512 #define CONFIG_ESPTOOLPY_BAUD 921600 +#define CONFIG_ESPTOOLPY_AFTER_RESET 1 #define CONFIG_TOOLPREFIX "xtensa-esp32-elf-" #define CONFIG_CONSOLE_UART_NUM 0 #define CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC 1 #define CONFIG_LWIP_THREAD_LOCAL_STORAGE_INDEX 0 #define CONFIG_CONSOLE_UART_DEFAULT 1 #define CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN 16384 +#define CONFIG_ESPTOOLPY_FLASHSIZE_DETECT 1 #define CONFIG_AUTOSTART_ARDUINO 1 #define CONFIG_ESP32_ENABLE_STACK_WIFI 1 #define CONFIG_LOG_DEFAULT_LEVEL_ERROR 1 @@ -37,6 +39,7 @@ #define CONFIG_MAIN_TASK_STACK_SIZE 4096 #define CONFIG_ESPTOOLPY_FLASHMODE "dio" #define CONFIG_BTC_TASK_STACK_SIZE 2048 +#define CONFIG_ESPTOOLPY_BEFORE "default_reset" #define CONFIG_LOG_DEFAULT_LEVEL 1 #define CONFIG_ULP_COPROC_ENABLED 1 #define CONFIG_DMA_RX_BUF_NUM 10 @@ -59,8 +62,11 @@ #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_MONITOR_BAUD_115200B 1 #define CONFIG_LOG_BOOTLOADER_LEVEL 1 +#define CONFIG_ESPTOOLPY_BEFORE_RESET 1 #define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200 +#define CONFIG_ENABLE_ARDUINO_DEPENDS 1 #define CONFIG_ESP32_DEFAULT_CPU_FREQ_240 1 +#define CONFIG_ESPTOOLPY_AFTER "hard_reset" #define CONFIG_LWIP_SO_REUSE 1 #define CONFIG_DMA_TX_BUF_NUM 10 #define CONFIG_BT_ENABLED 1 @@ -74,6 +80,7 @@ #define CONFIG_ESPTOOLPY_BAUD_921600B 1 #define CONFIG_APP_OFFSET 0x10000 #define CONFIG_MEMMAP_SMP 1 +#define CONFIG_LWIP_SO_RCVBUF 1 #define CONFIG_MBEDTLS_HARDWARE_MPI 1 #define CONFIG_MONITOR_BAUD_OTHER_VAL 115200 #define CONFIG_ESPTOOLPY_PORT "/dev/tty.SLAB_USBtoUART" diff --git a/tools/sdk/include/driver/driver/i2c.h b/tools/sdk/include/driver/driver/i2c.h new file mode 100644 index 00000000..69b80b1e --- /dev/null +++ b/tools/sdk/include/driver/driver/i2c.h @@ -0,0 +1,514 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_I2C_H_ +#define _DRIVER_I2C_H_ + + +#ifdef __cplusplus +extern "C" { +#endif +#include +#include "esp_err.h" +#include "esp_intr_alloc.h" +#include "freertos/FreeRTOS.h" +#include "freertos/semphr.h" +#include "freertos/xtensa_api.h" +#include "freertos/task.h" +#include "freertos/queue.h" +#include "freertos/ringbuf.h" +#include "driver/gpio.h" + +#define I2C_APB_CLK_FREQ APB_CLK_FREQ /*!< I2C source clock is APB clock, 80MHz */ +#define I2C_FIFO_LEN (32) /*!< I2C hardware fifo length */ +typedef enum{ + I2C_MODE_SLAVE = 0, /*!< I2C slave mode */ + I2C_MODE_MASTER, /*!< I2C master mode */ + I2C_MODE_MAX, +}i2c_mode_t; + +typedef enum { + I2C_MASTER_WRITE = 0, /*!< I2C write data */ + I2C_MASTER_READ, /*!< I2C read data */ +} i2c_rw_t; + +typedef enum { + I2C_DATA_MODE_MSB_FIRST = 0, /*!< I2C data msb first */ + I2C_DATA_MODE_LSB_FIRST = 1, /*!< I2C data lsb first */ + I2C_DATA_MODE_MAX +} i2c_trans_mode_t; + +typedef enum{ + I2C_CMD_RESTART = 0, /*!=0) The number of data bytes that pushed to the I2C slave buffer. + */ +int i2c_slave_write_buffer(i2c_port_t i2c_num, uint8_t* data, int size, portBASE_TYPE ticks_to_wait); + +/** + * @brief I2C slave read data from internal buffer. When I2C slave receive data, isr will copy received data + * from hardware rx fifo to internal ringbuffer. Then users can read from internal ringbuffer. + * @note + * Only call this function in I2C slave mode + * + * @param i2c_num I2C port number + * @param data data pointer to write into internal buffer + * @param max_size Maximum data size to read + * @param ticks_to_wait Maximum waiting ticks + * + * @return + * - ESP_FAIL(-1) Parameter error + * - Others(>=0) The number of data bytes that read from I2C slave buffer. + */ +int i2c_slave_read_buffer(i2c_port_t i2c_num, uint8_t* data, size_t max_size, portBASE_TYPE ticks_to_wait); + +/** + * @brief set I2C master clock period + * + * @param i2c_num I2C port number + * @param high_period clock cycle number during SCL is high level, high_period is a 14 bit value + * @param low_period clock cycle number during SCL is low level, low_period is a 14 bit value + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_set_period(i2c_port_t i2c_num, int high_period, int low_period); + +/** + * @brief get I2C master clock period + * + * @param i2c_num I2C port number + * @param high_period pointer to get clock cycle number during SCL is high level, will get a 14 bit value + * @param low_period pointer to get clock cycle number during SCL is low level, will get a 14 bit value + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2s_get_period(i2c_port_t i2c_num, int* high_period, int* low_period); + +/** + * @brief set I2C master start signal timing + * + * @param i2c_num I2C port number + * @param setup_time clock number between the falling-edge of SDA and rising-edge of SCL for start mark, it's a 10-bit value. + * @param hold_time clock num between the falling-edge of SDA and falling-edge of SCL for start mark, it's a 10-bit value. + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_set_start_timing(i2c_port_t i2c_num, int setup_time, int hold_time); + +/** + * @brief get I2C master start signal timing + * + * @param i2c_num I2C port number + * @param setup_time pointer to get setup time + * @param hold_time pointer to get hold time + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_get_start_timing(i2c_port_t i2c_num, int* setup_time, int* hold_time); + +/** + * @brief set I2C master stop signal timing + * + * @param i2c_num I2C port number + * @param setup_time clock num between the rising-edge of SCL and the rising-edge of SDA, it's a 10-bit value. + * @param hold_time clock number after the STOP bit's rising-edge, it's a 14-bit value. + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_set_stop_timing(i2c_port_t i2c_num, int setup_time, int hold_time); + +/** + * @brief get I2C master stop signal timing + * + * @param i2c_num I2C port number + * @param setup_time pointer to get setup time. + * @param hold_time pointer to get hold time. + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_get_stop_timing(i2c_port_t i2c_num, int* setup_time, int* hold_time); + +/** + * @brief set I2C data signal timing + * + * @param i2c_num I2C port number + * @param sample_time clock number I2C used to sample data on SDA after the rising-edge of SCL, it's a 10-bit value + * @param hold_time clock number I2C used to hold the data after the falling-edge of SCL, it's a 10-bit value + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_set_data_timing(i2c_port_t i2c_num, int sample_time, int hold_time); + +/** + * @brief get I2C data signal timing + * + * @param i2c_num I2C port number + * @param sample_time pointer to get sample time + * @param hold_time pointer to get hold time + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_get_data_timing(i2c_port_t i2c_num, int* sample_time, int* hold_time); + +/** + * @brief set I2C data transfer mode + * + * @param i2c_num I2C port number + * @param tx_trans_mode I2C sending data mode + * @param rx_trans_mode I2C receving data mode + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_set_data_mode(i2c_port_t i2c_num, i2c_trans_mode_t tx_trans_mode, i2c_trans_mode_t rx_trans_mode); + +/** + * @brief get I2C data transfer mode + * + * @param i2c_num I2C port number + * @param tx_trans_mode pointer to get I2C sending data mode + * @param rx_trans_mode pointer to get I2C receiving data mode + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t i2c_get_data_mode(i2c_port_t i2c_num, i2c_trans_mode_t *tx_trans_mode, i2c_trans_mode_t *rx_trans_mode); + +#ifdef __cplusplus +} +#endif + +#endif /*_DRIVER_I2C_H_*/ diff --git a/tools/sdk/include/driver/driver/i2s.h b/tools/sdk/include/driver/driver/i2s.h new file mode 100644 index 00000000..d44bb676 --- /dev/null +++ b/tools/sdk/include/driver/driver/i2s.h @@ -0,0 +1,380 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_I2S_H_ +#define _DRIVER_I2S_H_ +#include "esp_err.h" +#include +#include "soc/gpio_reg.h" +#include "soc/soc.h" +#include "soc/i2s_struct.h" +#include "soc/i2s_reg.h" +#include "soc/rtc_io_reg.h" +#include "soc/io_mux_reg.h" +#include "rom/gpio.h" +#include "esp_attr.h" +#include "esp_intr_alloc.h" +#include "driver/periph_ctrl.h" +#include "freertos/semphr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define I2S_PIN_NO_CHANGE (-1) + + +/** + * @brief I2S bit width per sample. + * + */ +typedef enum { + I2S_BITS_PER_SAMPLE_8BIT = 8, /*!< I2S bits per sample: 8-bits*/ + I2S_BITS_PER_SAMPLE_16BIT = 16, /*!< I2S bits per sample: 16-bits*/ + I2S_BITS_PER_SAMPLE_24BIT = 24, /*!< I2S bits per sample: 24-bits*/ + I2S_BITS_PER_SAMPLE_32BIT = 32, /*!< I2S bits per sample: 32-bits*/ +} i2s_bits_per_sample_t; + +/** + * @brief I2S communication standard format + * + */ +typedef enum { + I2S_COMM_FORMAT_I2S = 0x01, /*!< I2S communication format I2S*/ + I2S_COMM_FORMAT_I2S_MSB = 0x02, /*!< I2S format MSB*/ + I2S_COMM_FORMAT_I2S_LSB = 0x04, /*!< I2S format LSB*/ + I2S_COMM_FORMAT_PCM = 0x08, /*!< I2S communication format PCM*/ + I2S_COMM_FORMAT_PCM_SHORT = 0x10, /*!< PCM Short*/ + I2S_COMM_FORMAT_PCM_LONG = 0x20, /*!< PCM Long*/ +} i2s_comm_format_t; + + +/** + * @brief I2S channel format type + */ +typedef enum { + I2S_CHANNEL_FMT_RIGHT_LEFT = 0x00, + I2S_CHANNEL_FMT_ALL_RIGHT, + I2S_CHANNEL_FMT_ALL_LEFT, + I2S_CHANNEL_FMT_ONLY_RIGHT, + I2S_CHANNEL_FMT_ONLY_LEFT, +} i2s_channel_fmt_t; + +/** + * @brief PDM sample rate ratio, measured in Hz. + * + */ +typedef enum { + PDM_SAMPLE_RATE_RATIO_64, + PDM_SAMPLE_RATE_RATIO_128, +} pdm_sample_rate_ratio_t; + +/** + * @brief PDM PCM convter enable/disable. + * + */ +typedef enum { + PDM_PCM_CONV_ENABLE, + PDM_PCM_CONV_DISABLE, +} pdm_pcm_conv_t; + + +/** + * @brief I2S Peripheral, 0 & 1. + * + */ +typedef enum { + I2S_NUM_0 = 0x0, /*!< I2S 0*/ + I2S_NUM_1 = 0x1, /*!< I2S 1*/ + I2S_NUM_MAX, +} i2s_port_t; + +/** + * @brief I2S Mode, defaut is I2S_MODE_MASTER | I2S_MODE_TX + * + */ +typedef enum { + I2S_MODE_MASTER = 1, + I2S_MODE_SLAVE = 2, + I2S_MODE_TX = 4, + I2S_MODE_RX = 8, + I2S_MODE_DAC_BUILT_IN = 16 +} i2s_mode_t; + +/** + * @brief I2S configuration parameters for i2s_param_config function + * + */ +typedef struct { + i2s_mode_t mode; /*!< I2S work mode*/ + int sample_rate; /*!< I2S sample rate*/ + i2s_bits_per_sample_t bits_per_sample; /*!< I2S bits per sample*/ + i2s_channel_fmt_t channel_format; /*!< I2S channel format */ + i2s_comm_format_t communication_format; /*!< I2S communication format */ + int intr_alloc_flags; /*!< Flags used to allocate the interrupt. One or multiple (ORred) ESP_INTR_FLAG_* values. See esp_intr_alloc.h for more info */ + int dma_buf_count; /*!< I2S DMA Buffer Count */ + int dma_buf_len; /*!< I2S DMA Buffer Length */ +} i2s_config_t; + +/** + * @brief I2S event types + * + */ +typedef enum { + I2S_EVENT_DMA_ERROR, + I2S_EVENT_TX_DONE, /*!< I2S DMA finish sent 1 buffer*/ + I2S_EVENT_RX_DONE, /*!< I2S DMA finish received 1 buffer*/ + I2S_EVENT_MAX, /*!< I2S event max index*/ +} i2s_event_type_t; + +/** + * @brief Event structure used in I2S event queue + * + */ +typedef struct { + i2s_event_type_t type; /*!< I2S event type */ + size_t size; /*!< I2S data size for I2S_DATA event*/ +} i2s_event_t; + +/** + * @brief I2S pin number for i2s_set_pin + * + */ +typedef struct { + int bck_io_num; /*!< BCK in out pin*/ + int ws_io_num; /*!< WS in out pin*/ + int data_out_num; /*!< DATA out pin*/ + int data_in_num; /*!< DATA in pin*/ +} i2s_pin_config_t; + +typedef intr_handle_t i2s_isr_handle_t; +/** + * @brief Set I2S pin number + * + * @note + * Internal signal can be output to multiple GPIO pads + * Only one GPIO pad can connect with input signal + * + * @param i2s_num I2S_NUM_0 or I2S_NUM_1 + * + * @param pin I2S Pin struct, or NULL for 2-channels, 8-bits DAC pin configuration (GPIO25 & GPIO26) + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_set_pin(i2s_port_t i2s_num, const i2s_pin_config_t *pin); + +/** + * @brief i2s install and start driver + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param i2s_config I2S configurations - see i2s_config_t struct + * + * @param queue_size I2S event queue size/depth. + * + * @param i2s_queue I2S event queue handle, if set NULL, driver will not use an event queue. + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_driver_install(i2s_port_t i2s_num, const i2s_config_t *i2s_config, int queue_size, void* i2s_queue); + +/** + * @brief Uninstall I2S driver. + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_driver_uninstall(i2s_port_t i2s_num); + +/** + * @brief i2s read data buffer to i2s dma buffer + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param src source address to write + * + * @param size size of data (size in bytes) + * + * @param ticks_to_wait Write timeout + * + * @return number of written bytes + */ +int i2s_write_bytes(i2s_port_t i2s_num, const char *src, size_t size, TickType_t ticks_to_wait); + +/** + * @brief i2s write data buffer to i2s dma buffer + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param dest destination address to read + * + * @param size size of data (size in bytes) + * + * @param ticks_to_wait Read timeout + * + * @return number of read bytes + */ +int i2s_read_bytes(i2s_port_t i2s_num, char* dest, size_t size, TickType_t ticks_to_wait); + +/** + * @brief i2s push 1 sample to i2s dma buffer, with the size parameter equal to one sample's size in bytes = bits_per_sample/8. + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param sample destination address to write (depend on bits_per_sample, size of sample (in bytes) = 2*bits_per_sample/8) + * + * @param ticks_to_wait Push timeout + * + * @return number of push bytes + */ +int i2s_push_sample(i2s_port_t i2s_num, const char *sample, TickType_t ticks_to_wait); + +/** + * @brief Pop 1 sample to i2s dma buffer, with the size parameter equal to one sample's size in bytes = bits_per_sample/8. + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param sample destination address to write (depend on bits_per_sample, size of sample (in bytes) = 2*bits_per_sample/8) + * + * @param ticks_to_wait Pop timeout + * + * @return number of pop bytes + */ +int i2s_pop_sample(i2s_port_t i2s_num, char *sample, TickType_t ticks_to_wait); + + +/** + * @brief Set clock rate used for I2S RX and TX + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @param rate I2S clock (ex: 8000, 44100...) + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_set_sample_rates(i2s_port_t i2s_num, uint32_t rate); + +/** + * @brief Start driver + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * +* @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_start(i2s_port_t i2s_num); + +/** + * @brief Stop driver + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_stop(i2s_port_t i2s_num); + +/** + * @brief Set the TX DMA buffer contents to all zeroes + * + * @param i2s_num I2S_NUM_0, I2S_NUM_1 + * + * @return + * - ESP_OK Success + * - ESP_FAIL Parameter error + */ +esp_err_t i2s_zero_dma_buffer(i2s_port_t i2s_num); + +/***************************EXAMPLE********************************** + * + * + * ----------------EXAMPLE OF I2S SETTING --------------------- + * @code{c} + * + * #include "freertos/queue.h" + * #define I2S_INTR_NUM 17 //choose one interrupt number from soc.h + * int i2s_num = 0; //i2s port number + * i2s_config_t i2s_config = { + * .mode = I2S_MODE_MASTER | I2S_MODE_TX, + * .sample_rate = 44100, + * .bits_per_sample = 16, //16, 32 + * .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, //format LEFT_RIGHT + * .communication_format = I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB, + * .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, + * .dma_buf_count = 8, + * .dma_buf_len = 64 + * }; + * + * i2s_pin_config_t pin_config = { + * .bck_io_num = 26, + * .ws_io_num = 25, + * .data_out_num = 22, + * .data_in_num = I2S_PIN_NO_CHANGE + * }; + * + * i2s_driver_install(i2s_num, &i2s_config, 0, NULL); //install and start i2s driver + * + * i2s_set_pin(i2s_num, &pin_config); + * + * i2s_set_sample_rates(i2s_num, 22050); //set sample rates + * + * + * i2s_driver_uninstall(i2s_num); //stop & destroy i2s driver + *@endcode + * + * ----------------EXAMPLE USING I2S WITH DAC --------------------- + * @code{c} + * + * #include "freertos/queue.h" + * #define I2S_INTR_NUM 17 //choose one interrupt number from soc.h + * int i2s_num = 0; //i2s port number + * i2s_config_t i2s_config = { + * .mode = I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN, + * .sample_rate = 44100, + * .bits_per_sample = 8, // Only 8-bit DAC support + * .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // + * .communication_format = I2S_COMM_FORMAT_I2S_MSB, + * .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, + * .dma_buf_count = 8, + * .dma_buf_len = 64 + * }; + * + * + * i2s_driver_install(i2s_num, &i2s_config, 0, NULL); //install and start i2s driver + * + * i2s_set_pin(i2s_num, NULL); //for internal DAC + * + * i2s_set_sample_rates(i2s_num, 22050); //set sample rates + * + * i2s_driver_uninstall(i2s_num); //stop & destroy i2s driver + *@endcode + *-----------------------------------------------------------------------------* + ***************************END OF EXAMPLE**********************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* _DRIVER_I2S_H_ */ diff --git a/tools/sdk/include/esp32/soc/cpu.h b/tools/sdk/include/esp32/soc/cpu.h index aa471a17..2e0ac7de 100644 --- a/tools/sdk/include/esp32/soc/cpu.h +++ b/tools/sdk/include/esp32/soc/cpu.h @@ -104,4 +104,13 @@ void esp_cpu_stall(int cpu_id); */ void esp_cpu_unstall(int cpu_id); +/** + * @brief Returns true if a JTAG debugger is attached to CPU + * OCD (on chip debug) port. + * + * @note If "Make exception and panic handlers JTAG/OCD aware" + * is disabled, this function always returns false. + */ +bool esp_cpu_in_ocd_debug_mode(); + #endif diff --git a/tools/sdk/include/esp32/soc/i2c_reg.h b/tools/sdk/include/esp32/soc/i2c_reg.h index d5c9858a..9693ca5b 100644 --- a/tools/sdk/include/esp32/soc/i2c_reg.h +++ b/tools/sdk/include/esp32/soc/i2c_reg.h @@ -261,6 +261,8 @@ #define I2C_RXFIFO_FULL_THRHD_V 0x1F #define I2C_RXFIFO_FULL_THRHD_S 0 +#define I2C_DATA_APB_REG(i) (0x60013000 + (i) * 0x14000 + 0x001c) + #define I2C_DATA_REG(i) (REG_I2C_BASE(i) + 0x001c) /* I2C_FIFO_RDATA : RO ;bitpos:[7:0] ;default: 8'b0 ; */ /*description: The register represent the byte data read from rxfifo when use apb fifo access*/ diff --git a/tools/sdk/include/esp32/soc/i2c_struct.h b/tools/sdk/include/esp32/soc/i2c_struct.h index a29a9c52..ea50d6be 100644 --- a/tools/sdk/include/esp32/soc/i2c_struct.h +++ b/tools/sdk/include/esp32/soc/i2c_struct.h @@ -16,7 +16,7 @@ typedef volatile struct { union { struct { - uint32_t scl_low_period:14; /*This register is used to configure the low level width of SCL clock.*/ + uint32_t period:14; /*This register is used to configure the low level width of SCL clock.*/ uint32_t reserved14: 18; }; uint32_t val; @@ -58,7 +58,7 @@ typedef volatile struct { } status_reg; union { struct { - uint32_t tout: 20; /*This register is used to configure the max clock number of receiving a data.*/ + uint32_t tout: 20; /*This register is used to configure the max clock number of receiving a data, unit: APB clock cycle.*/ uint32_t reserved20:12; }; uint32_t val; @@ -282,7 +282,7 @@ typedef volatile struct { uint32_t reserved_f4; uint32_t date; /**/ uint32_t reserved_fc; - uint32_t fifo_start_addr; /*This the start address for ram when use apb nonfifo access.*/ + uint32_t ram_data[32]; /*This the start address for ram when use apb nonfifo access.*/ } i2c_dev_t; extern i2c_dev_t I2C0; extern i2c_dev_t I2C1; diff --git a/tools/sdk/include/lwip/lwipopts.h b/tools/sdk/include/lwip/lwipopts.h index 9c2dee35..dd182923 100755 --- a/tools/sdk/include/lwip/lwipopts.h +++ b/tools/sdk/include/lwip/lwipopts.h @@ -440,7 +440,7 @@ /** * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. */ -#define LWIP_SO_RCVBUF 1 +#define LWIP_SO_RCVBUF CONFIG_LWIP_SO_RCVBUF /** * SO_REUSE==1: Enable SO_REUSEADDR option. diff --git a/tools/sdk/include/lwip/port/lwipopts.h b/tools/sdk/include/lwip/port/lwipopts.h index 9c2dee35..dd182923 100755 --- a/tools/sdk/include/lwip/port/lwipopts.h +++ b/tools/sdk/include/lwip/port/lwipopts.h @@ -440,7 +440,7 @@ /** * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. */ -#define LWIP_SO_RCVBUF 1 +#define LWIP_SO_RCVBUF CONFIG_LWIP_SO_RCVBUF /** * SO_REUSE==1: Enable SO_REUSEADDR option. diff --git a/tools/sdk/ld/esp32.common.ld b/tools/sdk/ld/esp32.common.ld index aafafbb4..09b76344 100644 --- a/tools/sdk/ld/esp32.common.ld +++ b/tools/sdk/ld/esp32.common.ld @@ -99,7 +99,7 @@ SECTIONS *(.sbss2.*) *(.gnu.linkonce.sb2.*) *(.dynbss) - KEEP(*(.bss)) + *(.bss) *(.bss.*) *(.share.mem) *(.gnu.linkonce.b.*) @@ -111,17 +111,17 @@ SECTIONS .dram0.data : { _data_start = ABSOLUTE(.); - KEEP(*(.data)) - KEEP(*(.data.*)) - KEEP(*(.gnu.linkonce.d.*)) - KEEP(*(.data1)) - KEEP(*(.sdata)) - KEEP(*(.sdata.*)) - KEEP(*(.gnu.linkonce.s.*)) - KEEP(*(.sdata2)) - KEEP(*(.sdata2.*)) - KEEP(*(.gnu.linkonce.s2.*)) - KEEP(*(.jcr)) + *(.data) + *(.data.*) + *(.gnu.linkonce.d.*) + *(.data1) + *(.sdata) + *(.sdata.*) + *(.gnu.linkonce.s.*) + *(.sdata2) + *(.sdata2.*) + *(.gnu.linkonce.s2.*) + *(.jcr) *(.dram1 .dram1.*) *libesp32.a:panic.o(.rodata .rodata.*) _data_end = ABSOLUTE(.); diff --git a/tools/sdk/lib/libapp_update.a b/tools/sdk/lib/libapp_update.a index 807a8374e6c99f05882666be137a61d3fdc70357..95efe756134031a56066f1d7be3a44356e916729 100644 GIT binary patch delta 29 gcmdnlap#tAZPW`-taMivv5jzL))-}zMn0Hc=*Z~y=R delta 29 gcmdnlap#tAZP2BsDUmL?OGjzL))-}zMn0HbvZZU6uP diff --git a/tools/sdk/lib/libbootloader_support.a b/tools/sdk/lib/libbootloader_support.a index 7c155cb405d1b5d3218d7ef0a00e4a198e99ed4d..b498f424c1ff6917daff215334e8fe04974a8137 100644 GIT binary patch delta 4776 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 delta 2892 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 UBE4R*vK}T4wq?8bluC6I0G^ROYybcN delta 2502 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 delta 943 zcmZqMW_)12+60+;15*n_BTEGZ0|gL3CKVJ+3=EAxq6!KLTnr2h8yOh*KTsLhe_&u_ zb)g6|v8`Yr8`mRi{?o$1^rwY^SucWaxSm|gSS39esDSHH3}LeiVL-vPG7M}~!0hQ6 z4A^l!E(w~7rx#@A$7kl16vb~o#azv}IgcZrTM8tom#+^=@CphFh9(xq;M`%p`Gv66 z*XdmWEF!F6f%e4#EZY|cu*Ne&_}kfoSg(JDvLCy%oi}6ytFvg|QOUM_MEt|Q2i01Ag3}$U(z5-;Ca(4qo4B{1*u-O}0RSB*x`hA$ diff --git a/tools/sdk/lib/libesp32.a b/tools/sdk/lib/libesp32.a index 597ba3e5902f34122df9401353b542a2b54bd084..cb5d1ddfc698d95a53934ed9dce097bb09833fae 100644 GIT binary patch delta 23616 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 z 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 Xm;mU^xp-qXcN>I&#P%ckZ2Q;&`@!9R diff --git a/tools/sdk/lib/libethernet.a b/tools/sdk/lib/libethernet.a index ce9dd091c96dbdacda8aa789f2afab90820ff8c1..01a9a57f993da07769263b8fed090ed837e228be 100644 GIT binary patch delta 51 wcmbQy&N`!=b%G3=nW2ffrNKreCnhL!vYnyW<_4x6dQg6|o#A#nL&hi}0Bk4?hX4Qo delta 51 wcmbQy&N`!=b%G3=fvJU|vEfD~CnhL!vYnyW<_4x6dQg6|o#A#nL&hi}0BKtdYybcN diff --git a/tools/sdk/lib/libexpat.a b/tools/sdk/lib/libexpat.a index 1cad02348024132348b82a00a47ea08fdae469ec..7a28c0578c905dc4234167f3329bec35ee8f1842 100644 GIT binary patch delta 198 zcmaFz+3v|_y9qL^W`-u_mKznlxgf0OLaz2gF2?pkE~fTEF6Q<^E|%?uT&(kVK%^%Z za*4O=9A@3FbC~VG42W3!$7uHUkI@|MAEPu}xd}3?W`-u_mKzm)g(0lT^3oEUyM_DNA>7UK()wNy=45$k@y%JO5~WDo zdAB@*;arLB%zBK^+1bD*nr#1I%2*}`;h0WVkQUqC6vAlX4^iE|e=+0s{fn9Qi$E1j z<6#%yK6?j~^c$$aWCdyQ_RC9{+b=I+*?xHm>-i-J39;?_JlVeVBMY3n$@YX7B47r# z?A&uU9TkXW+y8U3_e&s4u2Nw?qlhdp$&G!E07Uil|J>}7+kL{>Hz8>e-!5Ii-fsv1 D=}}uq delta 312 zcmZ2=SZ>u}xd}3?2BsE<#v2uVg(0lT^3oEUyM_DNA>7UK()wO(U^S+b6{N*BXQfJ% zBJ=0n@(4!o#kVu-F+OL93T*#i%2*}`<$!c=Zwg_w@Q0Y(zJD>}_Wg^Q_KQFjOygk} z-#&W>lk^*ifZ1dPY4P^UOPJd)FJak!c?s+JB?t+z?fX30zVsstoV&^Pgcn8NIh&3O x#Io)Gx!Lj&Cgi2KVxCcdk*Dqk9x!C^#A~R=MXah delta 48 ucmZ27lY7Zb?g=t%2BsE<#^xK9_OU>j&Cgi2KVxCcdk*Dqk9x!C^#A~PYY-R! diff --git a/tools/sdk/lib/liblog.a b/tools/sdk/lib/liblog.a index 582c0815a89e1f46e94d69fc6630c160de057f83..9376a7cfd972226431154d9411cfe35c1e80d4f8 100644 GIT binary patch delta 28 hcmX@Ll=0M3#tAa4W`-u_mJ=1%vVj?98?Sr|1OSeW3J(AP delta 28 hcmX@Ll=0M3#tAa42BsE<#uF9SvVj@q8?Sr|1OSb!3H$&6 diff --git a/tools/sdk/lib/liblwip.a b/tools/sdk/lib/liblwip.a index 71d7881e6c532e75514392850bb29ff0a6414a03..2d71df1443fb0badd948043b702235a246fba62e 100644 GIT binary patch delta 930 zcmaF%DEZl=2ZG%G|P9|ND0R?~MQB zkma{~hcTTNhKX!A&L+OyIE(3ZI7~z!K|p-F^&zHiH<$=m&0`Mc&rvXufXm{N)9+?8 zdv3Q&VQyeY7T$h0oB1SE#9}(gu=c~n%s5>jRwpbD#p-V!7_MLu{D79%TRTCtS0GL6Q~*2GbKxizjXWXTjY8 zwgw~;a9O-|JEtReCR_w;N52PmxdBWUIB=9Jxq|~i23r_R{~yC8v3>F>?&&-bf$jR& zx$URGl!FcE&gN;hg^7R-&|b;&I|HH~WPs#$7a?A~Hi!~Kuy^}s@NVy)!RPJ>6`W?x zF24QqO}=bNr~o+fw^x7Wn|%T%0yf%s5C8WRsK|B$MS*XEP!2e9wmTaO9M^%0Y!^rn zxWx`}#`gE=0+(eV5=P*Vyx$^ly9Fw_pHp!90|2)|niN$n*1Of5w)`yt7-H??$=3xFD1yd4mSzL1Z-E3yh z?RF{54eZFm+wW#GpM;87g3W3_T+G~lxR_=8;bK<)hY+=v(>H+Z{Sd;os|YHxeZz4! zuVRRm+y7g!Uw;FYm>zIhJZZa~21g6b*vSUp#oO=eb8Nq_&&eJLQwDZ7b0gE^{;c=Pl2$f^Ct*MZ12wI zX|{#vH-xxDdnM2B45-MoST2d}E<(I|ZBPNQcl&4XZttJL=k5pGt>O z0+(f=65x=$-y(3k1uD6pQ*inNs3gdo^y$Y>i;GR~O%M>>{_d5a2Q<8lKp_ZCDf2!F zHbBjuzMoT2V!QP(!PO!VGmNJa6Ylm&Kn$+0*?mi%UV0_`KWV&?IhRGTlHClsO)Y|6TymKmGhJ390R&EfS?>5P|LI JcS%e)0|4m}Eb0IN diff --git a/tools/sdk/lib/libmbedtls.a b/tools/sdk/lib/libmbedtls.a index eae4a5fffec09b7c2ed48479291ba16673279ec0..67c10b56147fa03d1d237026562d3303d7bf01c1 100644 GIT binary patch delta 1386 zcmezN^$;TnPmp0XGc>U<+^G20hYiFsFqt0ECLq39+xK?_Od!EPRD84ZvU+x~T7&85 z)wLuyKUf=N3{wEs;s4M%2O?lP{XrIs`1bX_jLlUr5s(?%{ZB9+c0v-7XgAUhDxuE!V?#C?oM2`w`}Y4+IhOlC_|xxau}Ew`{D?z(63m1I15t_X3-$`7F>X&P<6Ogn zP$=H6Rn56wtD5VBG(>Q_{B$n!c@T}};9%NbY|0&<2onMO`u#L+=h-k3u;BqlJVI

i%{|&zF`)}}fuZ7y^-zH$5j;vz);@bmr zschogKYtMj{{&P2T+sL$OcreWg1tg8+btmRa{jPTbTw4Xb_09iXPq!kf`Moq_(@Bvns2-ug+SA~OTK}0O4D@^AS-~KsYM1B{<71QGlL?yQyXo+gE zK?JtP8;B}Hg8-_0zL_ZdW{50Exy1IvFGZW7{<4I)Gx?+FYiKk$Dt*}mYnjGZpn)rQmO|CW*5{zpT0l^#Ua5ESI%+Yg7!2K&N9z(H=jRMxr@CIT|E zy<1Lhd$*kY?%Oa?u&a}Q$x8=7M2x0iP}h=ZpW~&_KF3RO`W!DME0_e>$j@F%#gGs- zG@jnDf>olu<*rhD%U$L6mb)tLEq7JhTkfiDZ@H^}N*JQg800vK?KvOSr6AF12o@3F zzWBTPWoW<{Ljq>b(GiE_4MP)18f>1e6TAmv2Ba9<{yAJXJ{2Yc z3bgI{dv!NM${<4%a5~#+uO~kNrUYzp^#r|S0f>kx#Ngix^u8~GiGV|y-$ma(A0`40 V%viJ>a>Z_;&8cEcr(vW^b=w!CK!0mu(Xe-!84q7M}%?ZLgoo zHobl-do`5%e=7U-|5G`ZLp^6U{XrIs`1Zq(IHV`Rj7TsLmDs*uuTUD}_M|e-H7pQu zbC620cCBj8?ON4bAEY7XZI_?UWj+t40_5xM#ircxi7*kc>F=j;JI{uRfK3lD;t^tl zh*(Sqg+zP31y6gu1@HEH3qIuqC^GwR@NM6JgTH$%)JFd{0rPZZ726lT6)=WIg~jxS zschogKYtMj{{&P2T+sL$l6tV;5VnI|c>b_ZbTvec<#q#m;b)yt&G81J^^DtRof2Nc z0uh-WZy=hyec5^81FTT>pl}i2-h5R!cos}VVLF%i_Rsku^1Be4B)1!AiE6Py1h&T; zh$=$^z;ZfR`Ft}`_RSDkkR1}+55E*`hWg49Vn^~v(bv#ef{J9fh#iNfD5x?1|HXng zB8-vTeqe(*)U&1r5M$nN6L)V1I~5`#u|332LZ}QT0t&$P<}DK2o3}_R^T0&GQG57+ zWOWft1Qc!Cqm8AmLmX*p07;qt)>6msK-3scU+`N-qTNJ7db^2)jMGk-C|Kv@i!$t5 zP?7Bme#_YDLOEbf+y7|DuF`{vfHfQrmksuXiGX9xc&V&)B}@dQroCHEZhN=Xfbu!6d*&e)du-h6J&x@$`ljtP<@lca_>( z?kcyp+*N6BxvSdVa#wA8%U$(T!VrDNpyVsDJ?Epk6eK=P!6M?@7k^j33=J7$NXSh7 zug)$CjvCYL^F=iD)nO)pbM$L#4eO_Hkv0K|?JkO%Txk#y6G$4#Zr6-o05PHcyt-EV zd3EjW=hbzpc_3oj{Y`YlAz8x|s-t8Q{S99IhLm3KIbZ+V=dtx|^LKCVnGeTI+Um4rKGBR%e%E-iA000tO4MG3_ delta 37 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 delta 4926 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 BP4fT% diff --git a/tools/sdk/lib/libnghttp.a b/tools/sdk/lib/libnghttp.a index fac1ba7af5ba585399fdf4fbf450a383e64bd486..dcbb58aba1b918d42c5b9ac85e573b2345e16575 100644 GIT binary patch delta 428 zcmeC1?bkQkZ-NY~nW2e=(MCm0BQVQwv%it^W(ae#zmfRnbx%uD*+6Ox%_j#KiM88# zGj6x@W}1=%Q8WF039Cf=`|V8a@3%8=f4`k&aS@Wl_Vrq<)?N^S?e9xi`(2TY+CFO+ zt3)NTz&T^KCwCwM79h*EpA%r;5)2iX{-K0beEa+q_TPF?1Lsd>XO>2h-M^0gzYUUz z#P&O{*;hG1MZiWb(&G>bgcvY={$zHE?U(C0E=xdFK8h!`xhU(4?>|>`#LxN?d#kGcG!XijSN6; nXm4r}*xuA4Sfhdv6yGkrQgE>#Q~>Ob_S?Gzx8L3+wD}SMXKaz& delta 428 zcmeC1?bkQkZ-NY~fvJU|*+xZ8BQVQ!v%it^W(ae#zmfRnbx%uD*+6Pc%_j#KiM88# zGj6x@W}1=%Q8WF039Cf=`|V8a@3%8=f4`k&aS@Wl_Vrq<)?N^S?e9xi`(2TY+CFO+ zt3)M4zyf6U_H)K;Pwt=y2(WJnh6+soP{Jy{eSQl2Z#}4i^Cz=2OQXo{U&sF621!I> z`<>V9tDK-BU^^D+afk#$446KDGP}g~%k>!Gb{w9;(XEFfl6{c zyuJGuM|<}#&i3wKTkz{R0ov4?l?b_P5bY@dqI6 z_COit?SV2Z)z6^(i%hKBFEX*2yFmEUAD&_tZ&z_=+pglyzM~l;xc%WN_T%*cJhLaO delta 119 zcmZ26RdK~s#R)R32BsEkz{R0ov4?l?b_P5bY@dqI6 z_COit?SV2Z)z6^(i%hKBFEX*2yFmEUAD&_tZ&z_=+pglyzM~l;xc%WN_T%*cI>{%b diff --git a/tools/sdk/lib/libopenssl.a b/tools/sdk/lib/libopenssl.a index ff15d24a3e513cc6cbc8081821953dcfaeb3972a..19a0350a82c3ab691fa1c984505c78b8e3c4871b 100644 GIT binary patch delta 126 zcmaEGg8#t@{s}UyW`-sfMjI8`c_FOLy1c)YAk1c6gYCKojH}}z-0gS!8CPdO*}Xp) qABVGn^_oo9;}zT96Toyw8Y-Ea!?Za8S<>b#lh0?UWbXmy%gO+$+b44X delta 126 zcmaEGg8#t@{s}Uy2BsEb#lh0?UWbXmy%gO+!J|}7b diff --git a/tools/sdk/lib/libspi_flash.a b/tools/sdk/lib/libspi_flash.a index dae5efec90a6a502f4673646d87fce1a437e3e12..9b0aa552fc10e3ecbc273faff885634c1f99a135 100644 GIT binary patch delta 86 zcmeA>%i4FAb%G45nW2e=(MH8UW(aFCzn#S9e&%W`2zN8Towo~=8Q(NH6T+Mv-z2e_ T|BZYKl*?}?zTGQ;(M1dZFqIfU delta 86 zcmeA>%i4FAb%G45fvJU|*+#`cW(aFCzn#S9e&%W`2zN8Towo~=8Q(NH6T+Mv-z2e_ T|BZYKl*?}?zTGQ;(M1dZFHsme diff --git a/tools/sdk/lib/libtcpip_adapter.a b/tools/sdk/lib/libtcpip_adapter.a index dab642d11f302b42eca34f56cbcd3125c5a9922e..1b4e4759ffbfb5fc1a6a514a89db86ad907e3de4 100644 GIT binary patch delta 33 kcmdlsn`PT diff --git a/tools/sdk/lib/libvfs.a b/tools/sdk/lib/libvfs.a index 3274ce81ce73dbabbcdf32d84f2e72088773a967..e0ff0888149cb8b1c0945c293be246158bd435ec 100644 GIT binary patch delta 40 mcmdn?o_X7Q<_R*aW`-sfMjI6s86m9A?u^oNpv?5S{!su2Qw$*h delta 40 mcmdn?o_X7Q<_R*a2BsEh5nF%tiW`-sfMjI7Bb3j;=FII>zHsDl)^CUL=>eqWhxSKClu-ieHlP^|C zZ2r3KxIUaKzWK(p6|zw7!DkZN=dv)yL(OkzRAk)FsL1603L-z9QISz%dnz|`yEQ~$ z`$sosX*nocFqK)^48n#e44lnu?*A>^ z5=@|#MSS}nPqqXVgn-0$%RDxIXoyT#%wv<-o;sH;+!Uf>`@u_W^|}x?NK$-j4EqBa E0II@skN^Mx delta 396 zcmdn9OJ>h5nF%ti2BsEzHsDl)^CUL=>eqWhxSKClu-ieHlP^|C zZ2r3KxITnC{i7SR#O9mNmdhgXx6fr^jECCL&Zx+^ol%j={S{OJqavfk_Ec`>c58^h z_K$AN(sEF?U@Eh+8H7C@tT1pkv%MQaKz#d}hs+jXFo9MU@og3?CQ?woVji31_Mjk^ zRYnkj?ToD~zg=MLQ!Lz(P`02l>tsa;dpct)i}>~fF02#UkOgv1vua4g1WvI?Y~T2d z^?edd0HkG)CtHFFRN&wxHi_+)d2IZ!Pyq|1&SeWXg{atm@Df|SE`&Y(;3YQktugEm FWB@DwbBzE1 diff --git a/tools/sdk/lib/libxtensa-debug-module.a b/tools/sdk/lib/libxtensa-debug-module.a index 9c172cb1142b4f43cbb9852d92c8a6b32fb485b1..a5ac9512479acfd0ce15098c3d81e7ddd23af3b0 100644 GIT binary patch delta 36 jcmbOhH!W_046B);iG|Tb#f1>Y#^d??5Y}dEf!lHb&oT=0 delta 36 jcmbOhH!W_046A{ug`wF*#f1>Y#^d??5Y}dEf!lHb&f*I2