54 lines
No EOL
1.5 KiB
C
54 lines
No EOL
1.5 KiB
C
/* Flash multiple partitions example
|
|
|
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
|
|
Unless required by applicable law or agreed to in writing, this
|
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
CONDITIONS OF ANY KIND, either express or implied.
|
|
*/
|
|
|
|
#include <sys/param.h>
|
|
#include <string.h>
|
|
#include "esp_err.h"
|
|
#include "esp_log.h"
|
|
#include "driver/uart.h"
|
|
#include "driver/gpio.h"
|
|
#include "esp32_port.h"
|
|
#include "esp_loader.h"
|
|
#include "example_common.h"
|
|
|
|
static const char *TAG = "serial_flasher";
|
|
|
|
#define HIGHER_BAUDRATE 230400
|
|
|
|
void app_main(void)
|
|
{
|
|
example_binaries_t bin;
|
|
|
|
const loader_esp32_config_t config = {
|
|
.baud_rate = 115200,
|
|
.uart_port = UART_NUM_1,
|
|
.uart_rx_pin = GPIO_NUM_5,
|
|
.uart_tx_pin = GPIO_NUM_4,
|
|
.reset_trigger_pin = GPIO_NUM_25,
|
|
.gpio0_trigger_pin = GPIO_NUM_26,
|
|
};
|
|
|
|
if (loader_port_esp32_init(&config) != ESP_LOADER_SUCCESS) {
|
|
ESP_LOGE(TAG, "serial initialization failed.");
|
|
return;
|
|
}
|
|
|
|
if (connect_to_target(HIGHER_BAUDRATE) == ESP_LOADER_SUCCESS) {
|
|
|
|
get_example_binaries(esp_loader_get_target(), &bin);
|
|
|
|
ESP_LOGI(TAG, "Loading bootloader...");
|
|
flash_binary(bin.boot.data, bin.boot.size, bin.boot.addr);
|
|
ESP_LOGI(TAG, "Loading partition table...");
|
|
flash_binary(bin.part.data, bin.part.size, bin.part.addr);
|
|
ESP_LOGI(TAG, "Loading app...");
|
|
flash_binary(bin.app.data, bin.app.size, bin.app.addr);
|
|
ESP_LOGI(TAG, "Done!");
|
|
}
|
|
} |