mirror of
https://github.com/pine64/blisp.git
synced 2025-03-11 17:38:57 +00:00
Compare commits
3 Commits
25bf9fe209
...
54ee98f351
Author | SHA1 | Date | |
---|---|---|---|
|
54ee98f351 | ||
|
d63612c256 | ||
|
448d81bfd3 |
@ -2,6 +2,14 @@
|
|||||||
#ifndef BLISP_CMD_H
|
#ifndef BLISP_CMD_H
|
||||||
#define BLISP_CMD_H
|
#define BLISP_CMD_H
|
||||||
|
|
||||||
|
#if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
|
||||||
|
#include <unistd.h>
|
||||||
|
#elif defined(_WIN32) || defined(WIN32)
|
||||||
|
#include <io.h>
|
||||||
|
#define R_OK 4
|
||||||
|
#define access _access
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "error_codes.h"
|
#include "error_codes.h"
|
||||||
struct cmd {
|
struct cmd {
|
||||||
|
@ -13,11 +13,20 @@ static struct arg_str *port_name, *chip_type; // TODO: Make this common
|
|||||||
static struct arg_lit* reset;
|
static struct arg_lit* reset;
|
||||||
static struct arg_end* end;
|
static struct arg_end* end;
|
||||||
static void* cmd_iot_argtable[7];
|
static void* cmd_iot_argtable[7];
|
||||||
|
static void cmd_iot_args_print_glossary();
|
||||||
|
|
||||||
blisp_return_t blisp_single_download() {
|
blisp_return_t blisp_single_download() {
|
||||||
struct blisp_device device;
|
struct blisp_device device;
|
||||||
blisp_return_t ret;
|
blisp_return_t ret;
|
||||||
|
|
||||||
|
if (access(single_download->filename[0], R_OK) != 0) {
|
||||||
|
// File not accessible, error out.
|
||||||
|
fprintf(stderr, "Input firmware not found: %s\n", single_download->filename[0]);
|
||||||
|
cmd_iot_args_print_glossary(); /* Print help to assist user */
|
||||||
|
/* No need to free memory, will now exit with ret code 1 */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
ret = blisp_common_init_device(&device, port_name, chip_type);
|
ret = blisp_common_init_device(&device, port_name, chip_type);
|
||||||
if (ret != BLISP_OK) {
|
if (ret != BLISP_OK) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -20,6 +20,7 @@ static struct arg_str *port_name, *chip_type;
|
|||||||
static struct arg_lit* reset;
|
static struct arg_lit* reset;
|
||||||
static struct arg_end* end;
|
static struct arg_end* end;
|
||||||
static void* cmd_write_argtable[6];
|
static void* cmd_write_argtable[6];
|
||||||
|
static void cmd_write_args_print_glossary();
|
||||||
|
|
||||||
void fill_up_boot_header(struct bfl_boot_header* boot_header) {
|
void fill_up_boot_header(struct bfl_boot_header* boot_header) {
|
||||||
memcpy(boot_header->magiccode, "BFNP", 4);
|
memcpy(boot_header->magiccode, "BFNP", 4);
|
||||||
@ -168,6 +169,15 @@ void fill_up_boot_header(struct bfl_boot_header* boot_header) {
|
|||||||
blisp_return_t blisp_flash_firmware() {
|
blisp_return_t blisp_flash_firmware() {
|
||||||
struct blisp_device device;
|
struct blisp_device device;
|
||||||
blisp_return_t ret;
|
blisp_return_t ret;
|
||||||
|
|
||||||
|
if (access(binary_to_write->filename[0], R_OK) != 0) {
|
||||||
|
// File not accessible, error out.
|
||||||
|
fprintf(stderr, "Input firmware not found: %s\n", binary_to_write->filename[0]);
|
||||||
|
cmd_write_args_print_glossary(); /* Print help to assist user */
|
||||||
|
/* No need to free memory, will now exit with ret code 1 */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
ret = blisp_common_init_device(&device, port_name, chip_type);
|
ret = blisp_common_init_device(&device, port_name, chip_type);
|
||||||
|
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
@ -178,6 +188,7 @@ blisp_return_t blisp_flash_firmware() {
|
|||||||
// TODO: Error handling
|
// TODO: Error handling
|
||||||
goto exit1;
|
goto exit1;
|
||||||
}
|
}
|
||||||
|
|
||||||
parsed_firmware_file_t parsed_file;
|
parsed_firmware_file_t parsed_file;
|
||||||
memset(&parsed_file, 0, sizeof(parsed_file));
|
memset(&parsed_file, 0, sizeof(parsed_file));
|
||||||
int parsed_result =
|
int parsed_result =
|
||||||
@ -222,13 +233,13 @@ blisp_return_t blisp_flash_firmware() {
|
|||||||
|
|
||||||
if (ret != BLISP_OK) {
|
if (ret != BLISP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Failed to erase flash. Tried to erase from 0x%08X to 0x%08X\n",
|
"Failed to erase flash. Tried to erase from 0x%08lu to 0x%08lu\n",
|
||||||
parsed_file.payload_address,
|
parsed_file.payload_address,
|
||||||
parsed_file.payload_address + parsed_file.payload_length + 1);
|
parsed_file.payload_address + parsed_file.payload_length + 1);
|
||||||
goto exit2;
|
goto exit2;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Flashing the firmware %d bytes @ 0x%08X...\n",
|
printf("Flashing the firmware %lu bytes @ 0x%08lu...\n",
|
||||||
parsed_file.payload_length, parsed_file.payload_address);
|
parsed_file.payload_length, parsed_file.payload_address);
|
||||||
struct blisp_easy_transport data_transport =
|
struct blisp_easy_transport data_transport =
|
||||||
blisp_easy_transport_new_from_memory(parsed_file.payload,
|
blisp_easy_transport_new_from_memory(parsed_file.payload,
|
||||||
|
Loading…
Reference in New Issue
Block a user