e959756f5a
- Unused function warnings Move function definitions in include/blisp_util.h to lib/blisp_util.c. Defining them as static leads to internal linkage, accessible in that translation unit, hence the warning. Their references are to be handled in other translation units, so they shouldn't be static. - Unused function parameters Use C attribute `[[maybe_unused]]` (introduced in C23) to suppress unused parameter warnings. - `blisp_chip_xxxxx_get_eflash_loader` implementations accept clock type but don't use it. - `drain` function only has a body under macOS and FreeBSD with preprocessor predicates. - Enable compiler warnings Now that warnings are address enable them `-Wall -Wextra -Wpedantic` for the library and the tool targets. N.B. An equivalent of MSVC should be added to CMakeLists.txt, as these would only work when using GCC or Clang. |
||
---|---|---|
.github/workflows | ||
.idea | ||
data | ||
img | ||
include | ||
lib | ||
tools/blisp | ||
vendor | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
BLISP
Bouffalo Labs ISP (in-system-programming) tool & library: an open source tool to flash Bouffalo RISC-V MCUs.
NOTE: Library API and blisp
tool cli arguments are not stable yet.
Supported MCUs
bl60x
- BL602 / BL604 / TG7100C / LF686 / LF688bl70x
- BL702 / BL704 / BL706
Supported Devices
System | Windows | MacOS | Linux | FreeBSD |
---|---|---|---|---|
Pinecil V2 | ||||
Pinecone | ||||
How to update Pinecil V2
Download the newest release of Blisp updater here.
Check out the wiki page for install instructions.
Building from code
Clone repository
If you have not cloned this repository locally; clone the git repository locally by running
git clone --recursive https://github.com/pine64/blisp.git
cd blisp
git submodule update --init --recursive
If vendor/argtable3 and vendor/libserialport/ are empty, this last step has failed and should be investigated.
Build the library and command line utility
For building blisp
command line tool, use following commands:
mkdir build && cd build
cmake -DBLISP_BUILD_CLI=ON ..
cmake --build .
Need more build details? See here.
Usage
For BL70X, BL61X, BL808 and BL606P, connected via USB, you can use following command, which will auto-detect serial port on Windows:
.\blisp.exe write --chip=bl70x --reset .\name_of_firmware.bin
or
.\blisp.exe write -c bl70x --reset .\name_of_firmware.bin
For BL60X, you need to specify also the serial port path:
blisp write --chip bl60x --reset -p /dev/ttyUSB0 name_of_firmware.bin
If you wish to see additional debugging, set the environmental variable LIBSERIALPORT_DEBUG before running. You can either export this in your shell or change it for a single run via
LIBSERIALPORT_DEBUG=y ./a.out write -c bl70x -p /dev/tty.usbmodem0000000200001
Because this is done at the lowest level of serial communication, the displays aren't packet-aware or know about the chip's command set or such. This is really only useful for debugging systems-level issues withing the device or blisp itself.