circuitpython/teensy
Alexander Steffen 299bc62586 all: Unify header guard usage.
The code conventions suggest using header guards, but do not define how
those should look like and instead point to existing files. However, not
all existing files follow the same scheme, sometimes omitting header guards
altogether, sometimes using non-standard names, making it easy to
accidentally pick a "wrong" example.

This commit ensures that all header files of the MicroPython project (that
were not simply copied from somewhere else) follow the same pattern, that
was already present in the majority of files, especially in the py folder.

The rules are as follows.

Naming convention:
* start with the words MICROPY_INCLUDED
* contain the full path to the file
* replace special characters with _

In addition, there are no empty lines before #ifndef, between #ifndef and
one empty line before #endif. #endif is followed by a comment containing
the name of the guard macro.

py/grammar.h cannot use header guards by design, since it has to be
included multiple times in a single C file. Several other files also do not
need header guards as they are only used internally and guaranteed to be
included only once:
* MICROPY_MPHALPORT_H
* mpconfigboard.h
* mpconfigport.h
* mpthreadport.h
* pin_defs_*.h
* qstrdefs*.h
2017-07-18 11:57:39 +10:00
..
core Add core files and use same toolchain as stmhal 2014-07-14 22:48:22 -07:00
memzip_files teensy: Fix execution of frozen boot.py and main.py 2016-08-22 12:31:33 +10:00
add-memzip.sh Added memzip filesystem support for teensy 2014-01-11 16:16:20 -08:00
hal_ftm.c Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
hal_ftm.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
hal_gpio.c Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
help.c teensy: Convert to use builtin help function. 2017-01-22 11:56:16 +11:00
lcd.c teensy: Prefix includes with py/; remove need for -I../py. 2015-01-01 21:13:30 +00:00
led.c py: Change first arg of type.make_new from mp_obj_t to mp_obj_type_t*. 2016-01-11 00:49:27 +00:00
led.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
lexerfrozen.c teensy/lexerfrozen: Make mp_lexer_new_from_file raise an exception. 2017-03-14 11:52:05 +11:00
lexermemzip.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
main.c all: Use full path name when including mp-readline/timeutils/netutils. 2017-03-31 22:29:39 +11:00
make-pins.py Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
Makefile teensy/Makefile: Include relevant sources in list for qstr extraction. 2017-06-15 20:03:17 +10:00
mk20dx256_af.csv Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
mk20dx256_prefix.c teensy: Prefix includes with py/; remove need for -I../py. 2015-01-01 21:13:30 +00:00
mk20dx256.ld Updated teensy to build. 2014-06-15 22:48:05 -07:00
modpyb.c py: Be more specific with MP_DECLARE_CONST_FUN_OBJ macros. 2016-10-21 16:26:01 +11:00
mpconfigport.h ports: Convert from using stmhal's input() to core provided version. 2017-06-01 16:02:49 +10:00
pin_defs_teensy.c all: Add py/mphal.h and use it in all ports. 2015-10-31 19:14:30 +03:00
pin_defs_teensy.h Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
qstrdefsport.h py: Add rules for automated extraction of qstrs from sources. 2016-04-16 13:18:09 +01:00
README.md docs,teensy: Use the name MicroPython consistently in documentation 2017-07-15 11:44:32 +02:00
reg.c teensy: Prefix includes with py/; remove need for -I../py. 2015-01-01 21:13:30 +00:00
reg.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
servo.c py: Change nlr_jump to nlr_raise, to aid in debugging. 2014-04-05 18:32:08 +01:00
servo.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
std.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
teensy_hal.c teensy: Provide dummy implementation of extint_register_pin. 2017-06-15 17:42:18 +10:00
teensy_hal.h teensy: Provide dummy implementation of extint_register_pin. 2017-06-15 17:42:18 +10:00
teensy_pins.csv Add Timer support (PWM, OC, IC) for stmhal and teensy 2014-09-19 09:26:13 -07:00
timer.c all: Consistently update signatures of .make_new and .call methods. 2017-01-04 16:10:42 +03:00
timer.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00
uart.c py: Change first arg of type.make_new from mp_obj_t to mp_obj_type_t*. 2016-01-11 00:49:27 +00:00
usb.c teensy: Prefix includes with py/; remove need for -I../py. 2015-01-01 21:13:30 +00:00
usb.h all: Unify header guard usage. 2017-07-18 11:57:39 +10:00

Build Instructions for Teensy 3.1

Currently the Teensy 3.1 port of MicroPython builds under Linux and not under Windows.

The tool chain required for the build can be found at https://launchpad.net/gcc-arm-embedded.

Download the current Linux *.tar.bz2 file. Instructions regarding unpacking the file and moving it to the correct location as well as adding the extracted folders to the enviroment variable can be found at http://eliaselectronics.com/stm32f4-tutorials/setting-up-the-stm32f4-arm-development-toolchain/

In order to download the firmware image to the teensy, you'll need to use the downloader included with TeensyDuino. The following assumes that you have TeensyDuino installed and set the ARDUINO environment variable pointing to the where Arduino with TeensyDuino is installed.

cd teensy
ARDUINO=~/arduino-1.0.5 make

To upload MicroPython to the Teensy 3.1.

Press the Program button on the Teensy 3.1

sudo ARDUINO=~/arduino-1.0.5/ make deploy

Currently, the Python prompt is through the USB serial interface, i.e.

minicom -D /dev/ttyACM0

TIPS

Install 49-teensy.rules into /etc/udev/rules.d

If you install the 49-teensy.rules file from http://www.pjrc.com/teensy/49-teensy.rules into your /etc/udev/rules.d folder then you won't need to use sudo:

sudo cp ~/Downloads/49-teensy.rules /etc/udev/rules.d
sudo udevadm control --reload-rules

Unplug and replug the teensy board, and then you can use: ARDUINO=~/arduino-1.0.5/ make deploy

Create a GNUmakefile to hold your ARDUINO setting.

Create a file call GNUmakefile (note the lowercase m) in the teensy folder with the following contents:

$(info Executing GNUmakefile)

ARDUINO=${HOME}/arduino-1.0.5
$(info ARDUINO=${ARDUINO})

include Makefile

GNUmakefile is not checked into the source code control system, so it will retain your settings when updating your source tree. You can also add additional Makefile customizations this way.

Tips for OSX

Set the ARDUINO environment variable to the location where Arduino with TeensyDuino is installed.

export ARDUINO=~/Downloads/Arduino.app/Contents/Java/

Search /dev/ for USB port name, which will be cu.usbmodem followed by a few numbers. The name of the port maybe different depending on the version of OSX. To access the Python prompt type:

screen <devicename> 115200