Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions tools/blisp/src/cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
#ifndef 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 "error_codes.h"
struct cmd {
Expand Down
9 changes: 9 additions & 0 deletions tools/blisp/src/cmd/iot.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,20 @@ static struct arg_str *port_name, *chip_type; // TODO: Make this common
static struct arg_lit* reset;
static struct arg_end* end;
static void* cmd_iot_argtable[7];
static void cmd_iot_args_print_glossary();

blisp_return_t blisp_single_download() {
struct blisp_device device;
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);
if (ret != BLISP_OK) {
return ret;
Expand Down
11 changes: 11 additions & 0 deletions tools/blisp/src/cmd/write.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ static struct arg_str *port_name, *chip_type;
static struct arg_lit* reset;
static struct arg_end* end;
static void* cmd_write_argtable[6];
static void cmd_write_args_print_glossary();

void fill_up_boot_header(struct bfl_boot_header* boot_header) {
memcpy(boot_header->magiccode, "BFNP", 4);
Expand Down Expand Up @@ -168,6 +169,15 @@ void fill_up_boot_header(struct bfl_boot_header* boot_header) {
blisp_return_t blisp_flash_firmware() {
struct blisp_device device;
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);

if (ret != 0) {
Expand All @@ -178,6 +188,7 @@ blisp_return_t blisp_flash_firmware() {
// TODO: Error handling
goto exit1;
}

parsed_firmware_file_t parsed_file;
memset(&parsed_file, 0, sizeof(parsed_file));
int parsed_result =
Expand Down