Damien George
73c58150f5
extmod/modbtree: Retain reference to underlying stream so it's not GC'd.
...
For ports that have a system malloc which is not garbage collected (eg
unix, esp32), the stream object for the DB must be retained separately to
prevent it from being reclaimed by the MicroPython GC (because the
berkeley-db library uses malloc to allocate the DB structure which stores
the only reference to the stream).
Although in some cases the user code will explicitly retain a reference to
the underlying stream because it needs to call close() on it, this is not
always the case, eg in cases where the DB is intended to live forever.
Fixes issue #5940 .
2020-05-02 16:08:04 +10:00
Damien George
5c8bf12acf
all: Fix auto-enable of MICROPY_GCREGS_SETJMP to select GC behaviour.
...
Only enable it if MICROPY_GCREGS_SETJMP is not already defined, and no
supported architecture is defined.
2020-04-30 16:49:42 +10:00
Jim Mussared
710426024a
all: Factor gchelper code to one place and use it for unix & ARM ports.
...
No functionality change is intended with this commit, it just consolidates
the separate implementations of GC helper code to the lib/utils/ directory
as a general set of helper functions useful for any port. This reduces
duplication of code, and makes it easier for future ports or embedders to
get the GC implementation correct.
Ports should now link against gchelper_native.c and either gchelper_m0.s or
gchelper_m3.s (currently only Cortex-M is supported but other architectures
can follow), or use the fallback gchelper_generic.c which will work on
x86/x64/ARM.
The gc_helper_get_sp function from gchelper_m3.s is not really GC related
and was only used by cc3200, so it has been moved to that port and renamed
to cortex_m3_get_sp.
2020-04-29 23:45:19 +10:00
Jim Mussared
def76fe4d9
all: Use MP_ERROR_TEXT for all error messages.
2020-04-05 15:02:06 +10:00
Jim Mussared
c34e7b9d4c
py/dynruntime.mk: Set MICROPY_ENABLE_DYNRUNTIME instead of per module.
...
So this setting could be used by other source files if needed.
2020-04-05 14:13:02 +10:00
Thomas Friebel
baf8aa286a
examples/bluetooth: Replace "connectable" parameter with "adv_type".
...
Follow up to dd0bc26e65
which changed the
parameter list of the IRQ_SCAN_RESULT event. Adapt
ble_temperature_central.py accordingly.
2020-03-12 10:58:08 +11:00
Damien George
9c07c973c1
examples/natmod: Add .gitignore to ignore generated example .mpy files.
2020-03-03 12:54:17 +11:00
Damien George
69661f3343
all: Reformat C and Python source code with tools/codeformat.py.
...
This is run with uncrustify 0.70.1, and black 19.10b0.
2020-02-28 10:33:03 +11:00
Damien George
3c58d9a1a5
examples/bluetooth/ble_temperature_central.py: Shorten comment.
...
So the line length is less than 100 characters.
2020-02-28 10:30:49 +11:00
Damien George
a0441fc15d
examples/accellog.py: Shift long comments to their own line.
...
To improve interaction with black formatter.
2020-02-28 10:30:37 +11:00
Damien George
a3df152fef
examples/natmod: Add very simple features0 example to compute factorial.
2019-12-19 17:06:27 +11:00
Damien George
ba12cdba85
examples/network: Add testing key/cert to SSL HTTP server example.
...
This example will now work on all ports with networking and ssl support,
with both axtls and mbedtls.
2019-12-18 15:04:00 +11:00
Damien George
ba84453f77
examples/natmod: Add urandom native module example.
2019-12-13 13:33:40 +11:00
Damien George
60c3c22a0d
examples/natmod: Add features1 and features2 examples.
2019-12-12 20:15:28 +11:00
Damien George
42c1aed2bb
examples/natmod: Add ure example.
2019-12-12 20:15:28 +11:00
Damien George
2a485e1084
examples/natmod: Add framebuf example.
2019-12-12 20:15:28 +11:00
Damien George
16e591e412
examples/natmod: Add uzlib example.
2019-12-12 20:15:28 +11:00
Damien George
83f9fb169e
examples/natmod: Add uheapq example.
2019-12-12 20:15:28 +11:00
Damien George
37817ab4ba
examples/natmod: Add btree example.
2019-12-12 20:15:28 +11:00
Jim Mussared
0527baf7fa
examples/bluetooth: Add example for reading temperature sensor.
2019-11-25 17:32:10 +11:00
Jim Mussared
3436223630
examples/bluetooth: Add helpers for decoding advertising payloads.
...
Extracts name and service UUID fields.
2019-11-25 17:32:10 +11:00
Damien George
1266ba9754
examples/embedding: Remove obsolete fatfs files from build.
2019-11-11 11:37:32 +11:00
Jim Mussared
25946d1ef4
examples/bluetooth/ble_uart_peripheral: Use append mode for RX char.
2019-10-29 23:11:11 +11:00
Damien George
a8138b75b1
examples/embedding: Replace symlink of mpconfigport.h with real file.
2019-10-29 22:53:34 +11:00
Jim Mussared
9c5262f25e
examples/bluetooth/ble_uart_peripheral.py: Add usage demo.
2019-10-22 14:30:23 +11:00
Jim Mussared
3e1af5b36f
examples/bluetooth: Use UUIDs directly to add services to adv payload.
2019-10-22 13:54:09 +11:00
Jim Mussared
25a228af7e
examples/bluetooth: Add basic BLE peripheral examples.
...
Consisting of:
- ble_advertising.py -- helper to generate advertising payload.
- ble_temperature.py -- simple temperature device.
- ble_uart_periperhal.py -- BLE UART wrapper.
- ble_uart_repl.py -- dupterm-compatible uart.
2019-10-18 13:36:51 +11:00
Damien George
af20c2ead3
py: Add global default_emit_opt variable to make emit kind persistent.
...
mp_compile no longer takes an emit_opt argument, rather this setting is now
provided by the global default_emit_opt variable.
Now, when -X emit=native is passed as a command-line option, the emitter
will be set for all compiled modules (included imports), not just the
top-level script.
In the future there could be a way to also set this variable from a script.
Fixes issue #4267 .
2019-08-28 12:47:58 +10:00
Paul Sokolovsky
af5b509c75
examples/unix/ffi_example: Clean up and update the ffi example.
...
1. Use uctypes.bytearray_at().
Implementation of the "ffi" module predates that of "uctypes", so
initially some convenience functions to access memory were added
to ffi. Later, they landed in uctypes (which follows CPython's
ctype module).
So, replace undocumented experimental functions from ffi to
documented ones from uctypes.
2. Use more suitable type codes for arguments (e.g. "P" (const void*)
instead of "p" (void*).
3. Some better var naming.
4. Clarify some messages printed by the example.
2018-10-23 11:50:39 +11:00
Damien George
0f4d595beb
examples/embedding: Fix hard-coded MP_QSTR_ value.
2018-09-14 13:33:08 +10:00
Dave Hylands
1a2c511e5d
examples/embedding: Fix reference to freed memory, lexer src name.
...
This issue was brought up by BramPeters in the forum:
https://forum.micropython.org/viewtopic.php?p=30066
2018-09-14 13:27:43 +10:00
Damien George
31cf49c672
examples/embedding: Add code markup and fix typo in README.md.
2018-06-18 12:29:22 +10:00
Damien George
6b40a06057
examples/embedding: Don't prefix $(MPTOP) to ports/unix source files.
...
Otherwise the build process puts the corresponding output object files in
two directories lower, not in build/ports/unix.
2018-02-23 13:15:01 +11:00
talljosh
c2f4f36010
examples/embedding: Update broken paths to use correct $(MPTOP).
...
Some ".." need to be changed to $(MPTOP), and in some places "ports/" needs
to be inserted to get to the "ports/unix/" subdir.
2018-02-22 14:50:45 +11:00
Damien George
24c513cbc3
unix/Makefile,embedding/Makefile: Remove obsolete use of STMHAL_SRC_C.
2018-02-14 15:24:21 +11:00
Paul Sokolovsky
53966fd9a8
examples: hwconfig_console: Add .on()/.off() methods.
...
Add these methods to this "GPIO output emulated with console prints"
config.
2017-10-09 00:22:30 +03:00
Damien George
4a93801c12
all: Update Makefiles and others to build with new ports/ dir layout.
...
Also renames "stmhal" to "stm32" in documentation and everywhere else.
2017-09-06 14:09:13 +10:00
Damien George
4ec803a42a
all: Make static dicts use mp_rom_map_elem_t type and MP_ROM_xxx macros.
2017-08-21 21:34:23 +10:00
Alexander Steffen
55f33240f3
all: Use the name MicroPython consistently in comments
...
There were several different spellings of MicroPython present in comments,
when there should be only one.
2017-07-31 18:35:40 +10:00
Damien George
761e4c7ff6
all: Remove trailing spaces, per coding conventions.
2017-07-19 13:12:10 +10:00
Damien George
4d2778c9fb
examples/embedding: Use core-provided KeyboardInterrupt object.
2017-06-07 20:28:18 +10:00
Ville Skyttä
ca16c38210
various: Spelling fixes
2017-05-29 11:36:05 +03:00
Paul Sokolovsky
0af974b777
examples/hwapi/soft_pwm2_uasyncio: Update for call_later_ms().
...
Following finalized naming in uasyncio.
2017-05-17 00:44:00 +03:00
Paul Sokolovsky
5feeba8897
examples/hwapi/hwconfig*: Use inline Signal() args where possible.
2017-05-12 01:19:13 +03:00
Paul Sokolovsky
11a962099e
examples/hwapi: Add config for Zephyr port of 96Boards Carbon.
2017-04-27 18:08:05 +03:00
Damien George
61616e84ce
extmod/machine_signal: Rename "inverted" arg to "invert", it's shorter.
...
A shorter name takes less code size, less room in scripts and is faster to
type at the REPL.
Tests and HW-API examples are updated to reflect the change.
2017-04-15 21:01:47 +03:00
Damien George
4c307bfba1
all: Move BYTES_PER_WORD definition from ports to py/mpconfig.h
...
It can still be overwritten by a port in mpconfigport.h but for almost
all cases one can use the provided default.
2017-04-01 11:39:38 +11:00
Damien George
b6c7e4b143
all: Use full path name when including mp-readline/timeutils/netutils.
...
This follows the pattern of how all other headers are now included, and
makes it explicit where the header file comes from. This patch also
removes -I options from Makefile's that specify the mp-readline/timeutils/
netutils directories, which are no longer needed.
2017-03-31 22:29:39 +11:00
Krzysztof Blazewicz
75589272ef
all/Makefile: Remove -ansi from GCC flags, its ignored anyway.
...
The -ansi flag is used for C dialect selection and it is equivalent to -std=c90.
Because it goes right before -std=gnu99 it is ignored as for conflicting flags
GCC always uses the last one.
2017-03-23 15:32:12 +11:00
Damien George
21420b13c0
examples/embedding: Place lexer constructor within NLR handler block.
...
The lexer constructor may now raise an exception and it needs to be caught.
2017-03-14 11:52:05 +11:00
Paul Sokolovsky
eb101a2701
examples/embedding/README: Convert to markdown, grammar and clarity fixes.
2017-02-15 13:27:24 +03:00
Paul Sokolovsky
dd00d0134b
examples/hwapi/soft_pwm: Use Signal on()/off() methods.
...
Just one sample is updated with on()/off() for now, there should be
remaining sample(s) showing .value() use (but more can be converted later,
as long as 1 or so good samples of .value() remains).
2017-02-14 13:13:41 +03: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
Paul Sokolovsky
a4a439caa3
examples/button_reaction: Update for time_pulse_us() no longer raising exc.
2017-02-05 18:01:42 +03:00
Paul Sokolovsky
a5bed53738
examples/hwapi: Consistently use Signal class to define LEDs.
2017-01-29 19:09:33 +03:00
Paul Sokolovsky
297af6036e
examples/hwapi: Use Signal for inverted LED on ESP-12.
2017-01-29 18:57:37 +03:00
Paul Sokolovsky
1e9093f8cb
examples/hwapi/hwconfig_console: Don't alloc memory in value().
2016-12-23 17:24:24 +03:00
Damien George
c28fed6b64
examples/accellog.py: Change 1: to /sd/, and update comment about FS.
2016-11-18 17:00:54 +11:00
Paul Sokolovsky
00d6f99cf1
examples/hwapi: Add hwconfig for console tracing of LED operations.
2016-11-18 07:20:26 +03:00
Paul Sokolovsky
b188d6e9db
examples/hwapi: Add example for machine.time_pulse_us().
2016-11-17 01:10:00 +03:00
Damien George
6b239c271c
py: Factor out persistent-code reader into separate files.
...
Implementations of persistent-code reader are provided for POSIX systems
and systems using FatFS. Macros to use these are MICROPY_READER_POSIX and
MICROPY_READER_FATFS respectively. If an alternative implementation is
needed then a port can define the function mp_reader_new_file.
2016-11-16 18:13:50 +11:00
Paul Sokolovsky
bf318801d2
examples/hwapi: Add uasyncio example of fading 2 LEDs in parallel.
2016-11-14 01:37:27 +03:00
Paul Sokolovsky
00a9590e3a
examples/http_client: Use read() instead of readall().
2016-11-14 00:24:45 +03:00
Paul Sokolovsky
99e5badeb1
examples/hwapi: Add soft_pwm example converted to uasyncio.
2016-11-13 17:00:24 +03:00
Paul Sokolovsky
3c0da6a359
examples/hwapi: button_led: Add GPIO pin read example.
...
Requires BUTTON defined in hwconfig, so far tested on DragonBoard 410c.
2016-11-12 00:09:43 +03:00
Paul Sokolovsky
29f3f84fbd
examples/hwapi: Add hwconfig for DragonBoard 410c.
...
This requires recently added implementation of machine.Pin from
micropython-lib.
2016-11-10 01:59:10 +03:00
Paul Sokolovsky
8f068e84ee
examples/hwapi: Example showing best practices for HW API usage in apps.
...
Showing and providing detailed instructions and motivation.
2016-11-06 22:08:35 +03:00
Paul Sokolovsky
73b72799f3
examples/http_server_simplistic: Add "not suitable for real use" note.
2016-10-26 12:25:33 +03:00
Paul Sokolovsky
fa5ac678fc
examples/network/http_client*: Use \r\n line-endings in request.
2016-10-09 19:36:04 +03:00
Philip Potter
c777b6950e
stmhal: Update boot.py files to use VCP instead of CDC.
2016-08-29 15:17:34 +10:00
Damien George
675d1c9c60
ports: Remove typedef of machine_ptr_t, it's no longer needed.
...
This type was used only for the typedef of mp_obj_t, which is now defined
by the object representation. So we can now remove this unused typedef,
to simplify the mpconfigport.h file.
2016-08-15 11:02:59 +10:00
Paul Sokolovsky
3d19adf9b3
examples/network: Split recv- and read-based HTTP servers.
...
Name recv() based a "simplistic", as it can't work robustly in every
environment. All this is to let people concentreate on proper, read()-
based one (and to turn recv() based into a "negative showcase",
explaining what are the pitfalls of such approach).
2016-08-06 01:59:51 +03:00
Paul Sokolovsky
eb0e3bab1e
tests/machine_mem.py: Too non-portable, rework as an example for unix port.
2016-07-31 04:22:09 +03:00
Paul Sokolovsky
614deb82c7
examples/http_client*: Be sure to close socket.
...
Otherwise, on bare-metal/RTOS systems can lead to resource leaks.
2016-07-23 00:41:19 +03:00
Paul Sokolovsky
4d4cfc2ee6
examples/embedding: Add README.
2016-07-22 22:13:03 +03:00
Paul Sokolovsky
1e77e25675
examples/embedding: Example for embedding MicroPython in an app.
2016-07-22 22:13:03 +03:00
Paul Sokolovsky
e3f0f31e07
examples/http_server*: Update for buffered-like streams (read line by line).
...
Since "read-exactly" stream refactor, where stream.read(N) will read
exactly N bytes (unless EOF), http_server* examples can't any longer do
client_socket.read(4096) and expect to get full request (it will block
on HTTP/1.1 client). Instead, read request line by line, as the HTTP
protocol requires.
2016-07-10 23:01:52 +03:00
Paul Sokolovsky
70536212d5
examples/unix/ffi_example.py: Remove TODO, make output more clear.
2016-06-17 19:24:58 +03:00
Paul Sokolovsky
ecfd8e102d
examples/unix/ffi_example.py: Update for current "ffi" module API.
2016-06-17 19:21:37 +03:00
Paul Sokolovsky
c2d885501f
examples/network/: Use getaddrinfo() result in easy way.
...
Instead of extracting 4th element, extact last. Much easier to remember!
2016-05-03 00:45:37 +03:00
Paul Sokolovsky
8fcfaf6f22
examples/http_server_ssl.py: HTTPS server example.
2016-04-28 21:39:17 +03:00
Paul Sokolovsky
4f2d59e82f
examples/http_client_ssl.py: HTTPS client example.
2016-04-02 23:19:03 +03:00
Paul Sokolovsky
ec5f8db49d
examples/http_server.py: Bind to 0.0.0.0, to be accessible from other hosts.
...
This is helpful when running on deeply embedded targets, but may be
"security risk". Caveat emptor.
2016-04-02 23:14:19 +03:00
Paul Sokolovsky
c07a03a36d
examples/http_server.py: Introduce main() function.
...
Allows to re-run code if it was imported as a module (e.g., on bare-metal
ports).
2016-04-02 20:57:58 +03:00
Paul Sokolovsky
aa3fb7b387
examples/http_server.py: Refactor/simplify for Python 3.5.
2016-04-02 20:53:29 +03:00
Paul Sokolovsky
fd2b71f972
examples/http_client.py: Introduce main() function.
...
Allows to re-run code if it was imported as a module (e.g., on bare-metal
ports).
2016-04-02 19:13:39 +03:00
Paul Sokolovsky
a5d07c3aba
examples/http_client.py: Improve CPython compatibility in stream mode.
2016-04-02 17:28:42 +03:00
Paul Sokolovsky
cef073877b
example/http_client.py: Remove unused code.
2016-04-01 21:10:06 +03:00
Paul Sokolovsky
cf4b72bf13
examples: http_client.py, http_server.py aren't just unix, move to network/.
2016-04-01 20:53:23 +03:00
Paul Sokolovsky
bae052d420
examples/unix: Rename example be importable as modules.
...
Replace hyphens with undescores in modules.
2016-01-09 12:04:25 +02:00
Paul Sokolovsky
9d0d6d3830
examples/accel_i2c.py: Switch to "machine" module.
2015-11-29 02:56:26 +02:00
Paul Sokolovsky
a2e0d92eeb
examples: Add example of I2C usage, taking PyBoard accelerometer as subject.
2015-10-28 21:04:03 +03:00
Sebastian Plamauer
91bd4e8a23
changed file paths to new names
2014-10-25 23:59:33 +01:00
Damien George
0c3955b506
examples: Update conwaylife to work with new LCD API.
2014-10-19 19:02:34 +01:00
Paul Sokolovsky
23b3b04072
unix: Rename "microsocket" module to "usocket".
...
Per new conventions, we'd like to consistently use "u*" naming conventions
for modules which don't offer complete CPython compatibility, while offer
subset or similar API.
2014-10-09 20:43:10 +03:00
Paul Sokolovsky
a2d8f98a7e
examples: Rename unix socket examples to have more precise naming (http).
2014-10-09 20:35:56 +03: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
Metallicow
3d5ffa8318
remove `__doc__ =` and fix tweak doc diffs
2014-06-03 07:46:12 -06:00
Damien George
517f292c8d
examples, switch: Make run_loop take sequence of LED objects.
2014-06-01 18:34:58 +01:00