mirror of
https://github.com/pine64/blisp.git
synced 2025-03-06 23:48:55 +00:00
Merge pull request #8 from pine64/errors
Marginally improving error handling and rough corners
This commit is contained in:
commit
807c21bbef
3
.gitignore
vendored
3
.gitignore
vendored
@ -74,4 +74,5 @@ fabric.properties
|
|||||||
.idea/httpRequests
|
.idea/httpRequests
|
||||||
|
|
||||||
# Android studio 3.1+ serialized cache file
|
# Android studio 3.1+ serialized cache file
|
||||||
.idea/caches/build_file_checksums.ser
|
.idea/caches/build_file_checksums.ser
|
||||||
|
build/
|
||||||
|
17
README.md
17
README.md
@ -6,14 +6,25 @@ Tool and library for flashing their RISC-V MCUs.
|
|||||||
|
|
||||||
# Supported MCUs
|
# Supported MCUs
|
||||||
|
|
||||||
- [X] `bl60x` - BL602 / BL604
|
- [x] `bl60x` - BL602 / BL604
|
||||||
- [X] `bl70x` - BL702 / BL704 / BL706
|
- [x] `bl70x` - BL702 / BL704 / BL706
|
||||||
- [ ] `bl606p` - BL606P
|
- [ ] `bl606p` - BL606P
|
||||||
- [ ] `bl61x` - BL616 / BL618
|
- [ ] `bl61x` - BL616 / BL618
|
||||||
- [ ] `bl808` - BL808
|
- [ ] `bl808` - BL808
|
||||||
|
|
||||||
# Building
|
# Building
|
||||||
|
|
||||||
|
## Clone repository
|
||||||
|
|
||||||
|
If you have not cloned this repository locally; check out the git repository locally by running
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone --recursive https://github.com/pine64/blisp.git
|
||||||
|
cd blisp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build the library and command line utility
|
||||||
|
|
||||||
For building `blisp` command line tool, use following commands:
|
For building `blisp` command line tool, use following commands:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -40,4 +51,4 @@ blisp --chip bl60x --reset -p /dev/ttyUSB0 name_of_firmware.bin
|
|||||||
|
|
||||||
- [ ] Another code style
|
- [ ] Another code style
|
||||||
- [ ] Finalize API
|
- [ ] Finalize API
|
||||||
- [ ] SDIO and JTAG support
|
- [ ] SDIO and JTAG support
|
||||||
|
@ -28,10 +28,14 @@ static void* cmd_write_argtable[6];
|
|||||||
ssize_t
|
ssize_t
|
||||||
get_binary_folder(char* buffer, uint32_t buffer_size) {
|
get_binary_folder(char* buffer, uint32_t buffer_size) {
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
readlink("/proc/self/exe", buffer, buffer_size); // TODO: Error handling
|
if (readlink("/proc/self/exe", buffer, buffer_size) <= 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
char* pos = strrchr(buffer, '/');
|
char* pos = strrchr(buffer, '/');
|
||||||
#else
|
#else
|
||||||
GetModuleFileName(NULL, buffer, buffer_size);
|
if (GetModuleFileName(NULL, buffer, buffer_size) <= 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
char* pos = strrchr(buffer, '\\');
|
char* pos = strrchr(buffer, '\\');
|
||||||
#endif
|
#endif
|
||||||
pos[0] = '\0';
|
pos[0] = '\0';
|
||||||
@ -251,12 +255,28 @@ void blisp_flash_firmware() {
|
|||||||
|
|
||||||
char exe_path[PATH_MAX];
|
char exe_path[PATH_MAX];
|
||||||
char eflash_loader_path[PATH_MAX];
|
char eflash_loader_path[PATH_MAX];
|
||||||
get_binary_folder(exe_path, PATH_MAX); // TODO: Error handling
|
if (get_binary_folder(exe_path, PATH_MAX) <= 0) {
|
||||||
snprintf(eflash_loader_path, PATH_MAX, "%s/data/%s/eflash_loader_%s.bin", exe_path, device.chip->type_str, device.chip->default_eflash_loader_xtal);
|
fprintf(stderr, "Failed to find executable path to search for the "
|
||||||
|
"eflash loader\n");
|
||||||
eflash_loader_file = fopen(eflash_loader_path, "rb"); // TODO: Error handling
|
goto exit1;
|
||||||
uint8_t eflash_loader_header[176]; // TODO: Remap it to the boot header struct
|
}
|
||||||
fread(eflash_loader_header, 176, 1, eflash_loader_file); // TODO: Error handling
|
snprintf(eflash_loader_path, PATH_MAX, "%s/data/%s/eflash_loader_%s.bin",
|
||||||
|
exe_path, device.chip->type_str,
|
||||||
|
device.chip->default_eflash_loader_xtal);
|
||||||
|
printf("Loading the eflash loader file from disk\n");
|
||||||
|
eflash_loader_file
|
||||||
|
= fopen(eflash_loader_path, "rb"); // TODO: Error handling
|
||||||
|
if (eflash_loader_file == NULL) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Could not open the eflash loader file from disk.\n"
|
||||||
|
"Does \"%s\" exist?\n",
|
||||||
|
eflash_loader_path);
|
||||||
|
goto exit1;
|
||||||
|
}
|
||||||
|
uint8_t
|
||||||
|
eflash_loader_header[176]; // TODO: Remap it to the boot header struct
|
||||||
|
fread(eflash_loader_header, 176, 1,
|
||||||
|
eflash_loader_file); // TODO: Error handling
|
||||||
|
|
||||||
printf("Loading eflash_loader...\n");
|
printf("Loading eflash_loader...\n");
|
||||||
ret = blisp_device_load_boot_header(&device, eflash_loader_header);
|
ret = blisp_device_load_boot_header(&device, eflash_loader_header);
|
||||||
|
Loading…
Reference in New Issue
Block a user