Improved build script added

pull/7/head
Peter Hinch 2016-11-26 14:03:24 +00:00
rodzic b7ccf3ed46
commit 4fccd6763c
3 zmienionych plików z 93 dodań i 6 usunięć

Wyświetl plik

@ -29,13 +29,28 @@ Raise an exception if a firmware build is earlier than a given date.
Time a function's execution using a decorator Time a function's execution using a decorator
## fastbuild - Pyboard use under Linux ## fastbuild - Pyboard use under Linux
Build MicroPython with your frozen bytecode, put the Pyboard into DFU mode, and deploy the build to Build MicroPython with your frozen bytecode, put the Pyboard into DFU mode, and
the board with a single command. Takes just over 60 seconds on a fast PC. Note the use of make's j deploy the build to the board with a single command. Takes just over 60 seconds
argument to use mutliple cores. Empirically 8 gave the fastest build on my core i7 4/8 core laptop: on a fast PC. Note the use of make's j argument to use mutliple cores.
adjust to suit your PC. Empirically 8 gave the fastest build on my core i7 4/8 core laptop: adjust to
suit your PC.
Includes udev rules to avoid jumps from /dev/ttyACM0 to /dev/ttyACM1: ensures Pyboards of all types Includes udev rules to avoid jumps from /dev/ttyACM0 to /dev/ttyACM1: ensures
appear as /dev/pyboard. Also rules for USB connected WiPy and FTDI USB/serial adaptor. Pyboards of all types appear as /dev/pyboard. Also rules for USB connected WiPy
and FTDI USB/serial adaptor.
Improved build script: ``buildpyb``
This checks the attached pyboard. If it's a V1.0, V1.1 or Lite it builds the
correct firmware and deploys it. Otherwise it produces an error message. It uses
the supplied ``pyb_check`` utility which depends on ``pyboard.py`` being on the
path. Install (from micropython/tools) and test first.
Optional argument ``--clean`` - if supplied does a ``make clean``. Strongly
recommended after pulling new sourcecode.
There are a couple of site specifics here. ``pyb_check`` assumes the udev rule
above is applied to put the device on ``/dev/pyboard``. ``buildpyb`` assumes a
frozen modules directory ``stmhal/modules``. Modify to suit.
## ESP8266 ## ESP8266
benchmark.py Tests the performance of MQTT by periodically publishing while subscribed to benchmark.py Tests the performance of MQTT by periodically publishing while subscribed to

41
fastbuild/buildpyb 100755
Wyświetl plik

@ -0,0 +1,41 @@
#! /bin/bash
# Detect pyboard variant build and deploy
# requires pyb_check
# Also requires the pyboard utility to be on the path
BOARD=""
if pyb_check PYBV11
then
BOARD="PYBV11"
fi
if pyb_check PYBV10
then
BOARD="PYBV10"
fi
if pyb_check PYBLITEV10
then
BOARD="PYBLITEV10"
fi
echo $BOARD
if [ $BOARD ]
then
cd /mnt/qnap2/data/Projects/MicroPython/micropython/stmhal
if [ $# -eq 1 ] && [ $1 = "--clean" ]
then
make BOARD=$BOARD clean
fi
if make -j 8 BOARD=$BOARD FROZEN_MPY_DIR=modules && pyb_boot
then
sleep 1
sudo make BOARD=$BOARD deploy
cd -
sleep 1
rshell
else
echo Build failure
fi
else
echo Incorrect board type
fi

Wyświetl plik

@ -0,0 +1,31 @@
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Called from buildpyb
# Arg: expected board type
# exit status 0 if hardware matches board type else 1
import sys
import os, os.path
import pyboard
device = '/dev/pyboard'
errmsg = 'Must supply board type PYBV10 PYBV11 PYBLITEV10'
d = {'PYBV11' : b'PYBv1.1', 'PYBV10' : b'PYBv1.0', 'PYBLITEV10' : b'PYBLITEv1.0'}
def main():
if len(sys.argv) < 2:
print(errmsg)
sys.exit(1)
if not os.path.exists(device):
sys.exit(1)
pybd = pyboard.Pyboard('/dev/pyboard')
pybd.enter_raw_repl()
hardware = pybd.exec('import os; print(os.uname()[4].split(' ')[0])').strip()
pybd.exit_raw_repl()
board = d[sys.argv[1]]
if board == hardware:
sys.exit(0)
sys.exit(1)
if __name__ == "__main__":
main()