资源简介

ESP8266_RTOS_SDK-3.0官方包,留作下载用以备需要。。

资源截图

代码片段和文件信息

// 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.

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include “esp_err.h“
#include “esp_partition.h“
#include “esp_spi_flash.h“
#include “esp_image_format.h“
#include “esp_secure_boot.h“
#include “sdkconfig.h“

#include “esp_ota_ops.h“
#include “sys/queue.h“
#include “crc.h“
#include “esp_log.h“

#ifdef CONFIG_TARGET_PLATFORM_ESP8266
#include “spi_flash.h“
esp_err_t bootloader_flash_read(size_t src_addr void *dest size_t size bool allow_decrypt);
#endif

#define OTA_MAX(ab) ((a) >= (b) ? (a) : (b)) 
#define OTA_MIN(ab) ((a) <= (b) ? (a) : (b)) 
#define SUB_TYPE_ID(i) (i & 0x0F) 

typedef struct ota_ops_entry_ {
    uint32_t handle;
    const esp_partition_t *part;
    uint32_t erased_size;
    uint32_t wrote_size;
    uint8_t partial_bytes;
    uint8_t partial_data[16];
    LIST_ENTRY(ota_ops_entry_) entries;
} ota_ops_entry_t;

/* OTA selection structure (two copies in the OTA data partition.)
   Size of 32 bytes is friendly to flash encryption */
typedef struct {
    uint32_t ota_seq;
    uint8_t  seq_label[24];
    uint32_t crc;                /* CRC32 of ota_seq field only */
} ota_select;

static LIST_HEAD(ota_ops_entries_head ota_ops_entry_) s_ota_ops_entries_head =
    LIST_HEAD_INITIALIZER(s_ota_ops_entries_head);

static uint32_t s_ota_ops_last_handle = 0;
static ota_select s_ota_select[2];

const static char *TAG = “esp_ota_ops“;

/* Return true if this is an OTA app partition */
static bool is_ota_partition(const esp_partition_t *p)
{
    return (p != NULL
            && p->type == ESP_PARTITION_TYPE_APP
            && p->subtype >= ESP_PARTITION_SUBTYPE_APP_OTA_0
            && p->subtype < ESP_PARTITION_SUBTYPE_APP_OTA_MAX);
}

esp_err_t esp_ota_begin(const esp_partition_t *partition size_t image_size esp_ota_handle_t *out_handle)
{
    ota_ops_entry_t *new_entry;
    esp_err_t ret = ESP_OK;

    if ((partition == NULL) || (out_handle == NULL)) {
        return ESP_ERR_INVALID_ARG;
    }

    partition = esp_partition_verify(partition);
    if (partition == NULL) {
        return ESP_ERR_NOT_FOUND;
    }

    if (!is_ota_partition(partition)) {
        return ESP_ERR_INVALID_ARG;
    }

    if (partition == esp_ota_get_running_partition()) {
        return ESP_ERR_OTA_PARTITION

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\
     文件          32  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\.gitattributes
     文件         282  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\.gitignore
     文件        2597  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\.gitlab-ci.yml
     文件        5838  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\Kconfig
     文件       11358  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\LICENSE
     文件        7850  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\README.md
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\
     文件         595  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\VERSION.md
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\
     文件         131  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\component.mk
     文件       22424  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\esp_ota_ops.c
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\include\
     文件        8529  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\include\esp_ota_ops.h
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\test\
     文件         112  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\test\component.mk
     文件        3352  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\app_update\test\test_ota_ops.c
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\
     文件        5168  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\Kconfig
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\
     文件        8772  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\CHANGELOG.md
     文件       19046  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\CppUTestMakefileWorker.mk
     文件       13179  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\LICENSE.txt
     文件        3622  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\Makefile
     文件         647  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\NOTICE.txt
     文件       10431  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\PortingGuide.md
     文件        9989  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\README.md
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\certs\
     文件         388  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\certs\README.txt
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\external_libs\
     目录           0  2018-09-07 06:10  ESP8266_RTOS_SDK-3.0\components\aws_iot\aws-iot-device-sdk-embedded-C\external_libs\CppUTest\
............此处省略1940个文件信息

评论

共有 条评论