circuitpython/py
Scott Shawcroft ccbb5e84f9 This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware.
Docs are here: http://tannewt-micropython.readthedocs.io/en/microcontroller/

It differs from upstream's machine in the following ways:

* Python API is identical across ports due to code structure. (Lives in shared-bindings)
* Focuses on abstracting common functionality (AnalogIn) and not representing structure (ADC).
* Documentation lives with code making it easy to ensure they match.
* Pin is split into references (board.D13 and microcontroller.pin.PA17) and functionality (DigitalInOut).
* All nativeio classes claim underlying hardware resources when inited on construction, support Context Managers (aka with statements) and have deinit methods which release the claimed hardware.
* All constructors take pin references rather than peripheral ids. Its up to the implementation to find hardware or throw and exception.
2016-11-21 14:11:52 -08:00
..
argcheck.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
asmarm.c py: Implement native multiply operation in viper emitter. 2015-06-04 14:00:29 +00:00
asmarm.h py: Implement native multiply operation in viper emitter. 2015-06-04 14:00:29 +00:00
asmthumb.c py/asmthumb: Flush D-cache, and invalidate I-cache on STM32F7. 2016-09-09 14:48:15 +10:00
asmthumb.h py: Add lsl/lsr/asr opcode support to inline Thumb2 assembler. 2015-10-19 14:26:19 +01:00
asmx64.c py/asmx64: Support all 16 regs in reg to memory move instructions. 2016-02-15 09:05:50 +00:00
asmx64.h py: Implement ptr32 load and store in viper emitter. 2015-10-13 00:50:17 +01:00
asmx86.c py/asmx86: Fix function definition to use int32_t instead of int. 2015-11-27 14:06:53 +00:00
asmx86.h py: Implement native multiply operation in viper emitter. 2015-06-04 14:00:29 +00:00
bc0.h py: Combine 3 comprehension opcodes (list/dict/set) into 1. 2016-09-19 12:28:03 +10:00
bc.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
bc.h py/bc.h: Rename _mp_code_state to _mp_code_state_t. 2016-08-27 23:23:51 +10:00
binary.c py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. 2015-11-29 14:25:35 +00:00
binary.h py/binary: Make return type of mp_binary_get_size size_t instead of int. 2015-05-17 18:12:19 +01:00
builtin.h py: Add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT. 2016-10-24 13:50:03 +11:00
builtinevex.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
builtinimport.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
compile.c py/compile: Remove debugging code for compiler dispatch. 2016-10-12 10:20:48 +11:00
compile.h py/compile: Add mp_compile_to_raw_code() to return raw code object. 2015-11-20 12:30:37 +00:00
emit.h py: Combine 3 comprehension emit functions (list/dict/set) into 1. 2016-09-19 12:23:31 +10:00
emitbc.c py: remove asserts that are always true in emitbc.c 2016-10-31 23:21:22 +03:00
emitcommon.c py/scope: Factor common code to find locals and close over them. 2016-09-30 13:53:00 +10:00
emitglue.c Merge remote-tracking branch 'micropython/master' 2016-10-20 23:01:13 +00:00
emitglue.h py/emitglue: Make mp_raw_code_t* arguments constant pointers. 2016-04-13 16:05:43 +01:00
emitinlinethumb.c py/emitinlinethumb: Use qstrs instead of char* for names of asm ops. 2016-02-23 15:20:39 +00:00
emitnative.c py: Combine 3 comprehension emit functions (list/dict/set) into 1. 2016-09-19 12:23:31 +10:00
formatfloat.c py/formatfloat: Fix further cases of buffer overflow in formatting. 2016-03-29 22:07:15 +01:00
formatfloat.h py: Implement mp_format_float for doubles and use where appropriate 2015-05-17 21:47:11 +01:00
frozenmod.c py: Allow to stat and import frozen mpy files using new frozen "VFS". 2016-05-23 12:42:23 +01:00
frozenmod.h py/{builtinimport,frozenmod}: Rework frozen modules support to support packages. 2016-05-21 21:38:50 +03:00
gc.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
gc.h py: Add ability to manually mark blocks during collect. 2016-11-21 14:11:49 -08:00
grammar.h py: Simplify "and" action within parser by making ident-rules explicit. 2016-04-14 13:49:23 +01:00
lexer.c py/lexer: Remove unnecessary code, and unreachable code. 2016-10-12 11:00:17 +11:00
lexer.h py: add async/await/async for/async with syntax 2016-04-13 15:26:38 +01:00
lexerstr.c py: Add MICROPY_ENABLE_COMPILER and MICROPY_PY_BUILTINS_EVAL_EXEC opts. 2015-12-18 12:35:44 +00:00
lexerunix.c unix: Allow to cat a script into stdin from the command line. 2015-06-04 23:42:45 +01:00
makeqstrdata.py py/makeqstrdata.py: Compute the qstr hash from bytes, not characters. 2016-09-02 14:32:47 +10:00
makeqstrdefs.py Merge remote-tracking branch 'micropython/master' 2016-09-19 13:32:29 -07:00
makeversionhdr.py py/makeversionhdr.py: Use any tag to describe the version. 2016-10-14 13:10:16 -07:00
malloc.c py/gc: Add MICROPY_GC_CONSERVATIVE_CLEAR option to always zero memory. 2016-08-26 15:35:26 +10:00
map.c py: Declare constant data as properly constant. 2016-05-20 12:46:20 +01:00
misc.h atmel-samd: Support auto-reset based on USB write activity. 2016-10-25 18:36:37 -07:00
mkenv.mk py: Move frozen bytecode Makefile rules from ports to common mk files. 2016-11-08 14:28:30 +11:00
mkrules.mk py: Change frozen build to not use -printf which isn't available on Mac OSX. 2016-11-18 16:18:12 -08:00
modarray.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
modbuiltins.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
modcmath.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
modcollections.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
modgc.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
modio.c py: Add mp_raise_OSError(errno) helper function. 2016-10-07 13:31:59 +11:00
modmath.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
modmicropython.c py/modmicropython: Add micropython.opt_level([value]) function. 2016-10-11 10:56:22 +11:00
modstruct.c py/modstruct: Remove unreachable code, and add comment about CPy diff. 2016-10-07 12:54:14 +11:00
modsys.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
modthread.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
moduerrno.c all: Remove 'name' member from mp_obj_module_t struct. 2016-09-22 00:23:16 +10:00
mpconfig.h py: Add MICROPY_FLOAT_CONST macro for defining float constants. 2016-11-03 12:33:01 +11:00
mperrno.h py/moduerrno: Add ECONNREFUSED, one of frequent networking errors. 2016-05-28 00:17:19 +03:00
mphal.h extmod/utime_mphal: Factor out implementations in terms of mp_hal_* for reuse. 2016-10-14 20:14:01 +03:00
mpprint.c py/objint: Use size_t for arguments that measure bytes/sizes. 2016-10-11 13:20:11 +11:00
mpprint.h lib/utils/pyhelp.c: Use mp_printf() instead of printf() 2016-10-21 18:30:58 +11:00
mpstate.c py: Add MICROPY_DYNAMIC_COMPILER option to config compiler at runtime. 2016-02-25 10:05:46 +00:00
mpstate.h This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
mpthread.h py/mpthread: Include mpstate.h when defining GIL macros. 2016-06-28 11:28:52 +01:00
mpz.c py: fix null pointer dereference in mpz.c, fix missing va_end in warning.c 2016-10-31 23:21:15 +03:00
mpz.h py: Factor duplicated function to calculate size of formatted int. 2016-10-11 13:11:32 +11:00
nativeglue.c py/viper: Allow casting of Python integers to viper pointers. 2016-02-09 13:29:20 +00:00
nlr.h This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
nlrsetjmp.c py/nlrsetjmp: Update to take into account new location of nlr_top. 2016-06-28 11:28:52 +01:00
nlrthumb.c py: Fix nlrthumb.c when DEBUG=1 is defined 2016-07-21 00:54:21 +03:00
nlrx64.S py/nlrx64.S: Prefix mp_thread_get_state with an underscore on Mac. 2016-07-11 14:27:47 +01:00
nlrx86.S unix: fix symbol references for x86 Mac 2016-11-02 00:42:04 +03:00
nlrxtensa.S py: Put all global state together in state structures. 2015-01-07 20:33:00 +00:00
obj.c py/{modbuiltins,obj}: Use MP_PYTHON_PRINTER where possible. 2016-10-22 01:07:07 +03:00
obj.h This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objarray.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objarray.h py/objarray: Split out header to allow direct access to object. 2016-07-06 18:19:27 +03:00
objattrtuple.c py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. 2015-11-29 14:25:35 +00:00
objbool.c py/objbool: Make a slight simplification of bool constructor. 2016-09-30 17:02:07 +10:00
objboundmeth.c py/objboundmeth: Allocate arg state on stack if heap alloc fails. 2016-03-08 15:36:53 +00:00
objcell.c py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. 2015-11-29 14:25:35 +00:00
objclosure.c py: Fix passing of some wide int types to printf varg format list. 2016-03-14 22:40:39 +00:00
objcomplex.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objdict.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objenumerate.c py: Use new code pattern for parsing kw args with mp_arg_parse_all. 2016-01-13 15:47:56 +00:00
objexcept.c py/objexcept: Don't convert errno to str in constructor, do it in print. 2016-05-12 14:27:52 +01:00
objexcept.h py: Change exception traceback data to use size_t instead of mp_uint_t. 2016-01-02 22:04:12 +00:00
objfilter.c py: Get rid of assert() in method argument checking functions. 2016-08-12 22:39:03 +03:00
objfloat.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objfun.c py: Specialise builtin funcs to use separate type for fixed arg count. 2016-10-21 16:26:01 +11:00
objfun.h py: Add constant table to bytecode. 2015-11-13 12:49:18 +00:00
objgenerator.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objgenerator.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objgetitemiter.c py/objgetitemiter: Typo fix in comment. 2016-01-23 23:30:06 +02:00
objint_longlong.c py/objint: Use size_t for arguments that measure bytes/sizes. 2016-10-11 13:20:11 +11:00
objint_mpz.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objint.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objint.h py/objint: Use size_t for arguments that measure bytes/sizes. 2016-10-11 13:20:11 +11:00
objlist.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objlist.h py: Fix adding of traceback so that it appends to existing info. 2015-02-27 00:36:39 +00:00
objmap.c py: Get rid of assert() in method argument checking functions. 2016-08-12 22:39:03 +03:00
objmodule.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objmodule.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
objnamedtuple.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objnone.c py/objnone: Use mp_generic_unary_op instead of custom one. 2016-09-19 12:28:55 +10:00
objobject.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objpolyiter.c py/objpolyiter: Implement instance-polymorphic iterator type. 2015-12-14 23:48:12 +02:00
objproperty.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objproperty.h This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objrange.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
objreversed.c py: Get rid of assert() in method argument checking functions. 2016-08-12 22:39:03 +03:00
objset.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objsingleton.c py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. 2015-11-29 14:25:35 +00:00
objslice.c py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR. 2015-11-29 14:25:35 +00:00
objstr.c py/objstr: Remove unreachable function used only for terse error msgs. 2016-09-27 15:45:42 +10:00
objstr.h py: Be more specific with MP_DECLARE_CONST_FUN_OBJ macros. 2016-10-21 16:26:01 +11:00
objstringio.c py: Use mp_raise_msg helper function where appropriate. 2016-10-17 12:17:37 +11:00
objstringio.h extmod/modujson: Implement ujson.load() to load JSON from a stream. 2016-10-13 11:46:14 +11:00
objstrunicode.c py/objstr,objstrunicode: Fix inconistent #if indentation. 2016-08-07 15:24:57 +03:00
objtuple.c py/objtuple: In tuple_cmp_helper, use mp_check_self instead of raising. 2016-08-14 16:28:05 +10:00
objtuple.h py: Add MP_ROM_* macros and mp_rom_* types and use them. 2015-11-29 14:25:04 +00:00
objtype.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
objtype.h 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
objzip.c py: Get rid of assert() in method argument checking functions. 2016-08-12 22:39:03 +03:00
opmethods.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
parse.c This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
parse.h py/parse: Improve constant folding to operate on small and big ints. 2016-01-07 14:40:35 +00:00
parsenum.c py: Add MICROPY_FLOAT_CONST macro for defining float constants. 2016-11-03 12:33:01 +11:00
parsenum.h py/parsenum: Use size_t to count bytes, and int for type of base arg. 2016-03-14 22:34:03 +00:00
parsenumbase.c py/parsenum: Fix compiler warnings for no decl and signed comparison. 2016-03-14 22:52:52 +00:00
parsenumbase.h py/parsenum: Use size_t to count bytes, and int for type of base arg. 2016-03-14 22:34:03 +00:00
py.mk py: Move frozen bytecode Makefile rules from ports to common mk files. 2016-11-08 14:28:30 +11:00
qstr.c py: Fix wrong assumption that m_renew will not move if shrinking 2016-11-02 23:15:41 +11:00
qstr.h py: Rename __QSTR_EXTRACT flag to NO_QSTR. 2016-06-16 01:42:48 +03:00
qstrdefs.h py: Add rules for automated extraction of qstrs from sources. 2016-04-16 13:18:09 +01:00
repl.c py: Declare constant data as properly constant. 2016-05-20 12:46:20 +01:00
repl.h py, readline: Add tab autocompletion for REPL. 2015-04-29 00:46:26 +01:00
ringbuf.h py/ringbuf.h: Add reusable ring buffer class. 2016-03-30 14:48:31 +03:00
runtime0.h This introduces an alternative hardware API called nativeio structured around different functions that are typically accelerated by native hardware. Its not meant to reflect the structure of the hardware. 2016-11-21 14:11:52 -08:00
runtime_utils.c py/runtime_utils: Fix nanbox build. 2016-04-25 20:03:14 +03:00
runtime.c py: Add support for properties on native objects when they are in the locals dict. 2016-11-18 16:18:14 -08:00
runtime.h py: Add mp_raise_OSError(errno) helper function. 2016-10-07 13:31:59 +11:00
scope.c py/scope: Factor common code to find locals and close over them. 2016-09-30 13:53:00 +10:00
scope.h py/scope: Factor common code to find locals and close over them. 2016-09-30 13:53:00 +10:00
sequence.c py/sequence: Fix reverse slicing of lists. 2016-10-30 15:54:19 -02:00
showbc.c py/showbc: Make printf's go to the platform print stream. 2016-09-20 11:30:54 +10:00
smallint.c py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
smallint.h py/smallint: Allow to override MP_SMALL_INT_MIN et al. 2016-01-08 13:43:56 +00:00
stackctrl.c py: Add MP_STATE_THREAD to hold state specific to a given thread. 2016-06-28 11:09:31 +01:00
stackctrl.h py/stackctrl: Add mp_stack_set_top() to explicitly set stack top value. 2016-03-07 14:12:24 +07:00
stream.c py/stream: Typo fix in comment. 2016-10-27 22:13:45 +03:00
stream.h py: Be more specific with MP_DECLARE_CONST_FUN_OBJ macros. 2016-10-21 16:26:01 +11:00
unicode.c py/repl: Check for an identifier char after the keyword. 2016-02-17 08:56:15 +00:00
unicode.h py: Move to guarded includes, everywhere in py/ core. 2015-01-01 20:32:09 +00:00
vm.c py: Fix typo in comment. 2016-11-18 16:17:56 -08:00
vmentrytable.h py: Combine 3 comprehension opcodes (list/dict/set) into 1. 2016-09-19 12:28:03 +10:00
vstr.c py/vstr: Combine vstr_new_size with vstr_new since they are rarely used. 2016-10-14 16:46:34 +11:00
warning.c py: fix null pointer dereference in mpz.c, fix missing va_end in warning.c 2016-10-31 23:21:15 +03:00