Commit Graph

3740 Commits

Author SHA1 Message Date
Damien George
1bf5a022fe py: Add ldrex and strex to thumb2 inline assembler.
These are useful for implementing atomic lock operations.
2015-02-12 22:52:42 +00:00
Damien George
91fc4a9ce1 stmhal: Fix ADC multiplier from 4096 to 4095; optimise fp operation. 2015-02-11 00:25:22 +00:00
Paul Sokolovsky
99bcaa2fb6 modffi: Add toplevel func() function to create a function by pointer. 2015-02-11 07:21:03 +08:00
Damien George
891e444fec stmhal: Add boot.py and main.py to qstr definitions, to save some RAM. 2015-02-10 22:27:47 +00:00
Damien George
596f41da04 py: Reuse value stack in VM WITH_CLEANUP opcode to reduce C-stack size.
Saves 8 bytes C-stack on stmhal and 16 bytes on unix x86.
2015-02-10 13:21:42 +00:00
Damien George
ea0461dcd3 py: Add option to micropython.qstr_info() to dump actual qstrs. 2015-02-10 11:02:28 +00:00
danicampora
53716fcc3e cc3200: Rename GPIO module to Pin.
This change helps making the cc3200 port API a bit closer to stmhal.
The ramaining differences are due to the specific hardware details
of each chip. One feature that has been deliberately disabled is the
possibility to add custom names and custom pin mappings. Those
features are nice and convenient, but in this port, code size is a
major concern.
2015-02-09 20:01:54 +01:00
Damien George
d0df10b2c6 py: Don't unnecessarily create a bound method. 2015-02-09 16:59:15 +00:00
Damien George
48244044a2 py: Allow subclass of native object to delegate to the native buffer_p.
Addresses issue #1109.
2015-02-09 15:08:00 +00:00
Damien George
1a6721fefd py: Remove obsolete MP_F_LOAD_CONST_{INT,DEC} from emitnative.c. 2015-02-09 14:53:16 +00:00
danicampora
f8146d021b cc3200: Add bootmanager relocator to the repository.
This file was accidentally skipped when the cc3200 port was added to the
tree since binary files are by default igonerd by git. This is a small
precompiled piece of software provided by TI that simply relocates the
boot manager to the beginning of the RAM space after it has been written
by the ROM bootloader.
2015-02-09 15:03:12 +01:00
Paul Sokolovsky
194117a066 objstr: Fix bytes creation from array of long ints. 2015-02-09 12:11:49 +08:00
Damien George
28631537bd py: Add MICROPY_OBJ_BASE_ALIGNMENT to help with 16-bit ports. 2015-02-08 13:42:00 +00:00
Damien George
5351a48185 stmhal: Change type of received chr from char to int. 2015-02-08 13:41:28 +00:00
Damien George
f804833a97 py: Initialise variables in mp_parse correctly, to satisfy gcc warning. 2015-02-08 13:40:20 +00:00
Damien George
7d414a1b52 py: Parse big-int/float/imag constants directly in parser.
Previous to this patch, a big-int, float or imag constant was interned
(made into a qstr) and then parsed at runtime to create an object each
time it was needed.  This is wasteful in RAM and not efficient.  Now,
these constants are parsed straight away in the parser and turned into
objects.  This allows constants with large numbers of digits (so
addresses issue #1103) and takes us a step closer to #722.
2015-02-08 01:57:40 +00:00
Damien George
5f97aaeca4 py: Fix instance lookup, since object is not a real type. 2015-02-08 00:42:13 +00:00
Damien George
b5a790d2e6 unix-cpy: Fix compiler warning about unused variable. 2015-02-07 18:50:54 +00:00
Damien George
0bfc7638ba py: Protect mp_parse and mp_compile with nlr push/pop block.
To enable parsing constants more efficiently, mp_parse should be allowed
to raise an exception, and mp_compile can already raise a MemoryError.
So these functions need to be protected by an nlr push/pop block.

This patch adds that feature in all places.  This allows to simplify how
mp_parse and mp_compile are called: they now raise an exception if they
have an error and so explicit checking is not needed anymore.
2015-02-07 18:33:58 +00:00
Damien George
e1e359ff59 py: Put mp_sys_path, mp_sys_argv and gc_collected in mp_state_ctx_t.
Without mp_sys_path and mp_sys_argv in the root pointer section of the
state, their memory was being incorrectly collected by GC.
2015-02-07 17:24:10 +00:00
danicampora
8785645a95 cc3200: Add cc3200 port of MicroPython.
The port currently implements support for GPIO, RTC, ExtInt and the WiFi
subsystem. A small file system is available in the serial flash. A
bootloader which makes OTA updates possible, is also part of this initial
implementation.
2015-02-06 22:10:11 +00:00
blmorris
97f14606f5 stmhal/adc.c: Fix calculation of read_core_vref()
There was a stray factor of 2 (VBAT_DIV) that looks like it was copied incorrectly from the read_core_vbat() function.
The factor exists in read_core_vbat() because VBAT is measured through a 2:1 voltage divider.
read_core_vref now returns values around 1.21V (assuming that external reference voltage is 3.3V) which is in line with the datasheet values.
See comment at http://forum.micropython.org/viewtopic.php?f=6&t=533&p=2991#p2991
2015-02-06 13:56:27 -05:00
Paul Sokolovsky
8775caf9f1 modffi: Add .addr() method to just get symbol address. 2015-02-06 00:19:43 +02:00
Paul Sokolovsky
d6f648d04f esp8266: modesp: Add status() function for connection status. 2015-02-05 00:39:02 +02:00
Li lin
b276cf1977 fix type error 2015-02-04 21:39:34 +08:00
Paul Sokolovsky
1cd47c6315 esp8266: modesp: Add disconnect() function to disconnect from WiFi AP. 2015-02-03 02:02:29 +02:00
Damien George
5f64dc55d8 extmod: Make ujson.loads raise exception if given empty string.
Addresses issue #1097.
2015-02-02 21:52:19 +00:00
Damien George
e8b877be60 tests: Disable float/cmath_fun.py for native emitter. 2015-02-02 20:01:51 +00:00
Damien George
744e767458 py: Make list.sort keep stack usage within O(log(N)) bound.
Also fix list.sort so it works with user-defined types, and parse the
keyword arguments properly.

Addresses issue #338.
2015-02-02 15:14:22 +00:00
Damien George
ae3150cb5c tests: Add test for cmath module. 2015-02-02 12:52:38 +00:00
Damien George
f49782f005 py: Fix cmath.log10; fix printing of complex number with negative imag. 2015-02-02 12:52:14 +00:00
Paul Sokolovsky
471b2a8906 esp8266: modesp: Add connect() function to connect to WiFi AP. 2015-02-01 01:36:48 +02:00
Paul Sokolovsky
8fff7f8d38 esp8266: Add "reset" target to Makefile.
Just always keep jumper in bootloader position. After flashing, uPy
automatically executed. And to get back to bootloader, do "make reset".
2015-01-31 00:51:39 +02:00
Paul Sokolovsky
eca9a9323a esp8266: Update ROM address map to vendor SDK 0.9.5. 2015-01-31 00:36:41 +02:00
Paul Sokolovsky
98c4bc3fac py: Add MICROPY_PY_ALL_SPECIAL_METHODS and __iadd__ special method under it. 2015-01-31 00:35:56 +02:00
Damien George
32bade19d9 py: Convert CR to LF and CR LF to LF in lexer.
Only noticeable difference is how newlines are encoded in triple-quoted
strings.  The behaviour now matches CPython3.
2015-01-30 00:27:46 +00:00
Damien George
3da677e658 py: Implement Ellipsis object in native emitter. 2015-01-29 15:13:40 +00:00
Damien George
92ab95f215 tests: Add some tests to improve coverage. 2015-01-29 14:56:09 +00:00
Damien George
598af3a7d6 unix: Add "coverage" target to do coverage testing using gcov. 2015-01-29 14:54:38 +00:00
Damien George
827b0f747b py: Change vstr_null_terminate -> vstr_null_terminated_str, returns str. 2015-01-29 13:57:23 +00:00
Damien George
26c0b155fa tests: Make float/int_power.py pass on pyboard/single prec float. 2015-01-29 13:56:58 +00:00
Damien George
12c66be2b8 tests: Add some tests to improve coverage.
Used gcov to find some parts of vm.c, runtime.c, obj.c that were not
covered by any tests.  Still need to use gcov more thoroughly.
2015-01-29 00:44:11 +00:00
Damien George
81e70a88a7 py: Make REPL printing function print repr of object, not str.
Addresses issue #1014.
2015-01-28 23:53:13 +00:00
Damien George
0d3cb6726d py: Change vstr so that it doesn't null terminate buffer by default.
This cleans up vstr so that it's a pure "variable buffer", and the user
can decide whether they need to add a terminating null byte.  In most
places where vstr is used, the vstr did not need to be null terminated
and so this patch saves code size, a tiny bit of RAM, and makes vstr
usage more efficient.  When null termination is needed it must be
done explicitly using vstr_null_terminate.
2015-01-28 23:43:01 +00:00
Paul Sokolovsky
57aebe1714 tests: Add testcase for bytes() on values in range 128-255. 2015-01-28 22:29:51 +02:00
Paul Sokolovsky
bbd9251bac py: bytes(): Make sure we add values as bytes, not as chars. 2015-01-28 22:29:07 +02:00
Damien George
98e3a64694 py: Remove duplicated mp_obj_str_make_new function from objstrunicode.c. 2015-01-28 14:14:57 +00:00
Damien George
16677ce311 py: Be more precise about unicode type and disabled unicode behaviour. 2015-01-28 14:07:11 +00:00
Damien George
0ecd5988a2 stmhal: Remove unnecessary #include "systick.h" from pyexec.c.
Makes pyexec.c more re-usable for other ports.
2015-01-28 00:59:27 +00:00
Paul Sokolovsky
e9995bdea2 moduzlib: Align out buffer to block size; shrink when decompression done. 2015-01-28 02:30:01 +02:00