summaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAge
* py: Fix bug with right-shifting small ints by large amounts.Paul Sokolovsky2014-11-02
| | | | Undefined behavior in C, needs explicit check.
* docs: Cleanup and update some docs.Damien George2014-10-31
|
* tests: Add heapalloc.py.exp, since CPython can't generate it.Damien George2014-10-31
|
* py: Make gc.enable/disable just control auto-GC; alloc is still allowed.Damien George2014-10-31
| | | | | | gc.enable/disable are now the same as CPython: they just control whether automatic garbage collection is enabled or not. If disabled, you can still allocate heap memory, and initiate a manual collection.
* stmhal: Fix UART so bits counts number of data bits, not incl parity.Damien George2014-10-31
| | | | Addresses issue #950.
* py: Add builtin round function.Damien George2014-10-31
| | | | Addresses issue #934.
* docs: Add 2 images for tutorials.Damien George2014-10-31
|
* docs: Import documentation from source-code inline comments.Damien George2014-10-31
| | | | | The inline docs (prefixed with /// in .c files) have been converted to RST format and put in the docs subdirectory.
* tools: Make gendoc.py able to output RST format.Damien George2014-10-31
|
* stmhal: Update some inlined docs for network and CAN.Damien George2014-10-31
|
* docs: Fix links to images and other parts of the docs.Damien George2014-10-31
|
* docs: Add tutorial for fading LED using PWM, with fritzing imageShuning Bian2014-10-31
|
* stmhal: Implement support for RTS/CTS hardware flow control in UART.Damien George2014-10-31
| | | | | | | This is experimental support. API is subject to changes. RTS/CTS available on UART(2) and UART(3) only. Use as: uart = pyb.UART(2, 9600, flow=pyb.UART.RTS | pyb.UART.CTS)
* stmhal: Add ioctl to USB_VCP object, so it works with select.Damien George2014-10-31
| | | | | | | | | | | | | | | | This patch also enables non-blocking streams on stmhal port. One can now make a USB-UART pass-through function: def pass_through(usb, uart): while True: select.select([usb, uart], [], []) if usb.any(): uart.write(usb.read(256)) if uart.any(): usb.write(uart.read(256)) pass_through(pyb.USB_VCP(), pyb.UART(1, 9600))
* stmhal: Improve CAN print function.Damien George2014-10-30
|
* tests: Added and adapted CAN tests for extended messagesHenrik Sölver2014-10-30
|
* stmhal: Added support for extended CAN frames.Henrik Sölver2014-10-30
|
* mpz: Fix 64bit msvc buildstijn2014-10-30
| | | | | | msvc does not treat 1L a 64bit integer hence all occurences of shifting it left or right result in undefined behaviour since the maximum allowed shift count for 32bit ints is 31. Forcing the correct type explicitely, stored in MPZ_LONG_1, solves this.
* objstr: Allow to convert any buffer proto object to str.Paul Sokolovsky2014-10-31
| | | | | Original motivation is to support converting bytearrays, but easier to just support buffer protocol at all.
* py: mp_obj_str_get_str(): Work with bytes too.Paul Sokolovsky2014-10-31
| | | | | | | It should be fair to say that almost in all cases where some API call expects string, it should be also possible to pass byte string. For example, it should be open/delete/rename file with name as bytestring. Note that similar change was done quite a long ago to mp_obj_str_get_data().
* stmhal: Fix ptr arith in CC3000 code; enable network build in travis.Damien George2014-10-30
|
* moductypes: Make .sizeof() work with bytearrays.Paul Sokolovsky2014-10-30
|
* moductypes: Add test for accessing UINT8 array.Paul Sokolovsky2014-10-30
|
* moductypes: When dereferencing a field which is array of uint8, use bytearray.Paul Sokolovsky2014-10-30
| | | | | Because bytearrays are much friendlier to work with, e.g. they can be printed easily.
* moductypes: Make sure we can apply .sizeof() to all aggregate types.Paul Sokolovsky2014-10-30
| | | | | | | | | | | | Before, sizeof() could be applied to a structure field only if that field was itself a structure. Now it can be applied to PTR and ARRAY fields too. It's not possible to apply it to scalar fields though, because as soon as scalar field (int or float) is dereferenced, its value is converted into Python int/float value, and all original type info is lost. Moreover, we allow sizeof of type definitions too, and there int is used to represent (scalar) types. So, we have ambiguity what int may be - either dereferenced scalar structure field, or encoded scalar type. So, rather throw an error if user tries to apply sizeof() to int.
* py: Allow to override port config file and thus have >1 configs per port.Paul Sokolovsky2014-10-29
| | | | | | Use it like: make CFLAGS_EXTRA='-DMP_CONFIGFILE="<mpconfigport_my.h>"'
* Fix errors after enabling -Wpointer-arithstijn2014-10-29
|
* Add -Wpointer-arith flag to prevent problems with pointer arithmetic on void*stijn2014-10-29
|
* docs: Increase size of pyboard pinout.v1.3.5Damien George2014-10-26
|
* unix: Make -v dump memory info at exit.Paul Sokolovsky2014-10-26
| | | | Also, move bytecode dumps to -v -v, because they're too verbose for just -v.
* docs: Add quick reference page, with pinout and short example code.Damien George2014-10-26
|
* stmhal: Allow DAC object to be initialised from a pin.Damien George2014-10-26
| | | | Eg: dac = DAC(Pin.board.X5)
* unix: Implement -m option (execute module from stdlib).Paul Sokolovsky2014-10-26
| | | | | | | | Support for packages as argument not implemented, but otherwise error and exit handling should be correct. This for example will allow to do: pip-micropython install micropython-test.pystone micropython -m test.pystone
* stmhal: Improve REPL control codes; improve pyboard.py script.Damien George2014-10-26
| | | | | | | | | | | | | | | | | | | | Improvements are: 2 ctrl-C's are now needed to truly kill running script on pyboard, so make CDC interface allow multiple ctrl-C's through at once (ie sending b'\x03\x03' to pyboard now counts as 2 ctrl-C's). ctrl-C in friendly-repl can now stop multi-line input. In raw-repl mode, use ctrl-D to indicate end of running script, and also end of any error message. Thus, output of raw-repl is always at least 2 ctrl-D's and it's much easier to parse. pyboard.py is now a bit faster, handles exceptions from pyboard better (prints them and exits with exit code 1), prints out the pyboard output while the script is running (instead of waiting till the end), and allows to follow the output of a previous script when run with no arguments.
* tests: Get builtin_compile to skin properly on pyboard.Damien George2014-10-26
|
* stmhal: Change SPI phase spec to 0,1 to match standard conventions.Damien George2014-10-26
| | | | | | | Was 1 or 2, now 0 or 1 (respectively). 0 means sample MISO on first edge, 1 means sample on second edge. Addresses issue #936.
* py: Fix memoryview referencing so it retains ptr to original buffer.Damien George2014-10-26
| | | | | This way, if original parent object is GC'd, the memoryview still points to the underlying buffer data so that buffer is not GC'd.
* unix/windows: Disable sigaction on windows port.Damien George2014-10-26
|
* py: Fix VM dispatch following a pending exception check.Damien George2014-10-26
|
* changed file paths to new namesSebastian Plamauer2014-10-25
|
* py: Add mp_pending_exception global variable, for VM soft interrupt.Damien George2014-10-25
| | | | | | | | | | | This allows to implement KeyboardInterrupt on unix, and a much safer ctrl-C in stmhal port. First ctrl-C is a soft one, with hope that VM will notice it; second ctrl-C is a hard one that kills anything (for both unix and stmhal). One needs to check for a pending exception in the VM only for jump opcodes. Others can't produce an infinite loop (infinite recursion is caught by stack check).
* stmhal: Change USB PID when in CDC+HID mode.Damien George2014-10-25
| | | | | | | This gets CDC+HID working on Windows, since it needs a different PID for a different USB configuration. Thanks to tmbinc and dhylands.
* tests: Add test for compile builtin.Damien George2014-10-25
|
* py: Implement compile builtin, enabled only on unix port.Damien George2014-10-25
| | | | | | | This should be pretty compliant with CPython, except perhaps for some corner cases to do with globals/locals context. Addresses issue #879.
* py: Factor out mp_obj_is_package() function.Paul Sokolovsky2014-10-25
|
* py: mp_builtin___import__(): Add const to arg type.Paul Sokolovsky2014-10-25
|
* py: Compress load-int, load-fast, store-fast, unop, binop bytecodes.Damien George2014-10-25
| | | | | | | | | | | | | | | | | | | | | | There is a lot potential in compress bytecodes and make more use of the coding space. This patch introduces "multi" bytecodes which have their argument included in the bytecode (by addition). UNARY_OP and BINARY_OP now no longer take a 1 byte argument for the opcode. Rather, the opcode is included in the first byte itself. LOAD_FAST_[0,1,2] and STORE_FAST_[0,1,2] are removed in favour of their multi versions, which can take an argument between 0 and 15 inclusive. The majority of LOAD_FAST/STORE_FAST codes fit in this range and so this saves a byte for each of these. LOAD_CONST_SMALL_INT_MULTI is used to load small ints between -16 and 47 inclusive. Such ints are quite common and now only need 1 byte to store, and now have much faster decoding. In all this patch saves about 2% RAM for typically bytecode (1.8% on 64-bit test, 2.5% on pyboard test). It also reduces the binary size (because bytecodes are simplified) and doesn't harm performance.
* py: Store bytecode arg names in bytecode (were in own array).Damien George2014-10-25
| | | | | | | | | | | | | | | | | | | | This saves a lot of RAM for 2 reasons: 1. For functions that don't have default values, var args or var kw args (which is a large number of functions in the general case), the mp_obj_fun_bc_t type now fits in 1 GC block (previously needed 2 because of the extra pointer to point to the arg_names array). So this saves 16 bytes per function (32 bytes on 64-bit machines). 2. Combining separate memory regions generally saves RAM because the unused bytes at the end of the GC block are saved for 1 of the blocks (since that block doesn't exist on its own anymore). So generally this saves 8 bytes per function. Tested by importing lots of modules: - 64-bit Linux gave about an 8% RAM saving for 86k of used RAM. - pyboard gave about a 6% RAM saving for 31k of used RAM.
* unix: Allow -X heapsize= option take numbers with K & M suffixes.Paul Sokolovsky2014-10-25
| | | | For kilobytes and megabytes respectively.
* stmhal: Change fresh boot.py and main.py to use \r\n newlines.Damien George2014-10-25
| | | | This is so it's compatible with Windows.