Damien George
34e43c7ee9
stmhal: Improve efficiency of SysTick IRQ and HAL_Delay.
...
SysTick IRQ now increases millisecond counter directly (ie without
calling HAL_IncTick). Provide our own version of HAL_Delay that does a
wfi while waiting. This more than halves power consumption when running
a loop containing a pyb.delay call. It used to be like this, but new
version of HAL library regressed this feature.
2014-08-25 18:12:44 +01:00
Damien George
3475b04101
teensy: Fix multiple definition of irq functions.
2014-08-25 18:12:23 +01:00
Damien George
29c92a407c
stmhal: Use MP_OBJ_NEW_SMALL_INT directly in pyb.micros/millis.
...
Also some whitespace cleanup.
2014-08-25 17:38:55 +01:00
Dave Hylands
2bf044442e
Add support for pyb.micros() by using the systick timer.
...
I also removed trailing spaces from modpyb.c which affected a couple
of lines technically not part of this patch.
Tested using: https://github.com/dhylands/upy-examples/blob/master/micros_test.py
which eventually fails due to wraparound issues (I could fix the test to compensate
but didn't bother)
2014-08-25 17:38:55 +01:00
Dave Hylands
8c0add4eee
Add save/restore_irq
...
Factored irq functions into a separate file.
2014-08-25 17:38:55 +01:00
Damien George
e5cbb70328
stmhal: Make enable_irq and disable_irq inline functions.
...
These functions are generally 1 machine instruction, and are used in
critical code, so makes sense to have them inline.
Also leave these functions uninverted (ie 0 means enable, 1 means
disable) and provide macro constants if you really need to distinguish
the states. This makes for smaller code as well (combined with
inlining).
Applied to teensy port as well.
2014-08-25 13:24:33 +01:00
Dave Hylands
9480138f0c
Add save/restore_irq
...
Factored irq functions into a separate file.
2014-08-25 12:22:11 +01:00
Damien George
7310fd469a
py: Consolidate min/max functions into one, and add key= argument.
...
Addresses issue #811 .
2014-08-24 19:14:09 +01:00
Damien George
1d8a06406a
examples: Added pins.py example script to list pin config/af.
...
Script is due to Dave Hylands.
2014-08-24 18:34:38 +01:00
Damien George
2c4e67e32d
stmhal, pin: Update documentation.
2014-08-24 18:30:22 +01:00
Dave Hylands
3d945559d4
Added python script to map AF to a pin name
...
Added some functions to Pin class to query mode, pull, and af
2014-08-24 18:21:08 +01:00
Damien George
c668d51b08
Merge branch 'dhylands-localtime'
2014-08-24 17:41:31 +01:00
Damien George
8ba832456e
stmhal, modtime: Small changes, reduced code size by around 80 bytes.
...
Also added test for modtime.
2014-08-24 17:40:24 +01:00
Dave Hylands
6678595e7e
Add time.mktime and enhance time.localtime (for stmhal)
...
Now you can use time.localtime on the timestamps presented by os.stat
2014-08-24 17:00:03 +01:00
Damien George
3c658a4e75
py: Fix bug where GC collected native/viper/asm function data.
...
Because (for Thumb) a function pointer has the LSB set, pointers to
dynamic functions in RAM (eg native, viper or asm functions) were not
being traced by the GC. This patch is a comprehensive fix for this.
Addresses issue #820 .
2014-08-24 16:28:17 +01:00
Damien George
25fc41dd31
unix, modtermios: Make it properly configurable; fix spelling mistake.
2014-08-24 13:19:22 +01:00
Paul Sokolovsky
4f9ebade60
modtermios: Add "termios" unix module, subset of CPython's.
...
Also provides setraw() function from "tty" module (which in CPython is
implemented in Python). The idea here is that 95% of "termios" module usage
is to set raw mode to allow access to normal serial devices. Then, instead
of exporting gazillion termios symbols, it's better to implement it in C,
and export minimal number of symbols (mostly baud rates and drain values).
2014-08-23 06:09:46 +03:00
Damien George
72b115cbaa
extmod, zlibd: Make some simple ROM and RAM savings.
...
ROM down by 320 bytes on stmhal. RAM down by 5.5k for a decompression
object.
2014-08-22 18:38:16 +01:00
Damien George
26a0d4f4f1
py: Change hash and len members of str from 16 bit to full word.
...
This allows to make strings longer than 64k. It doesn't use any more
RAM with current GC because a str object still fits in a GC block.
2014-08-22 18:34:28 +01:00
Damien George
69b7dae362
py: Small cleanup in stream.c.
2014-08-22 18:30:02 +01:00
Damien George
d5e7f6e37e
py: Speed up GC allocation.
...
This simple patch gives a very significant speed up for memory allocation
with the GC.
Eg, on PYBv1.0:
tests/basics/dict_del.py: 3.55 seconds -> 1.19 seconds
tests/misc/rge_sm.py: 15.3 seconds -> 2.48 seconds
2014-08-22 18:17:02 +01:00
Paul Sokolovsky
13ec400f28
Merge pull request #796 from turbinenreiter/makeinstall
...
unix: Added install/uninstall
2014-08-18 22:29:37 +03:00
Damien George
7fe2191c9b
py: Code clean-up in native emitter; improve thumb native calls.
2014-08-16 22:31:57 +01:00
Damien George
86de21b810
py: Viper can call functions with native types, and raise exceptions.
2014-08-16 22:06:11 +01:00
Damien George
339bdccc58
Merge pull request #803 from dhylands/ld-opt
...
Put some code into the first 16K of flash
2014-08-16 16:09:39 +01:00
Dave Hylands
3688414d9d
Put some code into the first 16K of flash
...
This basically shrinks the remaining size of flash in the portion
that goes after the internal flash drive.
2014-08-16 08:00:12 -07:00
Damien George
8f81b5cb4b
py: Put SystemExit in builtin namespace.
...
Also fix unix port so that SystemExit with no arg exits with value 0.
2014-08-16 14:32:06 +01:00
Damien George
b63be37be1
stmhal: In safe mode, still mount SD card and present as MSD over USB.
...
It's still "safe" because no scripts are run. Remove the SD card if you
want to access the internal flash filesystem. Addresses issue #616 .
Also: remove obsolete pyb.source_dir setting, and reset pyb.main and
pyb.usb_mode settings on soft-reset.
2014-08-16 14:23:22 +01:00
Damien George
b0accc8571
stmhal: Fix printing of pin name in error message.
2014-08-16 13:56:19 +01:00
Damien George
d779b9642f
tests: Wait for just over 1 sec when testing RTC.
...
Waiting for 1000ms between seconds of RTC is sometimes too quick.
Waiting for 1001ms is enough for the RTC to pass 1 second.
2014-08-16 13:39:14 +01:00
Damien George
244476e3e6
stmhal: For non-debug compile, enable CC/LD opt to remove dead code.
...
Saves over 35k ROM due to elimination of unused HAL functions. All
tests pass.
Addresses issue #702 .
2014-08-16 13:37:05 +01:00
Damien George
c84aa41990
Merge branch 'danpeirce-master'
2014-08-16 11:56:16 +01:00
Dan Peirce
f0c3a7e781
teensy/README.md (corrected typo)
2014-08-16 11:54:36 +01:00
Dan Peirce
6009309c33
modified: teensy/README.md
...
Updated teensy/README.md to reflect change in build process (teensyduino is no
longer required for build).
2014-08-16 11:54:36 +01:00
Damien George
e6c0dff967
py: Viper can now store to global.
2014-08-15 23:47:59 +01:00
Damien George
a5190a7dac
py: Fix typing of viper locals; allow default types in annotation.
2014-08-15 22:39:08 +01:00
Damien George
2ac4af6946
py: Allow viper to have type annotations.
...
Viper functions can now be annotated with the type of their arguments
and return value. Eg:
@micropython.viper
def f(x:int) -> int:
return x + 1
2014-08-15 16:45:41 +01:00
Damien George
6be0b0a8ec
py: Clean up and simplify functions in scope; add STATIC in compiler.
...
Some small code clean-ups that result in about 80 bytes ROM saving for
stmhal.
2014-08-15 14:30:52 +01:00
Damien George
bf133f7737
stmhal: Resolve question in comment about timer clock.
2014-08-14 00:30:14 +01:00
Damien George
2c781eabbd
Merge pull request #798 from stinos/msvc-alignof
...
msvc: Use built-in alignof
2014-08-13 13:34:41 +01:00
Damien George
9b7a8ee8f1
py: Fix mult by negative number of tuple, list, str, bytes.
...
Multiplication of a tuple, list, str or bytes now yields an empty
sequence (instead of crashing). Addresses issue #799
Also added ability to mult bytes on LHS by integer.
2014-08-13 13:22:24 +01:00
stijn
8cce8b7c4c
msvc: Use built-in alignof
...
This also fixes a 'unnamed type definition in parentheses' warning on the
alignof implementation define in binary.c
2014-08-13 10:19:56 +02:00
Damien George
9d02780eaf
Merge branch 'pfalcon-modzlibd'
2014-08-12 23:24:29 +01:00
Damien George
1ddd844815
extmod: Finish rename of zlib to zlibd; enable zlibd on stmhal.
2014-08-12 23:23:53 +01:00
Paul Sokolovsky
5073d3da07
tests: Add test for zlibd module.
2014-08-13 00:26:26 +03:00
Paul Sokolovsky
8882c20b8f
modzlibd: Add tinfl.c from miniz SVN repo, r63.
...
The only change is line-ending convesion to LF.
2014-08-13 00:26:19 +03:00
Paul Sokolovsky
510296f25a
modzlibd: Decompress part of "zlib" module, based on miniz tinfl.c .
2014-08-13 00:26:19 +03:00
Damien George
75ec22bf11
py: #if guard qstrs that are optional.
...
Also disable gc module on bare-arm port.
2014-08-12 20:16:03 +01:00
Damien George
105e32f1a5
stmhal: Enable moductypes by default.
...
Also fixes compiler error in moductypes when compiled without debugging.
Addresses issue #778 .
2014-08-12 20:02:26 +01:00
Damien George
f20375eedd
py: Add .real and .imag attributes to complex numbers.
2014-08-12 19:57:52 +01:00