Commit Graph

7834 Commits

Author SHA1 Message Date
Paul Sokolovsky
16a3534ad4 unix/moduselect: Implement ipoll() method with no-allocation policy.
ipoll() allows to poll streams without allocating any memory: this method
returns an iterator (a poll object itself), and the iterator yields
preallocated "callee-owned tuple" with polling results for each active
stream. The only operation a caller is allowed to do with this tuple is
extracting values from it (storing the tuple as a whole somewhere is
not allowed).
2017-02-13 00:23:23 +03:00
Glenn Ruben Bakke
2d58fc6625 nrf5/sdk: Updating advertisment funciton in bluetooth le driver to iterate through services passed in and calculate individiual uuid sizes. 2017-02-12 15:20:41 +01:00
Glenn Ruben Bakke
18aab4a6b9 nrf5/modules: Updating advertisment method in peripheral class to memset advertisment structure. Also applying service list if set to the advertisment structure. 2017-02-12 15:17:30 +01:00
Glenn Ruben Bakke
2d72fe8518 nrf5/modules: Updating ubluepy module header usage example. Correcting enum for UUID types to start index from 1. Expanding advertisment data structure to also include service list members. 2017-02-12 15:14:41 +01:00
Glenn Ruben Bakke
90523d6ae0 nrf5/sdk: Adding static boolean for keeping track of whether advertisment is in progress in the bluetooth driver. Now, advertisment can be restarted with new data any time. 2017-02-12 14:24:15 +01:00
Glenn Ruben Bakke
9d24742351 nrf5/modules: Updating ubluepy peripheral class to use mp_const_none instead of MP_OBJ_NULL for unset values in advertisment method parameter list. Adding extraction of the service list in the advertisment method. The list is not yet handled. 2017-02-12 14:23:13 +01:00
Glenn Ruben Bakke
ff9cefa6b2 nrf5/modules: Adding a few examples in the modubluepy.h to get easier copy paste when implementing. 2017-02-11 18:09:22 +01:00
Glenn Ruben Bakke
b65553e57f nrf5/sdk: Successful device name advertisment. Added flags to advertisment packet and enable device name byte copy into the advertisment data. 2017-02-11 18:02:22 +01:00
Glenn Ruben Bakke
3a68e40102 nrf5/modules: Turning ubluepy peripheral advertisment function into a keyword argument function so that it would be possible to set device name, service uuids, or manually constructed data payload. 2017-02-11 17:43:47 +01:00
Glenn Ruben Bakke
1a3ae62fd1 nrf5/sdk: Updating softdevice driver with function to set advertisment data and start advertisment. Does not apply device name yet. Work in progress. 2017-02-11 17:41:16 +01:00
Glenn Ruben Bakke
8cc0eb23d9 nrf5/modules: Adding new structure to ubluepy in order to pass advertisment data information to the bluetooth le stack. 2017-02-11 17:37:48 +01:00
Glenn Ruben Bakke
d6b12b63d0 nrf5/modules: Adding function function to add characteristics to the ubluepy service. Enable function in service's local dict table. 2017-02-11 16:04:48 +01:00
Glenn Ruben Bakke
c9aa561aad nrf5/modules: Adding function in bluetooth le driver to add characteristic to the bluetooth le stack. 2017-02-11 16:01:50 +01:00
Glenn Ruben Bakke
a43f5cdd4e nrf5/modules: Adding more members to ublue characteristic object structure. 2017-02-11 16:00:43 +01:00
Glenn Ruben Bakke
c580633598 nrf5/modules: Adding characteristic class to ubluepy globals table. 2017-02-11 14:35:00 +01:00
Glenn Ruben Bakke
c127938103 nrf5/modules: Updating ubluepy characteristic implementation. 2017-02-11 14:21:05 +01:00
Glenn Ruben Bakke
7f26704e27 nrf5/modules: Re-arranging includes in ubluepy_service.c 2017-02-11 14:20:01 +01:00
Glenn Ruben Bakke
5f19113c94 nrf5/modules: Adding ubluepy charactaristic type struct. 2017-02-11 14:19:08 +01:00
Glenn Ruben Bakke
fad456d18f nrf5/modules: Updating ubluepy with more implementation in UUID and Service. Adding function in bluetooth le driver which adds services to the bluetooth stack. Making service take UUID object and Service type (primary/secondary) as constructor parameter in Service class. 2017-02-10 21:09:03 +01:00
Glenn Ruben Bakke
3223026764 nrf5: Adding ubluepy to include path. 2017-02-10 21:03:30 +01:00
Paul Sokolovsky
aac2db9aaf tools/upip: Update to 1.1.5. Better and more user-friendly error handling. 2017-02-10 20:18:05 +03:00
Damien George
e08395a35c tests/misc: Add test for line number printing with large bytecode chunk. 2017-02-10 12:02:02 +11:00
Damien George
cc2dbdd1fe py/emitbc: Produce correct line number info for large bytecode chunks.
Previous to this patch, for large chunks of bytecode that originated from
a single source-code line, the bytecode-line mapping would generate
something like (for 42 bytecode bytes and 1 line):

  BC_SKIP=31  LINE_SKIP=1
  BC_SKIP=11  LINE_SKIP=0

