mirror of
https://github.com/pine64/blisp.git
synced 2026-09-21 13:31:31 +00:00
Compare commits
13
Commits
ralim
..
25bf9fe209
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25bf9fe209 | ||
|
|
98784b1776 | ||
|
|
3490c37581 | ||
|
|
448d81bfd3 | ||
|
|
7a85414ece | ||
|
|
c41d128e73 | ||
|
|
d2fef0af22 | ||
|
|
2203a250e3
|
||
|
|
713e444656 | ||
|
|
3b47993de7
|
||
|
|
f601b6b965 | ||
|
|
48af2aded0 | ||
|
|
f1b93a1881 |
@@ -2,6 +2,22 @@ name: Build
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
check-nix-flake:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- name: Check Nix Flake
|
||||
run: nix flake check --print-build-logs
|
||||
|
||||
check-nix-build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: cachix/install-nix-action@v30
|
||||
- name: Build package
|
||||
run: nix build --print-build-logs
|
||||
|
||||
build-windows:
|
||||
runs-on: windows-2022
|
||||
defaults:
|
||||
@@ -42,7 +58,7 @@ jobs:
|
||||
- name: Upload results
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: blips-apple-x86_64.zip
|
||||
name: blips-apple-universal.zip
|
||||
path: |
|
||||
build/tools/blisp/blisp
|
||||
if-no-files-found: error
|
||||
|
||||
+13
-6
@@ -1,7 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
|
||||
project(blisp C)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set(CMAKE_C_STANDARD 23)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
option(BLISP_BUILD_CLI "Build CLI Tool" OFF)
|
||||
option(BLISP_USE_SYSTEM_LIBRARIES "Use system-installed libraries" "${CMAKE_USE_SYSTEM_LIBRARIES}")
|
||||
@@ -28,14 +29,14 @@ set(BLISP_PUBLIC_HEADERS
|
||||
|
||||
set_target_properties(libblisp PROPERTIES
|
||||
PUBLIC_HEADER "${BLISP_PUBLIC_HEADERS}"
|
||||
VERSION 0.0.3
|
||||
VERSION 0.0.4
|
||||
SOVERSION 1
|
||||
LIBRARY_OUTPUT_DIRECTORY "shared"
|
||||
OUTPUT_NAME "blisp")
|
||||
|
||||
set_target_properties(libblisp_static PROPERTIES
|
||||
PUBLIC_HEADER "${BLISP_PUBLIC_HEADERS}"
|
||||
VERSION 0.0.3
|
||||
VERSION 0.0.4
|
||||
SOVERSION 1
|
||||
ARCHIVE_OUTPUT_DIRECTORY "static"
|
||||
OUTPUT_NAME "blisp")
|
||||
@@ -90,7 +91,13 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS libblisp libblisp_static DESTINATION lib)
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS libblisp libblisp_static
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
)
|
||||
|
||||
if(BLISP_BUILD_CLI)
|
||||
add_subdirectory(tools/blisp)
|
||||
@@ -99,4 +106,4 @@ endif()
|
||||
|
||||
if(COMPILE_TESTS)
|
||||
add_subdirectory(tools/blisp/src/cmd/dfu/tests)
|
||||
endif(COMPILE_TESTS)
|
||||
endif(COMPILE_TESTS)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[](https://github.com/pine64/blisp/wiki/Update-Pinecil-V2)
|
||||
[](https://github.com/pine64/blisp/releases/tag/v0.0.3)
|
||||
[](https://github.com/pine64/blisp/releases/tag/v0.0.4)
|
||||
[](https://discord.com/invite/pine64)
|
||||
[](https://github.com/pine64/blisp/releases/tag/v0.0.3)
|
||||
[](https://github.com/pine64/blisp/releases/tag/v0.0.4)
|
||||
|
||||
<img src="./img/Gradient-white-blue-03.png" align="left" width="60" > <br clear="left" />
|
||||
# BLISP
|
||||
@@ -94,3 +94,20 @@ 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.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### macOS
|
||||
|
||||
Depending on your current system security settings, modern versions of macOS requires all software to be notarised before you are able to execute it. This is specially true for software that is downloaded directly from the internet.
|
||||
|
||||
If that is the case, you will get an error that looks like the following:
|
||||
> **“blisp” cannot be opened because the developer cannot be verified.**
|
||||
>
|
||||
> macOS cannot verify that this app is free from malware.
|
||||
|
||||
In that case, you will need to remove the *quarantine* flag that macOS adds to the executable. After that you should be able to run **blisp** as normal.
|
||||
|
||||
```bash
|
||||
xattr -d com.apple.quarantine blisp
|
||||
```
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
self,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
argtable,
|
||||
cmake,
|
||||
libserialport,
|
||||
pkg-config,
|
||||
testers,
|
||||
IOKit ? null,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "blisp";
|
||||
version = "0.0.4-unstable";
|
||||
src = self;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
argtable
|
||||
libserialport
|
||||
] ++ lib.optional stdenv.hostPlatform.isDarwin IOKit;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBLISP_BUILD_CLI=ON"
|
||||
"-DBLISP_USE_SYSTEM_LIBRARIES=ON"
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-Wno-error=implicit-function-declaration";
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
version = "v${finalAttrs.version}";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "In-System-Programming (ISP) tool & library for Bouffalo Labs RISC-V Microcontrollers and SoCs";
|
||||
license = licenses.mit;
|
||||
mainProgram = "blisp";
|
||||
homepage = "https://github.com/pine64/blisp";
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.bdd ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,9 @@
|
||||
(import (
|
||||
let
|
||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||
in
|
||||
fetchTarball {
|
||||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||
}
|
||||
) { src = ./.; }).defaultNix
|
||||
Generated
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1731319897,
|
||||
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dc460ec76cbff0e66e269457d7b728432263166c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||
in
|
||||
{
|
||||
packages = forEachSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
with pkgs;
|
||||
{
|
||||
blisp = callPackage ./blisp.nix { inherit self; };
|
||||
default = self.packages.${system}.blisp;
|
||||
}
|
||||
);
|
||||
|
||||
devShells = forEachSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
with pkgs;
|
||||
{
|
||||
default = mkShell {
|
||||
name = "blisp-dev";
|
||||
nativeBuildInputs = [ self.packages.${system}.default ];
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
(import (
|
||||
let
|
||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||
in
|
||||
fetchTarball {
|
||||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||
}
|
||||
) { src = ./.; }).shellNix
|
||||
@@ -222,13 +222,13 @@ blisp_return_t blisp_flash_firmware() {
|
||||
|
||||
if (ret != BLISP_OK) {
|
||||
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_length + 1);
|
||||
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);
|
||||
struct blisp_easy_transport data_transport =
|
||||
blisp_easy_transport_new_from_memory(parsed_file.payload,
|
||||
|
||||
@@ -8,7 +8,7 @@ file(GLOB_RECURSE sources
|
||||
)
|
||||
list(APPEND ADD_SRCS ${sources})
|
||||
|
||||
add_library(file_parsers
|
||||
add_library(file_parsers STATIC
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/bin/bin_file.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dfu/dfu_file.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/dfu/dfu_crc.c"
|
||||
|
||||
Reference in New Issue
Block a user