kopia lustrzana https://github.com/peterhinch/micropython-samples
Improved build script added
rodzic
b7ccf3ed46
commit
4fccd6763c
27
README.md
27
README.md
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Ładowanie…
Reference in New Issue