This would mean that any errors in the last 11 bytecode bytes would be
reported on the following line.  This patch fixes it to generate instead:

  BC_SKIP=31  LINE_SKIP=0
  BC_SKIP=11  LINE_SKIP=1
2017-02-10 11:58:10 +11:00
Glenn Ruben Bakke
f549c8df43 nrf5/modules: Updating ubluepy UUID class constructor with some naive parsing of 128-bit UUIDs, and pass this to the softdevice driver for registration. 2017-02-10 00:02:35 +01:00
Glenn Ruben Bakke
b93644221e nrf5/sdk: Adding new function to the softdevice handler driver to add vendor specific uuids and return an index to the entry back by reference. 2017-02-09 23:57:30 +01:00
Glenn Ruben Bakke
8a551e1354 nrf5/modules: Updating ubluepy UUID class with constructor that can construct an object based on hex value of 16-bit or string of 16-bit prefixed with '0x'. 2017-02-09 23:05:12 +01:00
Damien George
8f1c6d952a extmod/vfs: Raise OSError(EEXIST) on attempt to mkdir a mount point. 2017-02-09 15:51:34 +11:00
Damien George
c66c393130 examples/hwapi: Be sure to import Signal when it's used. 2017-02-09 15:21:57 +11:00
Kai Fricke
c8febe631a examples/hwapi: Add hwconfig_pyboard.py for pyboard. 2017-02-09 15:19:28 +11:00
dmazzella
18e6569166 py/objtype: Implement __delattr__ and __setattr__.
This patch implements support for class methods __delattr__ and __setattr__
for customising attribute access.  It is controlled by the config option
MICROPY_PY_DELATTR_SETATTR and is disabled by default.
2017-02-09 12:40:15 +11:00
Damien George
ec7dc7f8d7 extmod/vfs: Allow to mount a block device, not just a VFS object.
If the mounted object doesn't have a "mount" method then assume it's a
block device and try to detect the filesystem.  Since we currently only
support FAT filesystems, the behaviour is to just try and create a VfsFat
object automatically, using the given block device.
2017-02-09 12:03:12 +11:00
Glenn Ruben Bakke
ddc31d4084 nrf5/modules: Adding Peripheral, Service and UUID class to the ubluepy module globals table. 2017-02-08 18:49:29 +01:00
Glenn Ruben Bakke
0264f68698 nrf5/modules: Extending the implementation of Peripheral class in ubluepy. 2017-02-08 18:48:35 +01:00
Glenn Ruben Bakke
9057fe550b nrf5/modules: Extending the implementation of UUID class in ubluepy. 2017-02-08 18:47:33 +01:00
Glenn Ruben Bakke
323533c3d3 nrf5/sdk: Adding configuration to enable the ubluepy peripheral class when using softdevice 132 from the SDK. 2017-02-08 18:45:49 +01:00
Paul Sokolovsky
181f7d1450 extmod/machine_signal: Implement Signal .on() and .off() methods.
Each method asserts and deasserts signal respectively. They are equivalent
to .value(1) and .value(0) but conceptually simpler (and may help to avoid
confusion with inverted signals, where "asserted" state means logical 0
output).
2017-02-08 11:14:23 +03:00
Damien George
7ae9bee790 stmhal/Makefile: Drop use of -mabi=aapcs-linux; link libgcc by default.
The aapcs-linux ABI is not required, instead the default aapcs ABI is
enough.  And using the default ABI means that the provided libgcc will now
link with the firmware without warnings about variable vs fixed enums.

