Dave Hylands
66d0c1052a
extmod: Fix uctypes size calculation for bitfields
2016-01-10 23:31:26 +02:00
Antonin ENFRUN
26ed00118b
uctypes: Implement assignment for scalar array
2016-01-03 20:23:20 +02:00
Paul Sokolovsky
467504da01
extmod/moduos_dupterm: Handle exceptions in call to dupterm's .write()
2016-01-01 22:06:38 +02:00
Paul Sokolovsky
30b7344eb0
extmod/moduos_dupterm: Make mp_uos_dupterm_tx_strn() function reusable.
...
Function to actually spool output terminal data to dupterm object.
2016-01-01 16:43:35 +02:00
Paul Sokolovsky
ddea7cb702
extmod/moduos_dupterm: Make uos.dupterm() implementation reusable.
...
That's just function which sets/gets dup terminal object, and can be
easily reused across ports.
2016-01-01 13:04:32 +02:00
Paul Sokolovsky
fb7b715b7b
extmod/modlwip: Use _ERR_BADF instead of magic number.
2015-12-30 16:43:35 +02:00
Paul Sokolovsky
bc25545fbb
extmod/modlwip: Avoid magic numeric values in memcpy().
2015-12-30 16:40:23 +02:00
Paul Sokolovsky
722fb2d251
extmod/modlwip: User proper field name and value names for socket state.
2015-12-30 16:26:23 +02:00
Paul Sokolovsky
fff2dd2627
extmod/modlwip: Mark some lwip_socket_obj_t's fields as volatile.
...
Any fields changed by asynchronous callbacks must be volatile.
2015-12-29 21:02:02 +02:00
Paul Sokolovsky
a63d4a6cc2
extmod/modlwip: tcp_recv: Use more regular and responsive poll pattern.
...
Polling once in 100ms means dismal performance.
TODO: Propagate this pattern to other polling places.
2015-12-29 20:37:22 +02:00
Paul Sokolovsky
7203b58e87
extmod/modubinascii: Add "separator" argument to hexlify().
...
This is extension to CPython, it allows to easily produce human-readable
hex dump:
>>> ubinascii.hexlify(b"\xaa\x55\xaa\x55", b" ")
b'aa 55 aa 55'
2015-12-26 02:15:56 +02:00
Paul Sokolovsky
1b7f622410
extmod/moduhashlib: Add namespace prefix for crypto-algorithms/sha256.h.
...
Everyone loves to names similar things the same, then there're conflicts
between different libraries. The namespace prefix used is "CRYAL_", which
is weird, and that's good, as that minimizes chance of another conflict.
2015-12-20 23:14:47 +02:00
Dave Hylands
755b01439b
unix: machine_mem improvements
...
This basically introduces the MICROPY_MACHINE_MEM_GET_READ_ADDR
and MICROPY_MACHINE_MEM_GET_WRITE_ADDR macros. If one of them is
not defined, then a default identity function is provided.
2015-12-18 22:01:03 +02:00
Dave Hylands
f925165942
unix: Move modmachine into unix directory
...
This leaves behind the common functionality in extmod/machine_mem.c
which can be used by all ports.
2015-12-13 01:21:36 +02:00
Paul Sokolovsky
d4a874b81e
extmod/moductypes: sizeof operation depends on layout type of structure.
...
Previously, sizeof() blindly assumed LAYOUT_NATIVE and tried to align
size even for packed LAYOUT_LITTLE_ENDIAN & LAYOUT_BIG_ENDIAN. As sizeof()
is implemented on a strucuture descriptor dictionary (not an structure
object), resolving this required passing layout type around.
2015-12-09 21:43:28 +02:00
Paul Sokolovsky
add6f4556e
extmod/moductypes: set_aligned(): Handle INT64/UINT64.
2015-12-04 00:59:08 +02:00
Damien George
999cedb90f
py: Wrap all obj-ptr conversions in MP_OBJ_TO_PTR/MP_OBJ_FROM_PTR.
...
This allows the mp_obj_t type to be configured to something other than a
pointer-sized primitive type.
This patch also includes additional changes to allow the code to compile
when sizeof(mp_uint_t) != sizeof(void*), such as using size_t instead of
mp_uint_t, and various casts.
2015-11-29 14:25:35 +00:00
Damien George
cbf7674025
py: Add MP_ROM_* macros and mp_rom_* types and use them.
2015-11-29 14:25:04 +00:00
Damien George
278f3592d4
extmod/modmachine: Use uintptr_t instead of mp_uint_t for address type.
2015-11-29 14:25:04 +00:00
Paul Sokolovsky
f0fbab7ca7
extmod/fsusermount: Make configurable with MICROPY_FSUSERMOUNT.
2015-11-25 13:19:36 +02:00
Paul Sokolovsky
3a1bbcc2ef
extmod: Move fsusermount.c from stmhal for cross-port reuse.
2015-11-25 13:19:36 +02:00
Damien George
a8aa1998ce
extmod/modure: Use correct integer type for n_args argument.
2015-11-23 15:05:58 +00:00
Galen Hazelwood
af3e45419c
extmod/lwip: Change void pointers to unions, include new mphal.h file
2015-11-04 23:24:04 +03:00
Paul Sokolovsky
d0601b0a1f
extmod/re1.5: Workaround issue with mingw32-gcc 4.2.1.
2015-11-01 02:39:01 +03:00
Paul Sokolovsky
aee704ebe1
extmod/modure: Make sure that errors in regexps are caught early.
2015-11-01 00:38:22 +03:00
Paul Sokolovsky
7cce2f664c
extmod/re1.5: Update to 0.8.
...
Contains implementation of ?: (non-capturing groups), ?? (non-greedy ?),
as well as much improved robustness, and edge cases and error handling by
Amir Plivatsky (@ampli).
2015-11-01 00:38:00 +03:00
Paul Sokolovsky
4deb4936d5
extmod/modlwip: socket->incoming changed by async callbacks, must be volatile.
...
Otherwise for code like:
while (socket->incoming == NULL) {
LWIP_DELAY(100);
}
a compiler may cache it in a register and it will be an infinite loop.
2015-10-31 19:51:23 +03:00
Paul Sokolovsky
20f85feecc
extmod/moductypes: When dealing with UINT64, use mp_obj_new_int_from_ull().
...
Since we now have it.
2015-10-28 00:21:42 +03:00
Paul Sokolovsky
404dae80a9
unix, stmhal: Introduce mp_hal_delay_ms(), mp_hal_ticks_ms().
...
These MPHAL functions are intended to replace previously used HAL_Delay(),
HAL_GetTick() to provide better naming and MPHAL separation (they are
fully equivalent otherwise).
Also, refactor extmod/modlwip to use them.
2015-10-27 23:31:42 +03:00
Paul Sokolovsky
858ed6d2f7
extmod/modlwip: Codestyle: no need for () when taking address of primary expr.
...
Like foo.bar or foo->bar.
2015-10-27 01:39:57 +03:00
Paul Sokolovsky
fa87e90cfa
extmod/modlwip: lwip_tcp_send(): Common subexpression elimination, use MIN().
2015-10-27 01:39:57 +03:00
Paul Sokolovsky
76217064ac
extmod/modlwip.c: Codestyle whitespace changes.
...
With MicroPython codestyle, with pointer casts, "*" packs with primary type
without space. Few other similar changes too (git diff -b -w is null).
2015-10-27 01:39:57 +03:00
Paul Sokolovsky
e0d7740a22
extmod/modlwip: slip: Use stream protocol and be port-independent.
...
Based on the original patch by Galen Hazelwood:
https://github.com/micropython/micropython/pull/1517 .
2015-10-27 00:04:59 +03:00
Paul Sokolovsky
393d0c1679
extmod/moductypes: Implement buffer protocol.
...
This is required to write structures to files, pass to FFI functions,
etc.
2015-10-26 01:03:24 +03:00
Galen Hazelwood
805c6534f8
extmod/modlwip: Initial commit of the lwip network stack module
2015-10-23 19:30:02 +03:00
Paul Sokolovsky
d19e4f0ba4
extmod/modussl: Remove unused header.
2015-10-20 17:41:59 +03:00
Paul Sokolovsky
aaa8867d4a
modussl: SSL socket wrapper module based on axTLS.
2015-10-06 18:10:39 +03:00
Paul Sokolovsky
2a6660ba59
extmod/modmachine: Avoid conflicts with system PAGE_SIZE define, if any.
2015-08-18 00:31:31 +03:00
Paul Sokolovsky
354d17523f
modmachine: Implement physical memory access using /dev/mem (Linux, etc).
...
This requires root access. And on recent Linux kernels, with
CONFIG_STRICT_DEVMEM option enabled, only address ranges listed in
/proc/iomem can be accessed. The above compiled-time option can be
however overriden with boot-time option "iomem=relaxed".
This also removed separate read/write paths - there unlikely would
be a case when they're different.
2015-07-08 11:37:23 +03:00
Damien George
722d4842df
extmod/modubinascii: Re-use error string to reduce code size.
...
Drops Thumb2 arch size by 24 bytes.
2015-07-06 11:34:29 +00:00
Paul Sokolovsky
7370fd5560
ubinascii: Fix a shadowed variable case.
2015-07-04 13:13:10 +03:00
Paul Sokolovsky
e284a95cc3
ubinascii: b2a_base64: Optimize away a modulo operation.
2015-07-04 12:36:46 +03:00
Galen Hazelwood
616986a5f3
extmod: Add a2b_base64 and b2a_base64 functions to ubinascii.
2015-07-04 12:26:52 +03:00
Paul Sokolovsky
1679696612
moductypes: Swap address and descriptor args in constructor.
...
Now address comes first, and args related to struct type are groupped next.
Besides clear groupping, should help catch errors eagerly (e.g. forgetting
to pass address will error out).
Also, improve args number checking/reporting overall.
2015-06-06 22:57:54 +03:00
Daniel Campora
7bd273b818
extmod: Actually expose the ubinascii python methods.
2015-05-22 09:56:09 +02:00
Paul Sokolovsky
2fddc68fdf
moduhashlib: Remove not implemented .hexdigest().
...
Effect can be easily achieved by ubinsacii.hexlify(hash.digest()).
2015-05-21 17:20:26 +03:00
Daniel Campora
0f716aced7
extmod: Expose mod_binascii_hexlify() and mod_binascii_unhexlify().
2015-05-21 17:19:41 +03:00
Dave Hylands
3ad94d6072
extmod: Add ubinascii.unhexlify
...
This also pulls out hex_digit from py/lexer.c and makes unichar_hex_digit
2015-05-20 09:29:22 +01:00
Damien George
c50772d19f
py: Add mp_obj_get_int_truncated and use it where appropriate.
...
mp_obj_get_int_truncated will raise a TypeError if the argument is not
an integral type. Use mp_obj_int_get_truncated only when you know the
argument is a small or big int.
2015-05-12 23:05:53 +01:00
Paul Sokolovsky
0116218fa8
modmachine: Add new module to access hardware, starting with physical memory.
...
Refactored from "stm" module, provides mem8, mem16, mem32 objects with
array subscript syntax.
2015-05-04 13:05:12 +03:00