Update VESC and fix adding firmware

This commit is contained in:
Jakob Lechner 2024-07-05 04:05:16 +02:00
parent 31564aa64f
commit a3f10e48c7
2 changed files with 21 additions and 32 deletions

View file

@ -2,37 +2,41 @@
, fetchFromGitHub
, gcc-arm-embedded-7
, python311
, git
, writeShellScriptBin
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "vesc-firmware";
version = "master";
src = fetchFromGitHub {
owner = "vedderb";
repo = "bldc";
rev = "f7c2b34e1cff2234cae98be3abf0cd50e249558f"; # release_6_02
sha256 = "BJwxmtYjQhxV8O0Ze9k0cPz0ubJnq5ePUd/9tGx35jo=";
rev = "dd3b97b041c325acfb95ac1adb550d28390ea253";
sha256 = "2Zex2FNkedO4wjG05CQIyVFU0i0/+O9V3LzsxHZOnvg=";
fetchSubmodules = true;
};
nativeBuildInputs = [
gcc-arm-embedded-7
python311
git
(writeShellScriptBin "git" ''
if [ "$*" != "rev-parse --short HEAD" ]; then
exit 1
fi
echo "${src.rev}"
'')
];
buildCommand = ''
set -x
cp -r $src bldc
(
cd bldc
chmod +w .
make fw_410 fw_60
make -j $NIX_BUILD_CORES fw_410 fw_60
python package_firmware.py
)
mkdir -p $out
find bldc
cp --target-directory=$out --recursive bldc/build/*/*.{bin,hex}
cp --recursive --target-directory=$out bldc/package/*
'';
}

View file

@ -2,21 +2,9 @@
, fetchFromGitHub
, libsForQt5
, vesc-firmware
, writeText
, qt5
}:
let
qresource = writeText "res_fw.qrc"
''
<RCC>
<qresource>
<file>410.bin</file>
<file>60.bin</file>
</qresource>
</RCC>
'';
in
stdenv.mkDerivation {
pname = "vesc_tool";
version = "master";
@ -24,8 +12,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "vedderb";
repo = "vesc_tool";
rev = "4a0edea5846d973e5da510fbe11ce009aaf21a96";
sha256 = "18ue6YBVcggr4qyHpCorrh01oeo4i58Jgp9Twaq+DlI=";
rev = "211f5d317542a3674df638405485a143a23f67ce";
sha256 = "liF2JbcrRtVPSySJhY7CHRghsBV3gKRGD40pKVD19wE=";
fetchSubmodules = true;
};
@ -35,10 +23,6 @@ stdenv.mkDerivation {
qt5.wrapQtAppsHook
];
buildInputs = [
vesc-firmware
];
propagatedBuildInputs = with qt5; [
qtconnectivity
qtgamepad
@ -47,14 +31,15 @@ stdenv.mkDerivation {
qtserialport
];
buildPhase = ''
mkdir -p res/firmwares/
cp ${qresource} res/firmwares/res_fw.qrc
cp ${vesc-firmware}/*.bin res/firmwares
dontConfigure = true;
buildPhase = ''
for f in ${vesc-firmware}/*; do
ln -s "$f" res/firmwares/
done
qmake -config release "CONFIG += release_lin build_platinum"
make clean
make -j8
make -j $NIX_BUILD_CORES
rm -rf build/lin/obj
mkdir -p $out/bin
cp build/lin/* $out/bin