Although the binary size increases by about 1k, RAM usage is slightly
decreased.  And libgcc may prove useful in the future for things like
long-long division.
2017-02-08 11:50:22 +11:00
Dave Hylands
aa34c553ec py/nlr: Fix execstack builds for ARM.
It seems that the gcc toolchain on the RaspberryPi
likes %progbits instead of @progbits. I verified that
%progbits also works under x86, so this should
fix #2848 and fix #2842

I verified that unix and mpy-cross both compile
on my RaspberryPi and on my x64 machine.
2017-02-08 11:12:26 +11:00
Damien George
af622eb2a6 py/map: Change mp_uint_t to size_t where appropriate.
The internal map/set functions now use size_t exclusively for computing
addresses.  size_t is enough to reach all of available memory when
computing addresses so is the right type to use.  In particular, for
nanbox builds it saves quite a bit of code size and RAM compared to the
original use of mp_uint_t (which is 64-bits on nanbox builds).
2017-02-08 11:00:15 +11:00
Damien George
a25aa2bcc3 py/asmxtensa.h: Explicitly cast args to 32-bits so left-shift is legal.
For archs that have 16-bit pointers, the asmxtensa.h file can give compiler
warnings about left-shift being greater than the width of the type (due to
the inline functions in this header file).  Explicitly casting the
constants to uint32_t stops these warnings.
2017-02-08 10:48:51 +11:00
Glenn Ruben Bakke
35a7aa1331 nrf5: Adding ubluepy module to builtins if bluetooth stack is selected. Disable NUS profile by default. Adding source for ubluepy module into makefile to be included in build. The source is only linked if MICROPY_PY_UBLUEPY is set. 2017-02-08 00:05:37 +01:00
Glenn Ruben Bakke
0f609cd799 nrf5: Aligning code after upmerge with master. Mostly FAT FS related updates. Not tested after merge. 2017-02-07 23:30:54 +01:00
Glenn Ruben Bakke
122d0430db Merge branch 'nrf52' into nrf5_no_sdk 2017-02-07 22:27:32 +01:00
Glenn Ruben Bakke
4cf7fd151e Merge branch 'master' into nrf52 2017-02-07 22:26:13 +01:00
Glenn Ruben Bakke
723943abde nrf5/modules: Adding new and print function to ubluepy peripheral class. Template functions only. 2017-02-07 22:17:55 +01:00
Damien George
21f08524ba docs: Add M-logo as favicon. 2017-02-07 20:04:40 +11:00
Damien George
3217bbe491 docs/esp8266/tutorial: Specify the baudrate in picocom example command. 2017-02-07 16:58:43 +11:00
Damien George
9779c99317 stmhal: Add ability to skip booting from SD card via /flash/SKIPSD file. 2017-02-07 12:35:39 +11:00
Paul Sokolovsky
de48a27d60 unix/main: Properly handle MICROPYPATH starting with ':'.
In other words, where first path component is an empty string.
2017-02-07 02:13:01 +03:00
Glenn Ruben Bakke
b6779fa95a nrf5/modules: Adding ubluepy UUID class template. 2017-02-06 20:51:24 +01:00