资源简介

打开路径 C:\Users\你的用户名\Documents\ArduinoData\staging\packages 把下载好了的安装包(zip格式)拖进去。 可用直接安装,免去使用IDE下载开发版的漫长过程

资源截图

代码片段和文件信息

/* Copyright (c) 2015-2016 Ivan Grokhotkov. All rights reserved.
 * This file is part of eboot bootloader.
 *
 * Redistribution and use is permitted according to the conditions of the
 * 3-clause BSD license to be found in the LICENSE file.
 */


#include 
#include 
#include 
#include 
#include “flash.h“
#include “eboot_command.h“
#include 

extern unsigned char _gzip_dict;

#define SWRST do { (*((volatile uint32_t*) 0x60000700)) |= 0x80000000; } while(0);

extern void ets_wdt_enable(void);
extern void ets_wdt_disable(void);

int print_version(const uint32_t flash_addr)
{
    uint32_t ver;
    if (SPIRead(flash_addr + APP_START_OFFSET + sizeof(image_header_t) + sizeof(section_header_t) &ver sizeof(ver))) {
        return 1;
    }
    char fmt[7];
    fmt[0] = ‘v‘;
    fmt[1] = ‘%‘;
    fmt[2] = ‘0‘;
    fmt[3] = ‘8‘;
    fmt[4] = ‘x‘;
    fmt[5] = ‘\n‘;
    fmt[6] = 0;
    ets_printf((const char*) fmt ver);
    return 0;
}

int load_app_from_flash_raw(const uint32_t flash_addr)
{
    image_header_t image_header;
    uint32_t pos = flash_addr + APP_START_OFFSET;

    if (SPIRead(pos &image_header sizeof(image_header))) {
        return 1;
    }
    pos += sizeof(image_header);


    for (uint32_t section_index = 0;
        section_index < image_header.num_segments;
        ++section_index)
    {
        section_header_t section_header = {0};
        if (SPIRead(pos §ion_header sizeof(section_header))) {
            return 2;
        }
        pos += sizeof(section_header);

        const uint32_t address = section_header.address;

        bool load = false;

        if (address < 0x40000000) {
            load = true;
        }

        if (address >= 0x40100000 && address < 0x40108000) {
            load = true;
        }

        if (address >= 0x60000000) {
            load = true;
        }

        if (!load) {
            pos += section_header.size;
            continue;
        }

        if (SPIRead(pos (void*)address section_header.size))
            return 3;

        pos += section_header.size;
    }

    asm volatile(““ ::: “memory“);
    asm volatile (“mov.n a1 %0\n“
        “mov.n a3 %1\n“
        “jx a3\n“ : : “r“ (0x3ffffff0) “r“ (image_header.entry) );

    __builtin_unreachable(); // Save a few bytes by letting GCC know no need to pop regs/return
    return 0;
}

uint8_t read_flash_byte(const uint32_t addr)
{
    uint8_t __attribute__((aligned(4))) buff[4];
    SPIRead(addr & ~3 buff 4);
    return buff[addr & 3];
}
unsigned char __attribute__((aligned(4))) uzlib_flash_read_cb_buff[4096];
uint32_t uzlib_flash_read_cb_addr;
int uzlib_flash_read_cb(struct uzlib_uncomp *m)
{
    m->source = uzlib_flash_read_cb_buff;
    m->source_limit = uzlib_flash_read_cb_buff + sizeof(uzlib_flash_read_cb_buff);
    SPIRead(uzlib_flash_read_cb_addr uzlib_flash_read_cb_buff sizeof(uzlib_flash_read_cb_buff));
    uzlib_flash_read_cb_addr += sizeof(uzlib_flash_read_cb_buff);
    re

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-07-07 09:10  esp8266-2.7.2\
     文件           0  2020-07-07 09:10  esp8266-2.7.2\programmers.txt
     文件        2831  2020-07-07 09:10  esp8266-2.7.2\ISSUE_TEMPLATE.md
     文件         553  2020-07-07 09:10  esp8266-2.7.2\keywords.txt
     文件       26529  2020-07-07 09:10  esp8266-2.7.2\LICENSE
     文件        9694  2020-07-07 09:10  esp8266-2.7.2\README.md
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\
     文件         335  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\keywords.txt
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\src\
     文件        1770  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\src\Ticker.cpp
     文件        5644  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\src\Ticker.h
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerFunctional\
     文件        1227  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerFunctional\TickerFunctional.ino
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerBasic\
     文件        1112  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerBasic\TickerBasic.ino
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerParameter\
     文件        1041  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\examples\TickerParameter\TickerParameter.ino
     文件         242  2020-07-07 09:10  esp8266-2.7.2\libraries\Ticker\library.properties
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\
     文件         995  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\keywords.txt
     文件        3420  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\README.rst
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\
     文件       25509  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\ESP8266WebServer-impl.h
     文件        1228  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\ESP8266WebServerSecure.h
     目录           0  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\detail\
     文件        1135  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\detail\RequestHandler.h
     文件        5203  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\detail\RequestHandlersImpl.h
     文件        3769  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\detail\mimetable.cpp
     文件         576  2020-07-07 09:10  esp8266-2.7.2\libraries\ESP8266WebServer\src\detail\mimetable.h
............此处省略3500个文件信息

评论

共有 条评论