Commit Graph

7291 Commits

Author SHA1 Message Date
Scott Shawcroft 98cf7f67d4
Merge pull request #3773 from dhalbert/no-samd21-complex-arithmetic
Disable complex arithmetic on SAMD21 builds to make space
2020-11-30 13:47:56 -08:00
Dan Halbert dbfabddf58 rename ESP TX and RX pins; remove support 2020-11-30 11:11:04 -05:00
Dan Halbert 9768951a2a Disable complex arithmetic on SAMD21 builds to make space 2020-11-29 15:34:38 -05:00
Dan Halbert 848eb28132 esp-uart-pins 2020-11-28 14:52:56 -05:00
Christian Walther c7404a3ff8 Add movable allocation system.
This allows calls to `allocate_memory()` while the VM is running, it will then allocate from the GC heap (unless there is a suitable hole among the supervisor allocations), and when the VM exits and the GC heap is freed, the allocation will be moved to the bottom of the former GC heap and transformed into a proper supervisor allocation. Existing movable allocations will also be moved to defragment the supervisor heap and ensure that the next VM run gets as much memory as possible for the GC heap.

By itself this breaks terminalio because it violates the assumption that supervisor_display_move_memory() still has access to an undisturbed heap to copy the tilegrid from. It will work in many cases, but if you're unlucky you will get garbled terminal contents after exiting from the vm run that created the display. This will be fixed in the following commit, which is separate to simplify review.
2020-11-28 17:50:23 +01:00
Dan Halbert 28d9e9186e Disable complex arithmetic on SAMD21 builds to make space 2020-11-28 10:12:46 -05:00
Dan Halbert 596e0e4bd2 merge from upstream 2020-11-27 16:06:57 -05:00
Dan Halbert e308a9ec11 working! PinAlarm not implemented yet. 2020-11-27 16:03:37 -05:00
Dan Halbert 104a089677 deep sleep working; deep sleep delay when connected 2020-11-26 22:06:37 -05:00
microDev e90cb3ad86
Merge branch 'main' into fix-touch 2020-11-26 11:33:45 +05:30
microDev 6af48bb24c
reset touchin on every vm run 2020-11-26 11:22:44 +05:30
Jeff Epler 7923aa0a62
Merge pull request #3708 from hierophect/esp32s2-udp
ESP32-S2: Add UDP with recvfrom_into and sendto
2020-11-25 21:11:20 -06:00
Jeff Epler 6fd123a5c4
Merge pull request #3758 from tannewt/update_connect_doc
Update wifi.Radio.connect doc
2020-11-25 21:09:56 -06:00
Scott Shawcroft abff2615cb
Merge pull request #3754 from hierophect/esp-spi-pinclaim
ESP32S2: fix pin claiming bugs
2020-11-25 15:11:29 -08:00
Dan Halbert ef0830bfe2 merge from upstream + wip 2020-11-25 17:52:06 -05:00
Dan Halbert 9dbea36eac changed alarm.time API 2020-11-25 15:09:27 -05:00
Lucian Copeland a854da35d3 Fix masking issue causing pin claim problems 2020-11-25 12:14:56 -05:00
Lucian Copeland c9bc877683 Merge remote-tracking branch 'upstream/main' into esp-spi-pinclaim 2020-11-25 10:43:35 -05:00
Scott Shawcroft 9a692c3222
Exit faster on recv when TLS connection closed
When a TLS connection is closed by the server it usually sends a
notice. We see this incoming byte with lwip_ioctl and try to read
it. The read returns 0 but we keep trying anyway. Now, we quit
trying when we get zero back. If the connection was still alive
it'd either read a byte or delay until a byte could be read.
2020-11-24 18:14:22 -08:00
Scott Shawcroft 4ac11c8d31
Update wifi.Radio.connect doc
Now it includes bssid info.
2020-11-24 17:54:39 -08:00
Jeff Epler e778fc1f87
Merge pull request #3741 from hathach/fix-cdc-connection-race
update tinyusb to fix cdc connection race
2020-11-24 19:11:41 -06:00
hierophect 510f464234
Merge branch 'main' into esp32s2-udp 2020-11-24 18:28:10 -05:00
Scott Shawcroft 8364734ba3
Merge pull request #3749 from skerr92/add-cpsapling-spiflash
Add cpsapling spiflash
2020-11-24 15:22:21 -08:00
Jeff Epler c451b22255 Disable 3-arg pow() function on m0 boards
`pow(a, b, c)` can compute `(a ** b) % c` efficiently (in time and memory).
This can be useful for extremely specific applications, like implementing
the RSA cryptosystem.  For typical uses of CircuitPython, this is not an
important feature.  A survey of the bundle and learn system didn't find
any uses.

Disable it on M0 builds so that we can fit in needed upgrades to the USB
stack.
2020-11-24 16:54:33 -06:00
Scott Shawcroft 669f17e5bf
Merge pull request #3678 from microDev1/nvm-s2
ESP32S2: Support for NVM
2020-11-24 14:45:35 -08:00
Lucian Copeland 59458a9013 Add pin claiming to SPI construct 2020-11-24 16:46:11 -05:00
hierophect d0e75e635a
Merge pull request #3714 from microDev1/ps2io-S2
ESP32S2: Support for PS/2-IO
2020-11-24 14:56:09 -05:00
Lucian Copeland 0c5e0954db Add closed socket identification 2020-11-24 14:51:06 -05:00
Lucian Copeland 1031fe2992 correct submodule 2020-11-24 14:46:43 -05:00
Jeff Epler 0836abba41
Merge pull request #3720 from tannewt/more_wifi_retry
Retry connection when getting NOT_AUTHED
2020-11-24 09:54:54 -06:00
Seth Kerr 686edcef3f fixing PID issues with CI Test (whoops) 2020-11-24 07:41:32 -05:00
jgillick f8499a468e Remove filesystem from linker script. 2020-11-23 22:56:38 -08:00
microDev bbe13490b5
Merge branch 'main' into nvm-s2 2020-11-24 12:24:48 +05:30
jgillick 570353b946 Merge remote-tracking branch 'circuitpython/main' into thunderpack1.2 2020-11-23 22:40:47 -08:00
microDev 6ff24410eb
use values pointer directly 2020-11-24 11:44:11 +05:30
microDev 9dd1783da5
Merge branch 'main' into ps2io-S2 2020-11-24 11:11:11 +05:30
Dan Halbert 7a45afc549 working, but need to avoid deep sleeping too fast before USB ready 2020-11-23 22:44:53 -05:00
Dan Halbert ebdc48ae22
Merge pull request #3745 from kattni/magtag-pin-update
Add pin names from silk
2020-11-23 19:48:12 -05:00
Seth Kerr e5cee98977 removing icy tree files/directory 2020-11-23 19:31:06 -05:00
Seth Kerr 2635132ce5 adding 'haxpress' kind of build for CP Sapling for use with SPI Flash 2020-11-23 19:21:12 -05:00
Lucian Copeland 1c9f33a372 Replace reset with mux change 2020-11-23 19:01:30 -05:00
Lucian Copeland 86694262b8 Merge remote-tracking branch 'upstream/main' into esp32-pin-reset 2020-11-23 18:58:46 -05:00
Lucian Copeland 8ffd973e22 Merge remote-tracking branch 'upstream/main' into esp32s2-udp 2020-11-23 18:40:14 -05:00
Scott Shawcroft a80bf22211
Merge pull request #3727 from BennyE/wifi-full-scan
esp32s2: Do a full scan when channel/BSSID are not given
2020-11-23 15:19:57 -08:00
Scott Shawcroft f8dcb25170
Merge pull request #3694 from jepler/update-ulab2
ulab: Update to release tag 1.1.0
2020-11-23 15:17:46 -08:00
Scott Shawcroft 491e314799
Merge pull request #3718 from jepler/epd-rotation
EPaperDisplay: add rotation property
2020-11-23 15:04:26 -08:00
Scott Shawcroft c67f5892ff
Merge pull request #3704 from microDev1/frequencyio-S2
ESP32S2: Support for FrequencyIO
2020-11-23 14:59:27 -08:00
Kattni Rembor 7928a0d454 Blank lines to group aliases. 2020-11-23 16:02:45 -05:00
Kattni Rembor 3730862362 Update to match silk rev 1 2020-11-23 15:56:36 -05:00
Kattni Rembor efda912437 Add pin names from silk 2020-11-23 15:53:28 -05:00
Jeff Epler 16fe2de703
Merge pull request #3732 from skerr92/add-cpsapling
adding CP-Sapling
2020-11-23 10:29:58 -06:00
Jeff Epler 70e978f48b stm: disable ulab on two resource-constrained boards 2020-11-23 10:23:53 -06:00
Jim Mussared 0e8af2b370 extmod/modbluetooth: Add API for L2CAP channels.
Also known as L2CAP "connection oriented channels". This provides a
socket-like data transfer mechanism for BLE.

Currently only implemented for NimBLE on STM32 / Unix.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-24 01:07:17 +11:00
Damien George 64180f0742 extmod/machine_i2c: Add init protocol method for generic I2C bindings.
Hardware I2C implementations must provide a .init() protocol method if they
want to support reconfiguration.  Otherwise the default is that i2c.init()
raises an OSError (currently the case for all ports).

mp_machine_soft_i2c_locals_dict is renamed to mp_machine_i2c_locals_dict to
match the generic SPI bindings.

Fixes issue #6623 (where calling .init() on a HW I2C would crash).

Signed-off-by: Damien George <damien@micropython.org>
2020-11-23 19:45:04 +11:00
jgillick 4c5e7520f5 Fix NVM by clearing FLASH_FLAG_PGPERR 2020-11-23 00:25:41 -08:00
Dan Halbert 3abee9b256 compiles; maybe ready to test, or almost 2020-11-22 21:52:37 -05:00
jgillick 661c20dd18 Create a new linker script with more space for the firmware. 2020-11-22 18:25:37 -08:00
Dan Halbert 25591a3f8a Merge branch 'esp32s2-common-hal-mcu-delay-us' into sleep 2020-11-22 21:01:49 -05:00
Dan Halbert a0f1ec3c4a wip 2020-11-22 19:10:09 -05:00
Dan Halbert f62ea25331 ESP32S2: common_hal_mcu_delay_us() now calls mp_hal_delay_us() 2020-11-22 19:08:27 -05:00
JPFrancoia 3dcb551d89 nrf/README: Describe Pin numbering scheme for nRF52840.
Clarify that the nRF52840's GPIO 1.00 to 1.15 maps to Pin(32-47) in
MicroPython.
2020-11-22 21:01:49 +01:00
microDev f3b5ca5f01
replace goto with conditional break 2020-11-22 19:20:21 +05:30
microDev 048ca2a570
get multiple touchpad working 2020-11-22 18:54:18 +05:30
jgillick fe6e50b770 Update USB_PID 2020-11-22 01:49:23 -08:00
jgillick 56634eb00e Rename thunderpack to v11 2020-11-22 01:31:41 -08:00
jgillick 381889f6bc Cleanup 2020-11-22 01:19:28 -08:00
jgillick 0b858440b0 Fix formatting. 2020-11-22 01:15:05 -08:00
jgillick 63b0bf9075 Merge remote-tracking branch 'origin/main' into thunderpack1.2 2020-11-22 01:07:03 -08:00
Dan Halbert 75559f35cc wip: ResetReason to microcontroller.cpu 2020-11-21 23:29:52 -05:00
Dan Halbert e4c66990e2 compiles 2020-11-20 23:33:39 -05:00
Seth Kerr 1c92b1bf61 forgot to run pre-commit local 2020-11-20 15:35:52 -05:00
Seth Kerr c4f4cdd8c1 readding cp_sapling directory 2020-11-20 15:31:49 -05:00
Seth Kerr 29e91424d4 removing cp sapling temporarily to read 2020-11-20 15:29:35 -05:00
Seth Kerr b69bbfa3d6 fixed issues with trailing whitespace check 2020-11-20 15:17:44 -05:00
Seth Kerr 0a06530d52 adding CP-Sapling 2020-11-20 15:06:57 -05:00
BennyE 2773f534c9
Update ports/esp32s2/common-hal/wifi/Radio.c
adding suggested changes
2020-11-20 09:40:32 +01:00
BennyE 6760cdf678 Let connect() choose strongest AP if channel and BSSID are not given 2020-11-20 00:11:17 +01:00
Dan Halbert 39e1f52e28 wip; not compiling yet 2020-11-19 17:47:12 -05:00
BennyE 17a8bafe05 Choose best AP in range if no channel/bssid given 2020-11-19 23:39:48 +01:00
Scott Shawcroft 2f14609044
Merge pull request #3716 from jepler/keep-event-loop
esp32s2: don't delete the event loop
2020-11-19 14:28:31 -08:00
Jeff Epler aaca3eccf1 samd: PDMIn: Reduce code unrolling on samd21 only
Instead of unrolling the code 16 times, unroll it 4 times and loop
over it 4 times.  This gives the same 16 iterations, but at an expense
of less flash space.
2020-11-19 16:19:37 -06:00
Jeff Epler c06fc8e02d Introduce, use mp_raise_arg1
This raises an exception with a given object value.  Saves a bit of
code size.
2020-11-19 16:15:06 -06:00
Jeff Epler 0556f9f851 Revert "samd21: Enable terse error reporting on resource constrained chip family"
This reverts commit 9a642fc049.
2020-11-19 15:12:56 -06:00
Dan Halbert cd436bad1a Merge remote-tracking branch 'adafruit/main' into sleep 2020-11-19 15:43:49 -05:00
Dan Halbert 649c930536 wip 2020-11-19 15:43:39 -05:00
microDev a25b27520d
update nvm implementation 2020-11-20 00:22:00 +05:30
microDev bc9036f353
use pointer to get nvs handle 2020-11-20 00:15:30 +05:30
Jeff Epler dd108b755d esp32s2: initialize event loop ane netif only once
deinitting these seems to cause problems.
2020-11-19 11:36:02 -06:00
Kamil Tomaszewski 76d4824728 spresense: Return fixed stack 2020-11-19 15:04:52 +01:00
microDev 040eaa0443
re-organize and clean-up 2020-11-19 15:30:15 +05:30
microDev b56645808c
fix crash on user code exit 2020-11-19 11:44:22 +05:30
Dan Halbert 5bb3c321e9 merge from main 2020-11-19 00:29:14 -05:00
Dan Halbert 682054a216 WIP: redo API; not compiled yet 2020-11-19 00:23:27 -05:00
Jeff Epler 9a642fc049 samd21: Enable terse error reporting on resource constrained chip family
This reclaims over 1kB of flash space by simplifying certain exception
messages.  e.g., it will no longer display the requested/actual length
when a fixed list/tuple of N items is needed:

        if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
            mp_raise_ValueError(translate("tuple/list has wrong length"));
        } else {
            mp_raise_ValueError_varg(translate("requested length %d but object has length %d"),
                (int)len, (int)seq_len);

Other chip families including samd51 keep their current error reporting
capabilities.
2020-11-18 20:37:36 -06:00
Scott Shawcroft 081aec4429
Retry connection when getting NOT_AUTHED
I saw it once with a correct password. Retrying may still fail
but at least it'll try first.
2020-11-18 16:39:34 -08:00
Jeff Epler 83d790ad8f esp32s2: don't delete the event loop
.. it seems to make the esp-idf grumpy.
2020-11-18 17:45:42 -06:00
microDev 0d3e81f969
update interrupt handling 2020-11-18 22:22:42 +05:30
microDev bab41afce7
ps2io implementation for esp32s2 2020-11-18 12:34:56 +05:30
microDev c457d373e1
update init_timer & frequency calculation 2020-11-18 12:24:48 +05:30
microDev ff987e7496
add timer peripheral 2020-11-18 12:16:14 +05:30
robert 5af3c046c7 esp32,esp8266: Remove "FAT" from warning message in inisetup.py.
Because FAT is not any more the only filesystem used.
2020-11-18 16:26:19 +11:00
Jim Mussared 240b3de8bc stm32/rfcore: Depend on NimBLE only when BLE enabled.
This fixes the build for non-STM32WB based boards when the NimBLE submodule
has not been fetched, and also allows STM32WB boards to build with BLE
disabled.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-18 14:45:51 +11:00
Jeff Epler 9206925bf8 esp32s2: port_get_raw_ticks: Use a more efficient, monotonic routine
While trying to debug #3572, I noticed that I would frequently break in
the midst of gettimeofday and that the routine get_adjusted_boot_time
had to take and release locks.  Furthermore, we don't want "adjusted"
boot time, which could go forwards or backwards depending on the
adjustment (such as setting the clock used by gettimeofday() to the network
time)
2020-11-17 17:45:41 -06:00
Jeff Epler 1bc770c3dc esp32s2: PulseIn: Fix supervisor tick enabling
Before, there were two problems:
 * Even if a pulsein was never constructed, supervisor_disable_tick
   would occur during restart.  This could cancel out a supervisor_enable_tick
   from someplace else, with unexpected results.
 * If two or more pulseins were constructed, each one would enable ticks,
   but only the last one deinited (or the reset routine) would disable,
   leaving ticks running indefinitely.

In my testing, it seemed that this led to the board sometimes stopping when
it should have auto-reloaded.
2020-11-17 17:45:41 -06:00
Scott Shawcroft e2b5ae2d77
Merge pull request #3689 from jepler/issue-3688
esp32s2: wifi: fix several debug-build errors
2020-11-17 13:26:43 -08:00
Lucian Copeland 0bbdf05936 Implement recvfrom_into and sendto for UDP 2020-11-17 16:11:04 -05:00
jgillick 5f0a372a22 Merge tag '6.0.0' into thunderpack1.2 2020-11-17 00:02:24 -08:00
jgillick 119e9d3820 Add Thunderpack 1.2 2020-11-16 23:50:00 -08:00
sabas1080 33ca357094 fix VID and PID 2020-11-16 22:10:37 -06:00
sabas1080 089fa82067 Fix pre-commit 2020-11-16 21:21:24 -06:00
Scott Shawcroft 66fb095069
Merge pull request #3667 from microDev1/watchdog-s2
ESP32S2: Support for WatchDog
2020-11-16 15:01:54 -08:00
Scott Shawcroft f4fd236605
Merge pull request #3698 from BennyE/disablesoftap
esp32s2: Set station mode early to avoid SoftAP on startup
2020-11-16 14:51:57 -08:00
Scott Shawcroft f8eed1f74c
Merge pull request #3691 from jepler/issue-3424
esp32s2: Update esp-idf submodule to include fix for #3424
2020-11-16 14:21:13 -08:00
microDev 0686cde226
update internal nvm size 2020-11-17 01:19:12 +05:30
microDev 18e463cca5
add pcnt overflow handler & clean-up 2020-11-16 23:32:22 +05:30
Dan Halbert ffff02c053 Merge remote-tracking branch 'adafruit/main' into sleep 2020-11-16 12:06:11 -05:00
Dan Halbert bb77f1d130 wip: initial code changes, starting from @tannewt's sleepio branch 2020-11-16 11:56:20 -05:00
microDev f2824f6a68
update frequency measurement 2020-11-16 12:55:55 +05:30
microDev 2bec02738f
move interrupt handler to iram 2020-11-16 11:44:11 +05:30
Jim Mussared 21c293fbcd stm32/rfcore: Don't send HCI ACL cmds while another is pending.
And, for TX, the next/prev entries ane unused so set them to NULL to
indicate this.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-16 17:09:12 +11:00
Jim Mussared 119c88ef17 stm32/flash: Implement WB55 flash locking.
This is needed to moderate concurrent access to the internal flash, as
while an erase/write is in progress execution will stall on the wireless
core due to the bus being locked.

This implements Figure 10 from AN5289 Rev 3.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-16 17:08:30 +11:00
Jim Mussared a64121b0d4 stm32/rfcore: Make RX IRQ schedule the NimBLE handler.
This commit switches the STM32WB HCI interface (between the two CPUs) to
require the use of MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS, and as a
consequence to require NimBLE.  IPCC RX IRQs now schedule the NimBLE
handler to run via mp_sched_schedule.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-16 17:04:27 +11:00
BennyE d4ab00f734 Set station mode early to avoid SoftAP on startup 2020-11-16 00:31:06 +01:00
microDev c4917cdabd
frequencyio implementation for esp32s2 2020-11-16 00:11:00 +05:30
Jeff Epler 231e3d362d esp32s2: Update esp-idf submodule to include fix for #3424
This re-points the submodule to my personal fork of esp-idf.
Users may need to `git submodule sync` in their existing trees when
this change occurs.

Adds just the following commit in esp-idf:
  > esp_crt_bundle: Allow verify_callback to correct BADCERT_BAD_MD
2020-11-14 10:16:39 -06:00
microDev 146adca060
Add watchdog mode raise 2020-11-14 11:41:14 +05:30
Scott Shawcroft bda3267432
Save flash space
* No weak link for modules. It only impacts _os and _time and is
  already disabled for non-full builds.
* Turn off PA00 and PA01 because they are the crystal on the Metro
  M0 Express.
* Change ejected default to false to move it to BSS. It is set on
  USB connection anyway.
* Set sinc_filter to const. Doesn't help flash but keeps it out of
  RAM.
2020-11-13 18:57:52 -08:00
Scott Shawcroft 68eb809fbf
Update parallel bus signatures 2020-11-13 18:57:52 -08:00
Scott Shawcroft 8d4296f964
Add board.DISPLAY to MagTag. Fix luma computation
* Initialize the EPaper display on the MagTag at start.
* Tweak the display send to take a const buffer.
* Correct Luma math
  * Multiply the blue component, not add.
  * Add all of the components together before dividing. This
    reduces the impact of truncated division.
2020-11-13 18:57:52 -08:00
Jim Mussared 61d1e4b01b extmod/nimble: Make stm32 and unix NimBLE ports use synchronous events.
This changes stm32 from using PENDSV to run NimBLE to use the MicroPython
scheduler instead.  This allows Python BLE callbacks to be invoked directly
(and therefore synchronously) rather than via the ringbuffer.

The NimBLE UART HCI and event processing now happens in a scheduled task
every 128ms.  When RX IRQ idle events arrive, it will also schedule this
task to improve latency.

There is a similar change for the unix port where the background thread now
queues the scheduled task.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-13 17:19:05 +11:00
Jim Mussared 81e92d3d6e extmod/modbluetooth: Re-instate optional no-ringbuf modbluetooth.
This requires that the event handlers are called from non-interrupt context
(i.e. the MicroPython scheduler).

This will allow the BLE stack (e.g. NimBLE) to run from the scheduler
rather than an IRQ like PENDSV, and therefore be able to invoke Python
callbacks directly/synchronously.  This allows writing Python BLE handlers
for events that require immediate response such as _IRQ_READ_REQUEST (which
was previous a hard IRQ) and future events relating to pairing/bonding.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-13 17:19:05 +11:00
Jim Mussared 4559bcb467 unix: Make mp_hal_delay_ms run MICROPY_EVENT_POLL_HOOK.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-13 17:19:05 +11:00
Andrew Leech de60aa7d6b unix: Handle pending events/scheduler in MICROPY_EVENT_POLL_HOOK.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-11-13 17:19:05 +11:00
Jeff Epler 0f7081781e esp32s2: wifi: fix several debug-build errors
Closes #3688

With this change, I don't get the ESP_ERROR_CHECK failed repeatedly
running code that imports wifi.  (I'm not getting a successful connection
but that's probably my own fault, such as a secrets problem)
2020-11-12 20:40:45 -06:00
Damien George cc2a35b7b2 stm32/rtc: Validate the RTC prescaler on boot and change if incorrect.
Devices with RTC backup-batteries have been shown (very rarely) to have
incorrect RTC prescaler values.  Such incorrect values mean the RTC counts
fast or slow, and will be wrong forever if the power/backup-battery is
always present.

This commit detects such a state at start up (hard reset) and corrects it
by reconfiguring the RTC prescaler values.

Signed-off-by: Damien George <damien@micropython.org>
2020-11-13 11:23:52 +11:00
Damien George a0623a081c stm32/Makefile: Allow boards to extend all SRC variables.
And rename SRC_HAL -> HAL_SRC_C and SRC_USBDEV -> USBDEV_SRC_C for
consistency with other source variables.

Follow on from 0fff2e03fe

Signed-off-by: Damien George <damien@micropython.org>
2020-11-13 11:22:28 +11:00
Arrowana 922f81dfd1 extmod/machine_mem: Only allow integers in machine.memX subscript.
Prior to this change machine.mem32['foo'] (or using any other non-integer
subscript) could result in a fault due to 'foo' being interpreted as an
integer.  And when writing code it's hard to tell if the fault is due to a
bad subscript type, or an integer subscript that specifies an invalid
memory address.

The type of the object used in the subscript is now tested to be an
integer by using mp_obj_get_int_truncated instead of
mp_obj_int_get_truncated.  The performance hit of this change is minimal,
and machine.memX objects are more for convenience than performance (there
are many other ways to read/write memory in a faster way),

Fixes issue #6588.
2020-11-13 11:13:37 +11:00
Scott Shawcroft c9952798fb
Merge pull request #3683 from BHDynamics/dynossat_edu
Rename pins on dynossat_edu_eps to make them the same as the Arduino core
2020-11-12 12:33:16 -08:00
Enrique Casado aa68b17223 Freed some more space 2020-11-12 13:26:26 +01:00
Enrique Casado 9774736a50 Rename pins to make them the same as the Arduino core 2020-11-12 12:30:34 +01:00
microDev ff41180237
pcnt reset on reload 2020-11-12 16:30:30 +05:30
Jonathan Hogg 8a917ad252 esp32/machine_pin: Reset pin if init sets mode.
This will forcibly grab the pin back from the ADC if it has previously been
associated with it.

Fixes #5771.
2020-11-12 15:27:41 +11:00
Sébastien NEDJAR b04240cb77 stm32/Makefile: Make the generation of `firmware.bin` explicit.
The file `$(BUILD)/firmware.bin` was used by the target `deploy-stlink` and
`deploy-openocd` but it was generated indirectly by the target
`firmware.dfu`.

As this file could be used to program boards directly by a Mass Storage
copy, it's better to make it explicitly generated.

Additionally, some target are refactored to remove redundancy and be more
explicit on dependencies.
2020-11-12 15:22:44 +11:00
Scott Shawcroft a47dea4922
Merge pull request #3671 from FoamyGuy/um_feathers2_board_spi_i2c
board.SPI() and board.I2C() for UnexpectedMaker Feather S2
2020-11-11 17:22:23 -08:00
microDev 35ef6c687f
nvm implementation for esp32s2 2020-11-11 23:11:12 +05:30
gamblor21 23ed3ef971 Removing frozen libs 2020-11-11 11:36:04 -06:00
gamblor21 f61c4e62c1 Removing from smaller builds 2020-11-11 10:24:33 -06:00
foamyguy 118ca7cff4 adding default uart pins 2020-11-11 06:56:57 -06:00
Damien George b99300b53e stm32/boardctrl: Define MICROPY_BOARD_EARLY_INIT alongside others.
Signed-off-by: Damien George <damien@micropython.org>
2020-11-11 21:47:13 +11:00
Damien George 4c3976bbca stm32: Add MICROPY_BOARD calls in various places in stm32_main.
For a board to have full configurability of the soft reset loop.

Signed-off-by: Damien George <damien@micropython.org>
2020-11-11 21:41:04 +11:00
Damien George 1e297c8898 stm32/main: Move update_reset_mode to outside the soft-reset loop.
Running the update inside the soft-reset loop will mean that (on boards
like PYBD that use a bootloader) the same reset mode is used each
reset loop, eg factory reset occurs each time.

Signed-off-by: Damien George <damien@micropython.org>
2020-11-11 21:41:04 +11:00
microDev f9842566d8
Add default pin definitions 2020-11-11 10:22:48 +05:30
foamyguy 8373146c56 newline end of file 2020-11-10 15:29:17 -06:00
Scott Shawcroft ddb3590944
Merge pull request #3647 from DavePutz/issue3579
Issue3579 - Check for CTRL-C During sleep on esp32s2
2020-11-10 13:09:57 -08:00
foamyguy 1192eebcdf adding spi and i2c to board for um feather s2 2020-11-10 14:12:44 -06:00
Lucian Copeland 21ca1b8c2b Merge remote-tracking branch 'upstream/main' into esp32s2-udp 2020-11-10 14:59:32 -05:00
Lucian Copeland d16d27a449 Merge remote-tracking branch 'tannewt/esp32s2_udp' into esp32s2-udp 2020-11-10 14:51:36 -05:00
Scott Shawcroft 75a977febd
Merge pull request #3668 from jepler/esp32s2-stack-size
esp32s2: Correct port_stack_get_top()
2020-11-10 10:56:12 -08:00
microDev 10e8b8cf45
move port specific check 2020-11-11 00:24:01 +05:30
root fe7ed99939 Split out extern declare to ports/esp32s2/supervisor/esp_port.h 2020-11-10 12:45:39 -06:00
root 44425b8d94 Requested review changes made 2020-11-10 11:32:59 -06:00
Jeff Epler 2d8ebfcf63 esp32s2: Correct port_stack_get_top()
Closes #3649
2020-11-10 10:42:53 -06:00
microDev 6c59836c5d
watchdog implementation for esp32s2 2020-11-10 16:32:46 +05:30
Scott Shawcroft 61bf0e99c6
Merge pull request #3653 from tannewt/magtag
Rebrand EInk Portal to MagTag
2020-11-09 16:00:09 -08:00
Scott Shawcroft d1f15d314b
Rename to include display details 2020-11-09 15:03:22 -08:00
microDev 7ba2c5772c
Update license 2020-11-08 11:18:05 +05:30
microDev 55e0e2c4ba
Update rotaryio implementation 2020-11-08 11:12:32 +05:30
sabas1080 6a6e998ea5 Added BastBLE 2020-11-07 19:21:36 -06:00
microDev 479567059e
Merge branch 'main' into rotaryio-S2 2020-11-08 00:00:01 +05:30
Scott Shawcroft b2e83952c0
Rebrand EInk Portal to MagTag 2020-11-06 15:27:16 -08:00
Scott Shawcroft 01c7a06dcc
Merge pull request #3615 from microDev1/CountIO-S2
ESP32S2: Support for CountIO
2020-11-06 12:29:13 -08:00
root d948e6570f Changes to handle Ctrl-C during sleep 2020-11-05 21:27:21 -06:00
Dan Halbert 36a8828fa3
Merge pull request #3632 from dhalbert/add-binascii
add binascii to most builds
2020-11-05 16:16:41 -05:00
microDev ac8a0faa0d
update peripherals_pcnt_init() 2020-11-06 01:42:20 +05:30
Dan Halbert 81bb92bdd2
Merge pull request #3639 from tannewt/fix_recv
Rework socketpool.Socket.recv to return sooner
2020-11-05 14:11:13 -05:00
Scott Shawcroft 8fc1be5ef2
Merge pull request #3645 from BradChan/main
Modify the pins of the hiibot_bluefi.
2020-11-05 11:02:40 -08:00
root c2aa54ae66 Check for Ctrl-C during sleeps 2020-11-05 11:10:40 -06:00
microDev d8ef9a127b
rename pcnt_handler to pcnt 2020-11-05 10:10:39 +05:30
cyz 92cd599ea3 Modify the pins of the hiibot_bluefi. 2020-11-05 09:14:53 +08:00
Scott Shawcroft e02539bdf5
Merge pull request #3633 from ITACAInnovation/patch-2
Update pins.c
2020-11-04 10:30:09 -08:00
microDev fe6bfde590
move pcnt handler 2020-11-04 21:20:24 +05:30
Lucian Copeland 472a5a99ec Add API reset to reset_pin_number 2020-11-03 16:31:53 -05:00
Scott Shawcroft 5a079256d5
Merge pull request #3642 from ehagerty/patch-1
Update README.md
2020-11-03 13:02:58 -08:00
ITACA Innovation S.R.L ca935c0daf
Update pins.c
Changed builtin to standard
2020-11-03 21:22:19 +01:00
Scott Shawcroft 441c2c41fb
Merge pull request #3641 from adafruit/6.0.x
Merge 6.0.x bugfixes to main
2020-11-03 09:46:44 -08:00
Ed Hagerty 4055c5ac61
Update README.md 2020-11-03 17:14:58 +00:00
Limor "Ladyada" Fried 4938054c05
Merge pull request #3638 from ladyada/main
io naming for gpio (credit to @kattni)
2020-11-03 09:17:33 -05:00
Limor "Ladyada" Fried 0d0436bf69
Merge pull request #3637 from hierophect/esp32s2-neopixel-parallel
ESP32S2: Fix parallel strip issue with Neopixels
2020-11-02 23:39:37 -05:00
lady ada c4521287e3 add rx/tx default uart names 2020-11-02 23:22:53 -05:00
Scott Shawcroft 7441344c6f
Add new config options to default 2020-11-02 17:22:24 -08:00
Scott Shawcroft 18838e390a
reduce connection footprint and fix recv 2020-11-02 16:44:55 -08:00
lady ada 6c61a53e0f io naming for gpio (credit to @kattni) 2020-11-02 18:38:23 -05:00
Lucian Copeland 23afe08b6f Add GPIO reset to end of neopixel-write 2020-11-02 17:15:19 -05:00
Dan Halbert 1f7a3f0dfa Rev C Feather M4 CAN pin changes 2020-11-02 15:28:30 -05:00
Brian Dean 041c2a9f61 .../boards/bdmicro_vina_d51: PAD updates for better resource flexibility. 2020-11-02 08:35:25 -05:00
ITACA Innovation S.R.L 4e52757f26
Update pins.c
Added LED, BOOST_EN and VEXT_SELECT pins.
2020-11-01 22:22:55 +01:00
Dan Halbert 72b829dff0 add binascii to most builds 2020-11-01 14:52:03 -05:00
microDev 4438050f79
Add pcnt handler 2020-11-01 18:00:07 +05:30
Jerry Needell 1762a36438 restore analogio to feather_m0_rfm9x/rfm69 builds 2020-11-01 05:46:13 -05:00
Dan Halbert 144eb131ae
Merge pull request #3627 from adafruit/6.0.x
Merge 6.0.x bugfixes to main
2020-10-31 12:28:20 -04:00
ITACA Innovation S.R.L 9a8484b853
Update mpconfigboard.h
Removed ignore PA30 PA31 in order to allow using them as pinout
2020-10-31 11:06:56 +01:00
ITACA Innovation S.R.L a7616808e9
Updated pinout 2020-10-31 10:12:49 +01:00
Scott Shawcroft 09ae9aefa8
Merge pull request #3610 from Edrig/main
Add new board to nrf port: holyiot_nrf52840
2020-10-30 12:03:34 -07:00
Damien George 97960dc7de stm32: Support C++ code and user C modules written in C++.
Also build user C modules as part of the stm32 CI.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 23:35:36 +11:00
Damien George df3b466d6c stm32/boards: Factor out common data/bss/heap/stack linker sections.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 23:31:59 +11:00
Damien George a866f868f8 unix/Makefile: Move coverage.c and coveragecpp.cpp to coverage variant.
So that g++ is not needed to build a non-coverage unix variant.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 23:30:04 +11:00
stijn 25c4563f26 examples: Add example code for user C modules, both C and C++.
Add working example code to provide a starting point for users with files
that they can just copy, and include the modules in the coverage test to
verify the complete user C module build functionality.  The cexample module
uses the code originally found in cmodules.rst, which has been updated to
reflect this and partially rewritten with more complete information.
2020-10-29 15:30:42 +11:00
stijn fad4079778 esp32,unix: Support building C++ code.
Support building .cpp files and linking them into the micropython
executable in a way similar to how it is done for .c files.  The main
incentive here is to enable user C modules to use C++ files (which are put
in SRC_MOD_CXX by py.mk) since the core itself does not utilize C++.

However, to verify build functionality a unix overage test is added.  The
esp32 port already has CXXFLAGS so just add the user modules' flags to it.
For the unix port use a copy of the CFLAGS but strip the ones which are not
usable for C++.
2020-10-29 15:29:50 +11:00
stijn f1666419a8 py/mkrules.mk: Add target for compiling C++ files.
Move the target from the ESP32 Makefile since that does what is needed
already, but also include files from user C modules as is done for the C
files.
2020-10-29 15:27:18 +11:00
Damien George 3e455e9792 stm32/rng: Use SysTick+RTC+unique-id to seed pRNG for MCUs without RNG.
The same seed will only occur if the board is the same, the RTC has the
same time (eg freshly powered up) and the first call to this function (eg
via an "import random") is done at exactly the same time since reset.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 14:14:40 +11:00
robert 59019d7f75 stm32/mpconfigport.h: Seed the urandom module on import.
For seeding the rng_get function is used, which is also the heart of
uos.urandom and pyb.rng, and is a hardware RNG where available.
2020-10-29 14:12:53 +11:00
robert 057193e855 esp8266/mpconfigport.h: Seed the urandom module on import.
For seeding, the hardware RNG of the esp8266 is used.
2020-10-29 14:12:44 +11:00
robert b4062894df esp32/mpconfigport.h: Seed the urandom module on import.
For seeding, the RNG function of the ESP-IDF is used, which is told to be a
true RNG, at least when WiFi or Bluetooth is enabled.  Seeding on import is
as per CPython.  To obtain a reproducible sequence of pseudo-random numbers
one must explicitly seed with a known value.
2020-10-29 14:11:08 +11:00
Scott Shawcroft 7fd73c7d39
Initial UDP work. Need to test 2020-10-28 18:08:31 -07:00
Dan Halbert 59b9ca409c matrixportal ESP TX and RX pins were swapped 2020-10-28 20:33:10 -04:00
Damien George 0118c07916 stm32/machine_adc: Fix ADC auto-calibration to run when ADC not enabled.
Prior to this commit, the ADC calibration code was never executing because
ADVREGEN bit was set making the CR register always non-zero.

This commit changes the logic so that ADC calibration is always run when
the ADC is disabled and an ADC channel is initialised.  It also uses the LL
API functions to do the calibration, to make sure it is done correctly on
each MCU variant.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-29 11:09:43 +11:00
lady ada 25bad660c6 add light sensor, move batt monitor 2020-10-28 19:23:18 -04:00
Scott Shawcroft 7cbc50962b
Merge pull request #3611 from tannewt/esp32s2_eink_portal
Add Adafruit ESP EInk Portal and grayscale EInk support
2020-10-28 14:45:29 -07:00
Gaetan 5ab2f16f64 Change Board Name to ADM_B_NRF52840_1
edit   :         .github/workflows/build.yml
rename :         ports/nrf/boards/holyiot_nrf52840/board.c -> ports/nrf/boards/ADM_B_NRF52840_1/board.c
rename :         ports/nrf/boards/holyiot_nrf52840/mpconfigboard.h -> ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.h
rename :         ports/nrf/boards/holyiot_nrf52840/mpconfigboard.mk -> ports/nrf/boards/ADM_B_NRF52840_1/mpconfigboard.mk
rename :         ports/nrf/boards/holyiot_nrf52840/pins.c -> ports/nrf/boards/ADM_B_NRF52840_1/pins.c
2020-10-28 22:08:10 +01:00
microDev 5e3bfa1956
countio implementation for esp32s2 2020-10-28 20:08:25 +05:30
Scott Shawcroft 9a4efed8cb
Start tweaking the workflow to sleep 2020-10-27 17:55:03 -07:00
Gaetan b44011d196 fix railing Whitespace pin.c 2020-10-28 01:43:42 +01:00
Gaetan b5c95e3b1a Merge branch 'main' of https://github.com/Edrig/circuitpython into main
modifié :         boards/holyiot_nrf52840/pins.c
2020-10-28 00:40:46 +01:00
Gaetan 9b911b2211 modifié : pins.c 2020-10-28 00:38:07 +01:00
Gaetan 27827a4fef Fix EOF error
modifié :         mpconfigboard.mk
modifié :         pins.c
2020-10-28 00:34:07 +01:00
microDev 930cf14dce
Add check for invalid io, function to disable all alarms 2020-10-27 16:17:26 -07:00
microDev e35938971a
Add description of alarm modules 2020-10-27 16:16:55 -07:00
microDev 59df1a11ad
Add alarm_touch module 2020-10-27 16:16:52 -07:00
microDev da449723df
Fix build error 2020-10-27 16:16:15 -07:00
microDev 4d8ffdca8d
restructure alarm modules 2020-10-27 16:15:09 -07:00
microDev e5ff55b15c
Renamed alarm modules 2020-10-27 16:13:25 -07:00
microDev 21ba61afbb
Add function to disable alarm 2020-10-27 16:13:25 -07:00
microDev 05a3f203db
Add function to get time elapsed during sleep 2020-10-27 16:13:25 -07:00
microDev e310b871c8
Get io wake working 2020-10-27 16:13:25 -07:00
microDev 90b9ec6f2c
Initial Sleep Support 2020-10-27 16:13:22 -07:00
Noel Gaetan d0426b3438
Update pins.c
fix mistake
2020-10-27 23:54:46 +01:00
Scott Shawcroft 557a58b244
Merge pull request #3591 from microDev1/TouchIO-S2
ESP32S2: Support for native TouchIO
2020-10-27 14:11:39 -07:00
Scott Shawcroft 73162bda85
Merge pull request #3584 from jepler/can-esp32s2
esp32s2: implement canio
2020-10-27 14:01:07 -07:00
Scott Shawcroft 54c0e98a37
Fix openbook build 2020-10-27 13:58:23 -07:00
microDev 80029f6929
rotaryio implementation for esp32s2 2020-10-28 00:12:13 +05:30
Jeff Epler 5110fec312
Merge pull request #3608 from adafruit/6.0.x
Update main with latest 6.0.x
2020-10-27 11:47:44 -05:00
Jeff Epler 3a501a0495 esp32s2: canio: respond to review comments
* explain the introduction of the temporary variable in get_t_config
 * get rid of unneeded __attribute__
 * get rid of unneeded members of canio_can_obj_t
 * get rid of unneeded header inclusion
2020-10-26 19:18:37 -05:00
Jeff Epler 2ba6659967 esp32s2: Makefile: restore --no-stub 2020-10-26 19:07:37 -05:00
Scott Shawcroft 95cb5961d2
Fix ESP32-S2 SPI when DMA is sometimes used 2020-10-26 16:59:59 -07:00
Scott Shawcroft fc591c8d84
Add EInk Portal 2020-10-26 16:59:59 -07:00
Gaetan 5deb045a81 Ready to PR
* ../../.github/workflows/build.yml
	+ boards/holyiot_nrf52840/board.c
	+ boards/holyiot_nrf52840/mpconfigboard.h
	+ boards/holyiot_nrf52840/mpconfigboard.mk
	+ boards/holyiot_nrf52840/pins.c
2020-10-26 23:32:57 +01:00
Jeff Epler caca0609bd
Merge pull request #3607 from hierophect/esp32-readme-clarity
ESP32-S2: Fix readme link, improve instruction clarity
2020-10-26 12:43:51 -05:00
Lucian Copeland 32f2a8d54c Fix readme link 2020-10-26 11:03:54 -04:00
Jeff Epler 396d92f867 esp32s2: Add canio
This works in loopback mode, though the hardware filtering only permits a
single address or mask filter.
2020-10-26 09:54:58 -05:00
microDev ef97ed6ab6
Update touchio implementation 2020-10-23 13:17:49 +05:30
Scott Shawcroft c8808f41a5
Merge pull request #3580 from astrobokonon/esp32s2-FixSTAMODE
ESP32S2: Reset sta_mode and ap_mode flags
2020-10-22 13:48:45 -07:00
microDev f431f859e7
Initial support for native touchio 2020-10-22 21:32:44 +05:30
Emil Renner Berthing 05f95682e7 unix: Enable more warnings. 2020-10-22 11:54:11 +02:00
Damien George 581d43b774 stm32/usbd_cdc_interface: Check and handle CDC TX wrap-overflow.
If the device is not connected over USB CDC to a host then all output to
the CDC (eg initial boot messages) is written to the CDC TX buffer with
wrapping, so that the most recent data is retained when the USB CDC is
eventually connected (eg so the REPL banner is displayed upon connection).

This commit fixes a bug in this behaviour, which was likely introduced in
e4fcd216e0, where the initial data in the CDC
TX buffer is repeated multiple times on first connection of the device to
the host.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-22 15:32:41 +11:00
iabdalkader a93d9b8c2d stm32: Fix broken build when FAT FS multi-partition is disabled. 2020-10-22 14:58:29 +11:00
Jeff Epler fa4c4c2c10
Merge pull request #3587 from adafruit/6.0.x
Merge in two fixes from 6.0.x
2020-10-21 20:12:20 -05:00
Jerry Needell ff69ab603d fix CPB SPI pin definitions 2020-10-21 17:07:30 -04:00
Scott Shawcroft 50e90088a2
Merge pull request #3586 from Targett363/esp32s2_module_clip
Esp32s2 module clip
2020-10-21 12:58:23 -07:00
Andrew Leech 97108fce57 esp32/mpconfigport.h: Enable MICROPY_PY_DELATTR_SETATTR.
To align with unix and stm32 ports.
2020-10-21 11:11:48 +11:00
Ryan T. Hamilton e202da4dad Change comment wording 2020-10-20 15:14:35 -07:00
Ryan T. Hamilton c58b0adf64 Reset sta_mode and ap_mode flags 2020-10-20 14:49:57 -07:00
Scott Shawcroft 1a677406bf
Merge pull request #3529 from jensechu/color-converter-transparency
displayio: Pass transparent_color to ColorConverter
2020-10-20 10:41:57 -07:00
Scott Shawcroft 8beb36c240
Use one lto partition
This leads to smaller code size at the expense of slower linking.

We can turn partitioning back on with GCC10 because it produces smaller code.
2020-10-20 09:24:03 -07:00
Christian Walther 1eab0692b5 Fix missing `nproc` on macOS.
396979a breaks building on macOS: `nproc` is a Linux thing, use a cross-platform alternative.
2020-10-20 16:39:32 +02:00
Andrew Leech 32c99174e1 unix/mpconfigport.h: Enable MICROPY_PY_DELATTR_SETATTR.
This is a generally useful feature and because it's part of the object
model it cannot be added at runtime by some loadable Python code, so enable
it on the standard unix build.
2020-10-20 23:47:50 +11:00
Targett363 a2fce305d6 Replacing placeholder PIDs with correct PIDs 2020-10-20 10:42:14 +01:00
Scott Shawcroft eb139c9bab
Correct pins to not reset.
They must have the PORT_ prefix otherwise they mask the wrong pins.

Fixes #3552
2020-10-19 17:41:16 -07:00
Scott Shawcroft d606a3e968
Merge pull request #3484 from astrobokonon/esp32s2-morenet
Esp32s2: Expose more network parameters
2020-10-19 15:07:20 -07:00
Scott Shawcroft d98b312886
Merge pull request #3541 from jepler/lto-parallel
atmel-samd: parallelize lto linking
2020-10-19 15:05:45 -07:00
askpatricw d6805c0dd4 SDA and SCL were flipped 2020-10-18 17:15:59 -07:00
Jeff Epler cc411f47eb samd: Update peripherals submodule
(https://github.com/adafruit/samd-peripherals/pull/37)
2020-10-17 20:08:32 -05:00
Jeff Epler fb768dfc14 samd: AnalogOut: Better handle boards which IGNOREd analog pins 2020-10-17 20:08:32 -05:00
Jeff Epler 194d99f588 sparkfun_lumidrive: Can't IGNORE pins that are default bus pins
The SDA, SCL, and MISO pins were ignored.  This error was not diagnosed
before now.
2020-10-17 20:08:32 -05:00
Jeff Epler eb0b023dee samd: extend IGNORE_PIN_foo to all sam e5x/e5x pins 2020-10-17 20:08:32 -05:00
Jeff Epler 4b9fc5de53 samd: update peripherals submodule
this is possible now that the undefined reference to pin_PA30 has been
resolved.
2020-10-17 20:08:32 -05:00
Jeff Epler aa3c890ead samd: pin: Fix 'undefined reference to pin_PA30'
.. when PA30 is IGNOREd
2020-10-17 20:08:32 -05:00
Jeff Epler 396979a67e atmel-samd: parallelize lto linking
This decreases the link time, especially on desktop machines with many CPU
cores.  However, it does come at a slight cost in binary size, making the flash
section about 200 bytes bigger for circuitplayground_express.

Before, linking build-circuitplayground_express/firmware.elf takes
8.8s elapsed time, leaving 3128 bytes free in flash.

After, linking build-circuitplayground_express/firmware.elf takes 2.8s elapsed
time, leaving 2924 bytes free in flash. (-6 seconds, -204 bytes free)

If necessary, we can make this per-board or even per-translation to squeeze full
builds.
2020-10-17 20:08:32 -05:00
Ryan T. Hamilton 76f1db7a87 Set sta_mode flag for actual use/checking 2020-10-17 00:23:31 -07:00
Damien George 18518e26a7 ports: Use correct in/out endpoint size in TUD_CDC_DESCRIPTOR.
The last argument of TUD_CDC_DESCRIPTOR() is the endpoint size (or
wMaxPacketSize), not the CDC RX buffer size (which can be larger than the
endpoint size).

Signed-off-by: Damien George <damien@micropython.org>
2020-10-17 15:49:16 +11:00
Scott Shawcroft 878f2322e7
Merge pull request #3564 from BHDynamics/dynossat_edu
Add DynOSSAT-EDU boards
2020-10-16 11:30:42 -07:00
Scott Shawcroft 6e355ec598
Merge pull request #3560 from dhalbert/pervasive-bleio-hci
enable CIRCUITPY_BLEIO_HCI on non-nRF boards where it will fit
2020-10-16 10:00:50 -07:00
Enrique Casado 6631c8d393 Add USB VID&PID 2020-10-16 13:52:46 +02:00
Ryan T. Hamilton 9d840aab0b Cleaned up and now testing 2020-10-15 23:45:11 -07:00
Ryan T. Hamilton b336039aab Disable the long way and return an ap_info object
still needs work and cleanup
2020-10-15 23:18:30 -07:00
Jim Mussared 893f75546c stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Increase GET_STATE timeout.
When installing WS firmware, the very first GET_STATE can take several
seconds to respond (especially with the larger binaries like
BLE_stack_full).

Allows stm.rfcore_sys_hci to take an optional timeout, defaulting to
SYS_ACK_TIMEOUT_MS (which is 250ms).

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-16 10:45:03 +11:00
Jim Mussared dfb63b5613 stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Fix bad variable name.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-16 10:44:58 +11:00
Jim Mussared 520bb88d70 stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Fix flash unlock.
The flash can sometimes be in an already-unlocked state, and attempting to
unlock it again will cause an immediate reset.  So make _Flash.unlock()
check FLASH_CR_LOCK to get the current state.

Also fix some magic numbers for FLASH_CR_LOCK AND FLASH_CR_STRT.

The machine.reset() could be removed because it no longer crashes now that
the flash unlock is fixed.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-16 10:43:36 +11:00
Dan Halbert 12ed3fc72f disable on winterbloom_sol and thunderpack 2020-10-15 18:48:28 -04:00
Scott Shawcroft 6b272eeb27
Merge pull request #3555 from UnexpectedCircuitPython/main
Added default LWIP hostnames to FeatherS2 boards
2020-10-15 15:12:40 -07:00
Scott Shawcroft 31223e4ae5
Merge pull request #3530 from askpatrickw/hostname-example
Set default hostname
2020-10-15 15:11:58 -07:00
Dan Halbert 1d05ad6b22 no _bleio for litex; ESP32S2 defines BIT() already 2020-10-15 16:34:19 -04:00
Seon Rozenblum 45a3bd1c04 Added default LWIP hostnames to FeatherS2 boards 2020-10-16 06:47:59 +11:00
Dan Halbert f51e75c1d2 cxd56 needed more precise include for __packed; needed SRC_C += on some ports 2020-10-15 15:24:24 -04:00
Scott Shawcroft b67acea587
Merge pull request #3547 from microDev1/wifiHost
Add method to set custom hostname
2020-10-15 11:17:07 -07:00
Dan Halbert 82b49afe43 enable CIRCUITPY_BLEIO_HCI on non-nRF boards where it will fit 2020-10-15 11:27:21 -04:00
Enrique Casado 97fae54659 Add DynOSSAT-EDU boards 2020-10-15 12:39:14 +02:00
Dan Halbert f1e8f2b404
Merge pull request #3554 from gamblor21/move_ordereddict
Moved ORDEREDDICT define to central location
2020-10-14 22:39:04 -04:00
gamblor21 0a9bcc538b Removed ordered dict for all SAMD21 2020-10-14 20:15:21 -05:00
gamblor21 e6d0b207ec Removed MICROPY_PY_COLLECTIONS_NAMEDTUPLE__ASDICT from unix coverage 2020-10-14 14:06:34 -05:00
Scott Shawcroft cc8f8d8604
Merge pull request #3549 from tannewt/stm_alarm_tweak
Fix stm sleep too long
2020-10-14 11:12:26 -07:00
Brian Dean 852a91e1b7 boards/bdmicro_vina_d51/pins.c: Fix illegal QSTR name (hyphen). 2020-10-14 08:29:28 -04:00
microDev 18fbff4f57
Update wifi hostname method 2020-10-14 11:11:59 +05:30
Limor "Ladyada" Fried e9c04bc1f0
Merge pull request #3550 from bd34n/bdmicro_vina_d51
Add new board to atmel-samd port: bdmicro_vina_d51
2020-10-13 23:15:25 -04:00
gamblor21 4270061db4 Moved ORDEREDDICT define to central location 2020-10-13 18:52:27 -05:00
Scott Shawcroft 56427d9abe
Fix stm sleep too long 2020-10-13 14:02:29 -07:00
Brian Dean 2b33968a1e Add new board to atmel-samd port: bdmicro_vina_d51 2020-10-13 16:46:25 -04:00
Scott Shawcroft 3d21eec3cd
Merge pull request #3546 from tannewt/rtc_irq
Finer grained, per port tick locking
2020-10-13 13:39:32 -07:00
Scott Shawcroft 2bc40bcadf
Remove readreq when changing continuous 2020-10-13 10:15:34 -07:00
Scott Shawcroft 33dee4ae07
Merge pull request #3545 from tannewt/stm_rtc
Fix STM RTC read so it's atomic.
2020-10-13 10:10:50 -07:00
microDev ceb531086e
Add method to set custom hostname 2020-10-13 14:22:02 +05:30
Scott Shawcroft 379e73af2e
Finer grained, per port tick locking
Fixes #3504 hopefully.
2020-10-12 18:43:21 -07:00
Scott Shawcroft a0e5e961c5
Fix STM RTC read so it's atomic.
Fixes #3376
2020-10-12 17:43:25 -07:00
Scott Shawcroft 9de96786ad
Merge pull request #3538 from jepler/parallel-qstrlast
build: parallelize the qstr build steps
2020-10-12 15:52:43 -07:00
Scott Shawcroft bb046f9983
Merge pull request #3540 from WarriorOfWire/async_syntax
__await__ magic method and async/await
2020-10-12 15:31:43 -07:00
Scott Shawcroft 638c7f7b57
Merge pull request #3514 from hierophect/esp32-analogout
ESP32-S2: AnalogOut
2020-10-12 15:08:50 -07:00
Jeff Epler 8ddbebd2c1 esp32s2: fix build after qstr rule changes 2020-10-12 13:35:15 -05:00
Kenny 10badd93c3 leftover newlines 2020-10-11 22:52:27 -07:00
Kenny 94beeabc51 remove unnecessary board configuration and address feedback 2020-10-11 22:42:59 -07:00
Kenny 3c46e3a6aa
Turn off async for circuitplayground express
Firmware too large
2020-10-11 08:16:36 -07:00
Targett363 60deb321d1 adding USB PID VID 2020-10-10 23:55:05 +01:00
warriorofwire f5f1e29dc0 disable async/await on a several small ucontrollers 2020-10-10 15:43:12 -07:00
Radomir Dopieralski 3f6ca7bd32 Make end-of-line-fixer happy 2020-10-10 23:59:44 +02:00
Targett363 5721cf0710 tidying up board names 2020-10-10 22:42:24 +01:00
Targett363 ead0d51fd7 Commenting out Neopixel in pins.c 2020-10-10 22:22:01 +01:00
Targett363 74954286f0 Putting the Saola Wrover files back and adding my Wrover board files this time 2020-10-10 21:44:14 +01:00
Targett363 f38e868e90 Actually adding Wrover board files this time 2020-10-10 21:28:26 +01:00
Targett363 b9e308c248 Adding Wroom and Wrover board files 2020-10-10 21:11:06 +01:00
Radomir Dopieralski b227b79dec Fix #3504: Don't use time module in pew.tick()
The time.sleep() and time.monotonic() functions break the timer
interrupt on which PewPew10 display relies, so we can't use them
anymore. Instead I'm adding a time-keeping function to the display
code itself, which then can be used in pew.tick() internally.
2020-10-10 20:26:33 +02:00
lady ada 70a94c8d2d fix for https://github.com/adafruit/circuitpython/issues/3534 2020-10-10 12:27:35 -04:00
Scott Shawcroft c7d87cea62
Merge pull request #3532 from tannewt/samd21_autoreload
Fix autoreload on SAMD21
2020-10-09 14:49:48 -07:00
Lucian Copeland b435ef0272 Merge remote-tracking branch 'upstream/main' into esp32-analogout 2020-10-09 17:19:46 -04:00
Scott Shawcroft 375676ff58
Merge pull request #3501 from hierophect/esp32-analogin
ESP32S2: Add AnalogIn
2020-10-09 14:10:24 -07:00
Scott Shawcroft 699f19f44a
Merge pull request #3522 from tannewt/imx_metro
Unify iMX RT flash config and add Metro M7 1011
2020-10-09 13:48:58 -07:00
Scott Shawcroft 3ccf644dd0
Fix autoreload on SAMD21
The issue was that a time.sleep() would set the RTC wake up
further into the future even if we wanted to tick every ms. Ticking
every ms is used to time the autoreload delay and without it,
autoreload doesn't work.

Fixes #3528
2020-10-09 12:53:00 -07:00
Lucian Copeland ccbc15046a Fix submodule issue 2020-10-09 13:29:35 -04:00
Scott Shawcroft 506936ea2e
Merge pull request #3525 from UnexpectedCircuitPython/UM_S2_Boards
Fixed the FeatherS2 prerelease hardware name
2020-10-09 10:20:13 -07:00
Jim Mussared fa12bfc227 stm32/rfcore: Update to support WS=1.9.0.0.4.
This WS update to 1.9.0.0.4 broke the workaround used in rfcore for
OCF_CB_SET_EVENT_MASK2, so fix it to support WS 1.8 and 1.9.
2020-10-09 23:52:35 +11:00
askpatricw 2b2003f3e7 Set default hostname 2020-10-08 22:46:10 -07:00
Scott Shawcroft b578afa02f
Merge pull request #3523 from tannewt/ble_connectionerror
Replace _bleio.ConnectionError with the native version
2020-10-08 13:00:06 -07:00
Ryan T. Hamilton 99f27bea61 Merge branch 'main' of https://github.com/adafruit/circuitpython into esp32s2-morenet 2020-10-08 12:43:52 -07:00
Lucian Copeland 5af1e054a7 Fix strange merge submodule edit 2020-10-08 14:57:41 -04:00
Lucian Copeland b5f8321d37 Merge branch 'esp32-analogin' into esp32-analogout 2020-10-08 12:42:00 -04:00
Lucian Copeland 97d217a764 Merge remote-tracking branch 'upstream/main' into esp32-analogin 2020-10-08 12:34:58 -04:00
hierophect 4bec77652b
Merge pull request #3519 from hathach/fix-idf-latest
fix espressif latest idf
2020-10-08 12:22:24 -04:00
Jim Mussared 222ec1a4a8 stm32/boards/NUCLEO_WB55: Add standalone WB55 FUS/WS firmware updater.
This commit adds a script that can be run on-device to install FUS and WS
binaries from the filesystem.  Instructions for use are provided in
the rfcore_firmware.py file.

The commit also removes unneeded functionality from the existing rfcore.py
debug script (and renames it rfcore_debug.py).
2020-10-08 17:39:15 +11:00
Jim Mussared 7c76a2dfcf stm32/rfcore: Add Python API for basic rfcore operations.
The new functions provide FUS/WS status, version and SYS HCI commands:
- stm.rfcore_status()
- stm.rfcore_fw_version(fw_id)
- stm.rfcore_sys_hci(ogf, ocf, cmd)
2020-10-08 17:37:11 +11:00
hathach e1fc85c56b fix usb issue with latest idf 2020-10-08 13:30:32 +07:00
Seon Rozenblum d93a1961c4 Fixed the FeatherS2 prerelease hardware name 2020-10-08 14:03:16 +11:00
Scott Shawcroft 9fcf96cb64
Replace _bleio.ConnectionError with the native version
Replace uses of _bleio.ConnectionError with regular ConnectionError

Fixes #3008
2020-10-07 17:11:32 -07:00
Scott Shawcroft ef42d6bb6c
Update USB PID 2020-10-07 16:12:07 -07:00
Scott Shawcroft 09bc415751
Unify iMX flash config and add Metro M7 1011
This unifies the flash config to the settings used by the Boot ROM.
This makes the config unique per board which allows for changing
quad enable and status bit differences per flash device. It also
allows for timing differences due to the board layout.

This change also tweaks linker layout to leave more ram space for
the CircuitPython heap.
2020-10-07 15:23:47 -07:00
gamblor21 085d2a2274 Update submodule to merge commit 2020-10-07 14:09:26 -05:00
hathach b7ed18d622 change idf to espressif
fix hal includes
2020-10-08 00:52:00 +07:00
Lucian Copeland 9ac0aae5a9 Merge remote-tracking branch 'upstream/main' into esp32-analogout 2020-10-07 12:21:04 -04:00
Lucian Copeland 7386a948bd Merge remote-tracking branch 'upstream/main' into esp32-analogin 2020-10-07 12:20:30 -04:00
Jeff Epler 16ed875f4e canio: remove unused fields
these relate to properties that were removed as well
2020-10-06 20:14:50 -05:00
Jeff Epler 81d7ef0256 stm: canio: remove stray optimization flag for debugging 2020-10-06 20:13:23 -05:00
Jeff Epler eed3387f4e stm32: canio: Fix message cancellation
.. it's necessary to wait for a cancellation request to actually free
the respective Tx mailbox
2020-10-06 20:12:10 -05:00
Jeff Epler abe0405d6e stm32: canio: Fix canio.CAN.restart() 2020-10-06 20:12:06 -05:00
Jeff Epler e5a0af9216 stm32: canio: When Tx mailboxes are full, cancel an old message
.. also add the 8ms wait for transmission that the atmel sam port
has
2020-10-06 20:11:58 -05:00
Jeff Epler a7dccb39a4 stm32: canio: remove unused functions 2020-10-06 20:11:51 -05:00
Jeff Epler 23bd2496de stm32: canio: remove some unneeded declarations 2020-10-06 20:11:43 -05:00
Jeff Epler 7df01d3fbd stm32: canio: enable on all stm32f405 boards 2020-10-06 20:11:39 -05:00
Jeff Epler 01e9e355ce canio: implement for stm32f405
The has successfully run my loopback self-test program for CAN,
which tests transmission, reception, and filtering.  The 1M baud rate setting
was also verified on saleae to be accurate.
2020-10-06 20:11:35 -05:00
Scott Shawcroft 8c428a3bdd
Merge pull request #3492 from hierophect/esp32-update-idf
ESP32S2: move to official IDF submodule
2020-10-06 16:53:32 -07:00
Lucian Copeland d5c8e55769 Add AnalogIO 2020-10-06 15:13:50 -04:00
Lucian Copeland 68cb384f8f Remove logging from shared-bindings, fix translations, revert config target macro 2020-10-06 13:29:12 -04:00
Lucian Copeland f90eb23db1 Merge branch 'esp32-update-idf' into esp32-analogin 2020-10-06 12:52:40 -04:00
Lucian Copeland 0d7552b67e Update ESP-IDF to newer fixed fork 2020-10-06 12:48:28 -04:00
iabdalkader 9855b9cd82 stm32/sdcard: Fix H7 build when using SDMMC2.
Changes are:
- Fix missing IRQ handler when SDMMC2 is used instead of SDMMC1 with H7
  MCUs.
- Removed outdated H7 series compatibility macros.
- Defined common IRQ handler macro for F4 series.
2020-10-06 23:33:38 +11:00
iabdalkader 7497d891a7 stm32/sdio: Don't change any DMA2 settings on H7 MCUs.
DMA2 clock and registers should be left in their current state in the H7
build.
2020-10-06 23:31:08 +11:00
Damien George 1dc64359da esp32: Use path relative to root for netutils/timeutils headers.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-06 12:32:20 +11:00
Seon Rozenblum 5c00ba8592 Removed hardware APA settings from mpconfigboard.h because they make the APA flicker on boot. I need to look into why, but I don't think they are being used for anything right now anyway. 2020-10-06 07:40:20 +11:00
hierophect e93a274f2f
Merge branch 'main' into esp32-analogin 2020-10-05 13:02:42 -04:00
Lucian Copeland 0467a82880 Fix/remove various style issues 2020-10-05 13:00:42 -04:00
Damien George 0fff2e03fe stm32/Makefile: Allow boards to extend SRC_C, SRC_O and OBJ variables.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-02 15:46:13 +10:00
Lucian Copeland a8dfae58d9 Add ADC calibration module support 2020-10-01 17:17:39 -04:00
Scott Shawcroft d62ac24493
Merge pull request #3469 from jepler/noreturn
Add some NORETURN attributes
2020-10-01 11:18:36 -07:00
Scott Shawcroft 2ad54f8413
Merge pull request #3463 from UnexpectedCircuitPython/UM_S2_Boards
Updated UM FeatherS2 boards
2020-10-01 10:56:55 -07:00
Lucian Copeland 9a3bd82f40 Update TinyUSB include compatibility 2020-10-01 13:19:54 -04:00
Lucian Copeland 0bbd067a17 Revert ADC calibration removal, complete merge 2020-10-01 13:06:48 -04:00
Damien George 817b80a102 unix/variants: Enable MICROPY_DEBUG_PARSE_RULE_NAME on coverage build.
Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 15:26:43 +10:00
Damien George d4b61b0017 extmod/utime_mphal: Add generic utime.time_ns() function.
It requires mp_hal_time_ns() to be provided by a port.  This function
allows very accurate absolute timestamps.

Enabled on unix, windows, stm32, esp8266 and esp32.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 14:20:42 +10:00
Damien George 905a18aafe unix,windows: Implement mp_hal_time_ns using gettimeofday.
This provides microsecond accuracy.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 14:20:42 +10:00
Damien George 71f3ade770 ports: Support legacy soft I2C/SPI construction via id=-1 arg.
With a warning that this way of constructing software I2C/SPI is
deprecated.  The check and warning will be removed in a future release.

This should help existing code to migrate to the new SoftI2C/SoftSPI types.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
Damien George 39d50d129c ports: Add SoftI2C and SoftSPI to machine module where appropriate.
Previous commits removed the ability for one I2C/SPI constructor to
construct both software- or hardware-based peripheral instances.  Such
construction is now split to explicit soft and non-soft types.

This commit makes both types available in all ports that previously could
create both software and hardware peripherals: machine.I2C and machine.SPI
construct hardware instances, while machine.SoftI2C and machine.SoftSPI
create software instances.

This is a breaking change for use of software-based I2C and SPI.  Code that
constructed I2C/SPI peripherals in the following way will need to be
changed:

    machine.I2C(-1, ...)            ->  machine.SoftI2C(...)
    machine.I2C(scl=scl, sda=sda)   ->  machine.SoftI2C(scl=scl, sda=sda)

    machine.SPI(-1, ...)            ->  machine.SoftSPI(...)
    machine.SPI(sck=sck, mosi=mosi, miso=miso)
                        ->  machine.SoftSPI(sck=sck, mosi=mosi, miso=miso)

Code which uses machine.I2C and machine.SPI classes to access hardware
peripherals does not need to change.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
Damien George 9e0533b9e1 extmod/machine_spi: Remove "id" arg in SoftSPI constructor.
The SoftSPI constructor is now used soley to create SoftSPI instances, it
can no longer delegate to create a hardware-based SPI instance.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
Damien George aaed33896b extmod/machine_i2c: Remove "id" arg in SoftI2C constructor.
The SoftI2C constructor is now used soley to create SoftI2C instances, it
can no longer delegate to create a hardware-based I2C instance.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
Damien George c35deb2625 extmod/machine_i2c: Rename type to SoftI2C and add custom print method.
Also rename machine_i2c_type to mp_machine_soft_i2c_type.  These changes
make it clear that it's a soft-I2C implementation, and match SoftSPI.

Signed-off-by: Damien George <damien@micropython.org>
2020-10-01 12:57:10 +10:00
Lucian Copeland c624c1e838 Merge branch 'esp32-update-idf' into esp32-analogin 2020-09-30 16:51:19 -04:00
Lucian Copeland e01e8dd6b9 Revert HAL refactor changes to avoid USB breaking changes past esp-idf dde6222cd 2020-09-30 16:36:13 -04:00
Scott Shawcroft a739d314f1
Add Metro ESP32S2
Also fix two bugs:
* Crash when resetting board.SPI when it hasn't been inited.
* Reading back the output value is always false. Fixes #3353
2020-09-30 12:57:39 -07:00
Scott Shawcroft 7f803c0b51
Merge pull request #3489 from astrobokonon/esp32s2-fixconnection
ESP32S2: Enter station mode before connecting
2020-09-30 12:16:15 -07:00
Scott Shawcroft 5ac3c36d64
Merge pull request #3450 from mdroberts1243/New_quirk_for_SH1107
New quirk for sh1107
2020-09-30 12:03:10 -07:00
Scott Shawcroft a09a158ddc
Fix trailing line 2020-09-30 11:36:51 -07:00
Lucian Copeland 66b8559fd4 Change submodule, rework all includes 2020-09-30 11:26:07 -04:00
Maureen Helm 997ec9e8cc zephyr: Update build instructions to v2.4.0.
Updates the zephyr port build instructions to use the latest zephyr
release tag.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30 23:21:53 +10:00
Maureen Helm f842e32155 zephyr: Const-ify struct device instance pointers.
Zephyr v2.4.0 added a const qualifier to usages of struct device to
allow storing device driver instances exclusively in flash and thereby
reduce ram footprint.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30 23:21:53 +10:00
Maureen Helm ce49be43b1 zephyr: Replace zephyr integer types with C99 types.
Zephyr v2.4.0 stopped using custom integer types in favor of C99 types
instead.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30 23:21:53 +10:00
Jeff Epler c129c8f296 Merge remote-tracking branch 'origin/main' into canbus-api-changes 2020-09-29 20:15:11 -05:00
Seon Rozenblum 819b5faa71 Removed ProS2 board files for now 2020-09-30 10:23:54 +10:00
Seon Rozenblum 4b1a7d812e Updated UM boards 2020-09-30 10:16:24 +10:00
Seon Rozenblum a2a0aa058f Updated UM boards 2020-09-30 10:13:05 +10:00
Ryan T. Hamilton 2f6d7c9002 Make sure you're a STA before connecting 2020-09-29 13:41:56 -07:00
Jeff Epler 2bb44f6c4d
Merge pull request #3486 from microDev1/fixTranslate
Update make translate script
2020-09-29 14:32:49 -05:00
Jeff Epler 611f81ac1a canio: actually drop the _error_count properties
thanks @tannewt
2020-09-29 14:25:53 -05:00
microDev 4c7d9e3aaf
Update make translate script 2020-09-29 11:14:30 +05:30
Jeff Epler d4ee440a91
Merge pull request #3475 from tannewt/esp_uf2
Reorganize sdkconfigs and release UF2s
2020-09-28 20:39:37 -05:00
Ryan T. Hamilton 2a4a244245 Add ap_ssid and ap_bssid 2020-09-28 17:25:09 -07:00
Jeff Epler dd6e7f5a8a mimxrt10xx: Add required header for NORETURN definition 2020-09-28 18:56:01 -05:00
Jeff Epler 1dbb59271c esp32: Use esp_restart from reset_to_bootloader; redeclare it NORETURN 2020-09-28 18:56:01 -05:00
Jeff Epler 726dcdb60a Add some NORETURN attributes
I have a function where it should be impossible to reach the end, so I put in a safe-mode reset at the bottom:
```
int find_unused_slot(void) {
    // precondition: you already verified that a slot was available
    for (int i=0; i<NUM_SLOTS; i++) {
        if( slot_free(i)) {
            return i;
        }
    }
    safe_mode_reset(MICROPY_FATAL_ERROR);
}
```
However, the compiler still gave a diagnostic, because safe_mode_reset was not declared NORETURN.

So I started by teaching the compiler that reset_into_safe_mode never returned.  This leads at least one level deeper due to reset_cpu needing to be a NORETURN function.  Each port is a little different in this area.  I also marked reset_to_bootloader as NORETURN.
Additional notes:

 * stm32's reset_to_bootloader was not implemented, but now does a bare reset.  Most stm32s are not fitted with uf2 bootloaders anyway.
 * ditto cxd56
 * esp32s2 did not implement reset_cpu at all.  I used esp_restart().  (not tested)
 * litex did not implement reset_cpu at all.  I used reboot_ctrl_write.  But notably this is what reset_to_bootloader already did, so one or the other must be incorrect (not tested).  reboot_ctrl_write cannot be declared NORETURN, as it returns unless the special value 0xac is written), so a new unreachable forever-loop is added.
 * cxd56's reset is via a boardctl() call which can't generically be declared NORETURN, so a new unreacahble "for(;;)" forever-loop is added.
 * In several places, NVIC_SystemReset is redeclared with NORETURN applied.  This is accepted just fine by gcc.  I chose this as preferable to editing the multiple copies of CMSIS headers where it is normally declared.
 * the stub safe_mode reset simply aborts.  This is used in mpy-cross.
2020-09-28 18:55:56 -05:00
Ryan T. Hamilton 7b7ef8edde Merge branch 'main' of https://github.com/adafruit/circuitpython into esp32s2-morenet 2020-09-28 16:50:02 -07:00
Ryan T. Hamilton 66d55738c1 Enable DNS info 2020-09-28 16:49:20 -07:00
mdroberts1243 b1e1237887
Merge branch 'main' into New_quirk_for_SH1107 2020-09-28 19:40:47 -04:00
Jeff Epler f4e36fc7f6 CAN: Use mp_obj_t insteaed of canio_message_obj_t, get rid of rtr field 2020-09-28 17:22:00 -05:00
Jeff Epler 3e97e9c4be canio: Listener: shuffle function declarations around 2020-09-28 17:22:00 -05:00
Jeff Epler 48bda589b8 Listerner: read -> receive, drop readinto
This prepares for creating a separate RemoteTransmissionRequest class
2020-09-28 17:22:00 -05:00
Jeff Epler 79ca430ddf Match: address -> id 2020-09-28 17:22:00 -05:00
Scott Shawcroft abdbbf9e24
One grep 2020-09-28 15:10:12 -07:00
Lucian Copeland 128b4a013b Add non-calibrated ADC 2020-09-28 12:11:08 -04:00
Anson He 96323ac3ac Default power on Wio Terminal's 40 Pin 2020-09-27 10:21:25 +08:00
Ryan T. Hamilton b9968ea801 Merge branch 'main' of https://github.com/adafruit/circuitpython into esp32s2-morenet 2020-09-26 13:37:14 -07:00
Jeff Epler 791d20f16c give qtpy haxpress its own USB PID 2020-09-26 11:45:53 -05:00
Jeff Epler 9944935fde qtpy haxpress: enable RTC 2020-09-26 11:33:10 -05:00
Mark Roberts 22a7696fac Changes take 2: missed ugame10 board 2020-09-25 22:17:59 -04:00
Mark Roberts b921543571 Requested changes take 1 2020-09-25 21:27:29 -04:00
Jeff Epler eadb4de144 qtpy_m0_haxpress: add 2020-09-24 16:58:24 -05:00
Scott Shawcroft dd86cb00ad
Merge pull request #3448 from hierophect/esp32-sd-fix
ESP32S2 - Fix SPI's SD card issue, add pin protections
2020-09-23 12:30:01 -07:00
Scott Shawcroft bcabf5e019
Merge pull request #3457 from ladyada/qtpy_m0
fix pins for rev C
2020-09-23 11:31:28 -07:00
Lucian Copeland 00517b2600 Move missing pin warning to shared-bindings 2020-09-23 11:39:39 -04:00
lady ada 9db7625717 neopix is default on! 2020-09-23 11:19:01 -04:00
stijn bada8c9231 windows: Update build instructions in README.
Make the instructions more complete by documenting all needed steps for
starting from scratch.  Also add a section for MSYS2 since the Travis build
uses it as well and it's a good alternative for Cygwin.  Remove the mingw32
reference since it's not readily available anymore in most Linux distros
nor compiles successfully.
2020-09-23 22:22:13 +10:00
lady ada 5384479a61 fix pins for rev C 2020-09-22 23:28:23 -04:00
Scott Shawcroft 98185e914b
Merge pull request #3425 from jepler/canbus
canio: Initial implementation for SAM E5x MCUs
2020-09-22 12:39:52 -07:00
Jeff Epler 59580d0f2d canio: Fix implementation bugs in atmel-sam 2020-09-22 09:36:29 -05:00
microDev add230b4da
Update port.c 2020-09-22 11:37:12 +05:30
Ryan T. Hamilton a77966a736 Try to reuse/share existing objects 2020-09-21 21:36:46 -07:00
Damien George 3e16763201 stm32/rfcore: Fix FUS layout and size of ipcc_device_info_table_t.
The device info table has a different layout when core 2 is in FUS mode.
In particular it's larger than the 32 bytes used when in WS mode and if the
correct amount of space is not allocated then the end of the table may be
overwritten with other data (eg with FUS version 0.5.3).  So update the
structure to fix this.

Also update rfcore.py to disable IRQs (which are enabled by rfcore.c), to
not depend on uctypes, and to not require the asm_thumb emitter.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-22 14:08:22 +10:00
Ryan T. Hamilton 2fa269ccbc Additional error handling 2020-09-21 20:56:03 -07:00
Jeff Epler 4869dbdc67 canio: rename from _canio
This reflects our belief that the API is stable enough to avoid incompatible changes during 6.x.
2020-09-21 16:44:26 -05:00
Jeff Epler 9e8f1820c8 canio.CAN: switch rx/tx, make both mandatory, move declarations around 2020-09-21 16:44:26 -05:00
Jeff Epler 4e4853dcb2 common.template.ld: remove unneeded line 2020-09-21 16:44:26 -05:00
Jeff Epler df379b84cb remove unneeded symbols 2020-09-21 16:44:26 -05:00
Jeff Epler 7fd6cab2ac canio: Make both tx and rx (but not both) optional
.. loopback and silent come from the (optional) constructor parameters
not guessing based on the pin specification

.. docstring & comment improvements
2020-09-21 16:44:26 -05:00
Jeff Epler 09f8a83a75 samd: template.ld: put canram in its own output section 2020-09-21 16:44:26 -05:00
Jeff Epler a76119afcb add _canio to Feather M4 CAN 2020-09-21 16:44:26 -05:00
Jeff Epler 67d8f108bb Add CAN to SAM E51 clock config 2020-09-21 16:44:26 -05:00
Jeff Epler 44c5b2bbb1 Respond to review comments
Thanks @tannewt!
2020-09-21 16:44:26 -05:00
Jeff Epler 58b920ed97 fix whitespace 2020-09-21 16:44:26 -05:00
Jeff Epler 27cbb690e5 _canio: Add listener matching
Lightly tested:
 * no matches (catch-all)
 * standard address single address matches (even and odd positions)
 * standard address mask matches
 * only tested that extended doesn't match non-extended
2020-09-21 16:44:26 -05:00
Jeff Epler 635fcadb59 _canio.CAN: add error handling & bus state 2020-09-21 16:44:26 -05:00
Jeff Epler a2e1867f69 _canio: Minimal implementation for SAM E5x MCUs
Tested & working:

 * Send standard packets
 * Receive standard packets (1 FIFO, no filter)

Interoperation between SAM E54 Xplained running this tree and
MicroPython running on STM32F405 Feather with an external
transceiver was also tested.

Many other aspects of a full implementation are not yet present,
such as error detection and recovery.
2020-09-21 16:44:26 -05:00
Jeff Epler 183649aad8 samd: move mcu_find_pin_function to header
.. it'll be used in can as well as sdio
2020-09-21 16:44:07 -05:00
Lucian Copeland 22d9a94f2b Use write_value, add missing pin exceptions 2020-09-21 13:47:14 -04:00
Scott Shawcroft c963771b4b
Merge pull request #3445 from microDev1/boardInfo
Update microS2 config files
2020-09-21 10:33:38 -07:00
microDev 40ec7a66e4
Update microS2 config files 2020-09-21 14:39:31 +05:30
Jeff Epler ce266425e1
Merge pull request #3441 from hierophect/stm32-rgbmatrix-crashfix
STM32: Add never_reset reservation to RGBMatrix init
2020-09-20 07:51:09 -05:00
Ryan T. Hamilton bc8863a3c7 Simplify now that I have it working
still need to figure out the bound method business
2020-09-19 21:04:07 -07:00
Ryan T. Hamilton 04ffd0dca0 Add gateway, subnet, and rssi info for current connected AP
ap_rssi is a bound method, which I'm not keen on, but it works
2020-09-19 13:38:04 -07:00
Dan Halbert 9cc803eb95
Merge pull request #3432 from bd34n/rename-bdmicro-vina-m0-d21
Rename board bdmicro_vina_m0 to bdmicro_vina_d21 and update boardfiles.
2020-09-19 13:41:21 -04:00
Dan Halbert b28b31196d
Merge pull request #3438 from nitz/patch-1
[Makerdiary nRF52840 M.2 Devkit] Add SDA & SDL, RX & TX to pins.c
2020-09-18 21:51:22 -04:00
Dan Halbert dfd09bba57
Merge pull request #3433 from astrobokonon/esp32s2-bssid
ESP32S2: Allow connecting to specific bssid
2020-09-18 21:31:15 -04:00
Dan Halbert 8cf0171c06
Merge pull request #3431 from hierophect/stm32-spi-writevalue
STM32: Change SPI Read to acknowledge write_value
2020-09-18 19:46:21 -04:00
Dan Halbert 5116375604
Merge pull request #3436 from jepler/fix-spi-sercom4
samd: SPI: improve conditional code
2020-09-18 19:14:39 -04:00
Dan Halbert 23dd7c7c96
Merge pull request #3435 from jepler/fix-sdhc1
sdioio: fix code for the case where there is no SDHC1
2020-09-18 17:10:59 -04:00
nitz 8d6a28a9ff
Update user button names. 2020-09-18 17:01:44 -04:00
Dan Halbert 550b42e4d3
Merge pull request #3434 from jepler/same54-disable-cpu-voltage
sam e54: disable microcontroller.cpu.voltage
2020-09-18 15:20:43 -04:00
nitz 5249a228a0
More pin names cleanup. 2020-09-18 14:27:00 -04:00
Lucian Copeland 3a59d30e1a Remove timer debug messages 2020-09-18 12:48:15 -04:00
Lucian Copeland c58bd4c047 Add never_reset reservation to RGBMatrix init 2020-09-18 12:38:15 -04:00
Damien George 42342fa3cb tests/basics: Add test for MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS ops.
And enable this feature on unix, the coverage variant.  The .exp test file
is needed so the test can run on CPython versions prior to "@=" operator
support.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-18 18:40:42 +10:00
Tweako 8af9796b16 stm32/led: Support PWM output without TIM3.
For example, the STM32WB55 doesn't have TIM3 but can still drive LEDs using
PWM on other timers.
2020-09-18 18:37:11 +10:00
Damien George 8f20cdc353 all: Rename absolute time-based functions to include "epoch".
For time-based functions that work with absolute time there is the need for
an Epoch, to set the zero-point at which the absolute time starts counting.
Such functions include time.time() and filesystem stat return values.  And
different ports may use a different Epoch.

To make it clearer what functions use the Epoch (whatever it may be), and
make the ports more consistent with their use of the Epoch, this commit
renames all Epoch related functions to include the word "epoch" in their
name (and remove references to "2000").

Along with this rename, the following things have changed:

- mp_hal_time_ns() is now specified to return the number of nanoseconds
  since the Epoch, rather than since 1970 (but since this is an internal
  function it doesn't change anything for the user).

- littlefs timestamps on the esp8266 have been fixed (they were previously
  off by 30 years in nanoseconds).

Otherwise, there is no functional change made by this commit.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-18 17:20:34 +10:00
Damien George bd7af6151d ports: Add utime.gmtime() function.
To portably get the Epoch.  This is simply aliased to localtime() on ports
that are not timezone aware.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-18 16:25:36 +10:00
Damien George b28758054b esp8266: Remove release-specific manifest, disable osdebug by default.
This commit removes release-specific builds for the esp8266 and makes the
normal build of the GENERIC board more like the release build.  This makes
esp8266 like all the other ports, for which there is no difference between
a daily build and a release build, making things less confusing.

Release builds were previously defined by UART_OS=-1 (disable OS messages)
and using manifest_release.py to include more frozen modules.

The changes in this commit are:
- Remove manifest_release.py.
- Add existing modules from manifest_release.py (except example code)
  to the GENERIC board's manifest.py file.
- Change UART_OS default to -1 to disable OS messages by default.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-18 16:01:42 +10:00
Mirko Vogt ecb36d2439 esp32/modnetwork: Re-enable PPP support for IDF-SDK >=v4.
PPP support was disabled in 96008ff59a -
marked as "unsupported" due to an early IDF v4 release.  With the currently
supported IDF v4.x version - 4c81978a - it appears to be working just fine.
2020-09-18 15:57:21 +10:00
Jim Mussared 52d6eeb409 esp32/boards/sdkconfig.base: Set default IDF log level to ERROR.
This commit changes the default logging level on all esp32 boards to ERROR.
The esp32 port is now stable enough that it makes sense to remove the info
logs to make the output cleaner, and to match other ports.  More verbose
logging can always be reenabled via esp.osdebug().

This also fixes issue #6354, error messages from NimBLE: the problem is
that ble.active(True) will cause the IDF's NimBLE port to reset the
"NimBLE" tag back to the default level (which was INFO prior to this
commit).  Even if the user had previously called esp.osdebug(None), because
the IDF is setting the "NimBLE" tag back to the default (INFO), the
messages will continue to be shown.

The one quirk is that if the user does want to see the additional logging,
then they must call esp.osdebug(0, 3) after ble.active(True) to undo the
IDF setting the level back to the default (now ERROR).  This means that
it's impossible (via Python/esp.osdebug) to see stack-startup logging,
you'd have to recompile with the default level changed back to INFO.
2020-09-18 15:53:56 +10:00
nitz db078922e4
Removed TXD/RXD, fixed whitespace. 2020-09-17 21:32:19 -04:00
Chris Dailey be3e478fce
Add SDA & SDL, RX & TX to pins.c
Despite the [silk on the dock board](https://wiki.makerdiary.com/nrf52840-m2-devkit/resources/nrf52840_m2_devkit_hw_diagram_v1_0.pdf), the SDA/SCL pins weren't defined. Though, they were already defined in `mpconfigboard.h`.

Same for RX/TX. It looks like it declared `TXD` and `RXD`, so I didn't want to remove those, but I think it makes sense to have the "standard" pin names, but I moved ithem to illustrate they were all referencing the same pins.

I mimicked the whitespace I saw in the metro_nrf52840_express port.
2020-09-17 20:46:59 -04:00
Jeff Epler 45eec5b5a5 samd: SPI: improve conditional code
I recently misdiagnosed a "maybe-uninitialized" diagnostic as a bug in
asf4.  However, the problem was in our SPI code.

A special case for samr21 MCUs was being applied to same54p20a and possibly
other D5x/E5x MCUs, since the check was simply for pin PC19 existing at all.

Change the check to use the macro PIN_PC19F_SERCOM4_PAD0 which is only
defined if special function F of pin PC19 is SERCOM4 PAD0.

Reorganize the code a little bit so that brace-matching in editors is
not confused by the conditionalized code, including an unrelated change
for APA102_SCK's condition.

Revert the change to the Makefile that incorrectly attempted to silence
the diagnostic.
2020-09-17 18:30:22 -05:00
Jeff Epler c73182803d sdioio: fix code for the case where there is no SDHC1
.. it doesn't really make a difference (the old code created an empty
else{} statement) but this is more correct.
2020-09-17 18:29:31 -05:00
Jeff Epler 1b29ceaf1a sam e54: disable microcontroller.cpu.voltage
This hangs, and the usual workarounds didn't work.
2020-09-17 18:27:43 -05:00
Scott Shawcroft 17bdc969db
Reorganize sdkconfigs and release UF2s 2020-09-17 16:01:23 -07:00
Ryan T. Hamilton 1805e92038 Add else case for non-bssid usage 2020-09-17 15:04:27 -07:00
Scott Shawcroft 7f60ebd6c7
Merge pull request #3426 from tannewt/esp_flash_sizes
Add partition layouts for 8 and 16 MB as well.
2020-09-17 13:27:58 -07:00
Scott Shawcroft 4b827b25ad
Merge pull request #2966 from sommersoft/ci_check_vid_pid
Automate USB VID/PID Uniqueness Check
2020-09-17 11:48:46 -07:00
Scott Shawcroft 9cf9441ba6
Merge pull request #3393 from tannewt/fix_spi_psram
Add non-DMA SPI support.
2020-09-17 11:11:56 -07:00
Scott Shawcroft 78338ac12b
Merge pull request #3417 from hierophect/esp32s2-readme
ESP32S2: Add Readme
2020-09-17 10:58:17 -07:00
Ryan T. Hamilton 1e3241ec6d
Merge branch 'main' into esp32s2-bssid 2020-09-16 17:15:01 -07:00
Ryan T. Hamilton daa1dd278d connect now accepts bssid 2020-09-16 16:25:17 -07:00
Brian Dean 81ee874531 pins.c: fix trailing whitespace 2020-09-16 16:40:04 -04:00
Brian Dean 847d609ddc rename board bdmicro_vina_m0 to bdmicro_vina_d21 and update boardfiles appropriately 2020-09-16 16:27:24 -04:00
Scott Shawcroft c55deb54f0
Merge pull request #3427 from usini/muselab_nanoesp32_s2
Added board - Muselab nanoESP32-S2
2020-09-16 12:23:41 -07:00
Lucian Copeland 00ee94d24b Add SPI memset, optional flags 2020-09-16 14:22:18 -04:00
Scott Shawcroft fb90daa0ff
Merge pull request #3422 from askpatrickw/rtc-support
RTC enabled
2020-09-16 11:12:00 -07:00
askpatricw 18285f96e8 RTC is pickd up automatically 2020-09-16 10:13:07 -07:00
Dan Halbert d774678a0f
Merge pull request #3369 from kamtom480/camera
Add camera module
2020-09-16 12:29:58 -04:00
Lucian Copeland 478a4b6405 Clarify location of port root 2020-09-16 10:51:08 -04:00
Jeff Epler 1fc797132a
Merge pull request #3237 from DavePutz/issue3216
Issue#3216 - Needed an alternate way to check if background tasks were run
2020-09-16 08:47:33 -05:00
Kamil Tomaszewski 61687c81d8 camera: Pass width and height to take_picture() 2020-09-16 13:55:57 +02:00
Rémi Sarrailh c06aeda399 Add Muselab nanoesp32 s2 definition 2020-09-16 13:10:01 +02:00
Ryan T. Hamilton fead60d2d8 Add BSSID to Network 2020-09-15 23:32:53 -07:00
Scott Shawcroft 2bd169ec32
Add partition layouts for 8 and 16 MB as well. 2020-09-15 18:12:06 -07:00
Scott Shawcroft 95e27bb8bf
Add more PIDs for unique boards 2020-09-15 13:43:35 -07:00
askpatricw bd381e434f Revert "code review feedback"
This reverts commit f9f614b3a2.
2020-09-15 13:02:26 -07:00
askpatricw f9f614b3a2 code review feedback 2020-09-15 11:28:31 -07:00
askpatricw 8fcdc7da16 RTC enabled 2020-09-14 23:24:44 -07:00
Dan Halbert 3c6af94fb3
Merge pull request #3384 from jepler/feather_m4_can
atmel-samd: add same51, feather_m4_can
2020-09-14 23:57:51 -04:00
Jeff Epler 067a975875 update submodules to merge commits 2020-09-14 17:22:30 -05:00
DavePutz 2a2a8d6457
Merge pull request #28 from adafruit/main
Merge from adafruit/main
2020-09-14 16:50:40 -05:00
Lucian Copeland 3640ef2b7f Fix toctree, incorrect flash port assumptions 2020-09-14 17:37:55 -04:00
Lucian Copeland 6ecfdda580 Add Readme 2020-09-14 13:18:51 -04:00
DavePutz 2eca4ee902
Update PulseIn.c 2020-09-14 11:04:45 -05:00
Lucian Copeland e504438fd2 Remove unlicensed file, fix reset pin type check 2020-09-14 11:58:13 -04:00
DavePutz c014ac3089
Reworked check for input taking too long 2020-09-14 10:54:57 -05:00
Lucian Copeland ecc219fe50 Merge remote-tracking branch 'upstream/main' into esp32-displayio-fix 2020-09-14 10:44:31 -04:00
Kamil Tomaszewski ce7ee58e92 camera: Update camera module 2020-09-14 13:12:20 +02:00
Kamil Tomaszewski c2fc592c2c camera: Change API 2020-09-14 13:11:15 +02:00
Kamil Tomaszewski 143a1ff94a spresense: change the GC to do 32-byte blocks 2020-09-14 13:11:15 +02:00
Kamil Tomaszewski 1fde8ef9bc spresense: Add support for camera 2020-09-14 13:11:15 +02:00
Jeff Epler b3bdd4686b PacketBuffer: add missing 'break's, remove unneeded {} 2020-09-13 15:10:38 -05:00
Jeff Epler af24c8ae06 Merge remote-tracking branch 'origin/main' into implicit-fallthrough-diagnostic
Conflict in locale/circuitpython.pot resolved with 'make translate'
2020-09-13 14:21:21 -05:00
Jeff Epler 73ad78ed1b
Merge pull request #3395 from microDev1/safeMode
Add esp32s2 safe mode support & fix user_safe_mode output
2020-09-13 14:18:59 -05:00
Jeff Epler 90f7340bfc move implicit-fallthrough warning enable to defns.mk 2020-09-13 13:13:09 -05:00
microDev 36da92075b Update safe mode reason 2020-09-13 22:57:24 +05:30
microDev 5deac8d249 Update board specific safe mode message 2020-09-13 18:22:40 +05:30
lady ada 2fac4851a5 fix typo, tested hardware, neopixel doesnt work tho 2020-09-12 19:56:13 -04:00
lady ada 6fff4ec00d cutie variant 2020-09-12 19:00:26 -04:00
Jeff Epler 01fdd9598a disable iimplicit-fallthrough warning inside asf4
.. there is an instance of it that looks like a "true positive", but it only
affects sdhc transfers that are not a multiple of 4 bytes, which I don't think
happens. (sd card blocks are always 512 bytes)  I can fix this in our
asf4 repo but that would mean this should be deferred until after #3384 is
merged, since that also touches asf4 very invasively by adding a whole new
chip family.
2020-09-12 17:48:42 -05:00
Jeff Epler 5729097bc4 atmel-samd: enable build error for implicit fallthrough
If any diagnostics occur, we will want to either add `/* FALLTHROUGH */`
or `break;` as appropriate.  I only tested a few builds (trinket m0
and metro m4 express)
2020-09-12 15:11:29 -05:00
microDev 4da478382d Fix serial console output & add more boards 2020-09-12 17:46:52 +05:30
Damien George b31cb21a39 stm32/servo: Fix angle and speed methods to work again with -ve args.
Fixes a regression introduced by 70affd9ba2

Fixes issue #6403

Signed-off-by: Damien George <damien@micropython.org>
2020-09-12 13:47:59 +10:00
microDev 305bed6d9e Added esp32s2 safe_mode & fixed user_safe_mode 2020-09-11 21:06:54 +05:30
Damien George acdb0608b7 py/parse: Pass in an mp_print_t to mp_parse_node_print.
So the output can be redirected if needed.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-11 23:00:03 +10:00
Jeff Epler cacb0124ac feather_m4_express: Use quad data mode on flash
Limor confirmed that the all shipping revisions starting with Rev D had QSPI flash chips installed.

Note that when neither EXTERNAL_FLASH_QSPI_SINGLE nor EXTERNAL_FLASH_QSPI_DUAL is specified quad mode is assumed, so this is addressed by removing the setting altogether.
2020-09-10 20:20:21 -05:00
Jim Mussared 50efce8174 esp32/mpconfigport.h: Remove duplicate uhashlib registration. 2020-09-11 11:03:29 +10:00
stijn 70bec41089 windows: Show test failures in the Appveyor builds. 2020-09-11 10:56:02 +10:00
stijn 5b94c61097 windows/Makefile: Support freezing modules.
Alter the build flags as needed to support freezing modules with a
manifest.  This makes freezing works just like it does for e.g. the unix
port.
2020-09-11 10:52:52 +10:00
stijn 2a9ea69fa9 windows/msvc: Support freezing modules.
Support freezing modules via manifest.py for consistency with the other
ports.  In essence this comes down to calling makemanifest.py and adding
the resulting .c file to the build.  Note the file with preprocessed qstrs
has been renamed to match what makemanifest.py expects and which is also
the name all other ports use.
2020-09-11 10:52:35 +10:00
Scott Shawcroft c7c90f47b0
Add non-DMA SPI support.
This fixes SPI with PSRAM allocated buffers. DMA with SPI2 was
attempted but produced junk output. This manual copy is less than
2x slower than DMA when not interrupted.

Fixes #3339
2020-09-10 17:32:20 -07:00
stijn 2e54d9d146 py: Fix handling of NaN in certain pow implementations.
Adds a new compile-time option MICROPY_PY_MATH_POW_FIX_NAN for use with
toolchains that don't handle pow-of-NaN correctly.
2020-09-11 10:04:57 +10:00
Scott Shawcroft 9e722c8c99
Merge pull request #3375 from DavePutz/issue3296
Correction for Issue #3296 - ble hanging on nrf52840
2020-09-10 12:36:17 -07:00
Scott Shawcroft e5dd2a32f4
Merge pull request #3388 from jerryneedell/jerryn_rfm69
freeze rfm69 and bus_device libraries into feather_m0_rfm69
2020-09-10 11:49:37 -07:00
Scott Shawcroft 683462c1b1
Merge pull request #3326 from tannewt/native_wifi
Add native wifi API with ESP32S2 support
2020-09-10 11:20:44 -07:00
Damien George 709398daae stm32/rtc.h: Include py/obj.h to make header self contained.
Signed-off-by: Damien George <damien@micropython.org>
2020-09-10 20:46:40 +10:00
Damien George 547688c58c stm32/usb: Don't nul pyb_hid_report_desc if MICROPY_HW_USB_HID disabled.
So this code can be used if pyb_hid_report_desc is not included in the
port's root pointer list.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-10 20:46:35 +10:00
Jerry Needell 2529ee2359 freeze rfm69 and bus_device libraries int feather_m0_rfm69 2020-09-09 14:54:20 -04:00
Lucian Copeland be199983c1 Merge remote-tracking branch 'upstream/main' into esp32-displayio-fix 2020-09-09 13:24:30 -04:00
Scott Shawcroft 99f5011d74
Fix heap without PSRAM. Never set heap_size. 2020-09-08 17:06:09 -07:00
Jeff Epler b49099c8f3 additional asf4 updates 2020-09-08 15:31:13 -05:00
Jeff Epler e066448e36 atmel-samd: add same51, feather_m4_can
This is compile-tested, and requires updates in the related submodules:

https://github.com/adafruit/samd-peripherals/pull/35
https://github.com/adafruit/asf4/pull/37

This should not be merged until those can also be merged.
2020-09-08 13:06:45 -05:00
microDev 14af8e4b42
Added temp_sensor_stop
Co-authored-by: hierophect <hierophect@gmail.com>
2020-09-08 21:07:00 +05:30
Damien George 27e117307d nrf: Remove unnecessary includes of mpconfigport.h and its header guard.
The mpconfigport.h file is an internal header and should only ever be
included once by mpconfig.h.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-09 00:13:34 +10:00
Damien George 75344af4ca nrf/main: Make mp_builtin_open signature match that in py/builtin.h.
Signed-off-by: Damien George <damien@micropython.org>
2020-09-09 00:13:34 +10:00
Albort Xue 5f50568b1f mimxrt/boards: Add MIMXRT1064_EVK board. 2020-09-09 00:06:33 +10:00
Jim Mussared 632e3b7acc stm32/boards/NUCLEO_WB55: Add Python helper code for rfcore.
This allows prototyping rfcore.c improvements from Python.

This was mostly written by @dpgeorge with small modifications to work after
rfcore_init() by @jimmo.
2020-09-08 23:54:02 +10:00
Jim Mussared e2390d5a2f stm32/rfcore: Enable RX IRQ on BLE IPCC channel for better performance.
Before this change there was up to a 128ms delay on incoming payloads from
CPU2 as it was polled by SysTick.  Now the RX IRQ immediately schedules the
PendSV.
2020-09-08 23:53:12 +10:00
Jim Mussared 8b4ebd7166 stm32/rfcore: Refactor some helper funcs, and remove some magic numbers.
Also explain what the payload fixup code is doing.
2020-09-08 23:53:12 +10:00
Jim Mussared 01f2d77614 stm32/rfcore: Fix length matching in HCI parser. 2020-09-08 23:53:12 +10:00
Jim Mussared 0f28020a68 stm32/powerctrlboot: Acquire HSEM5 on STM32WB during SystemClock_Config.
This is required to allow using WS firmware newer than 1.1.1 concurrently
with USB (e.g. USB VCP).  It prevents CPU2 from modifying the CLK48 config
on boot.

Tested on WS=1.8 FUS=1.1.

See AN5289 and https://github.com/micropython/micropython/issues/6316
2020-09-08 23:53:12 +10:00
Jim Mussared 9c9cc7a02f stm32/boards/USBDONGLE_WB55: Add USE_MBOOT support. 2020-09-08 23:53:12 +10:00
Jim Mussared 30e8162ac4 stm32/rfcore: Update rfcore.c to match how ST examples work.
- Split tables and buffers into SRAM2A/2B.
- Use structs rather than word offsets to access tables.
- Use FLASH_IPCCDBA register value rather than option bytes directly.
2020-09-08 23:53:02 +10:00
Jim Mussared b27edb8073 stm32/make-stmconst.py: Add support for WB55 header files. 2020-09-08 23:23:23 +10:00
microDev c68723db3c
Update Processor.c 2020-09-08 15:13:48 +05:30
Jim Mussared 126f972c34 extmod/nimble: Add timeout for HCI sync on startup.
This allows `ble.active(1)` to fail correctly if the HCI controller is
unavailable.

It also avoids an infine loop in the NimBLE event handler where NimBLE
doesn't correctly detect that the HCI controller is unavailable and keeps
trying to reset.

Furthermore, it fixes an issue where GATT service registrations were left
allocated, which led to a bad realloc if the stack was activated multiple
times.
2020-09-08 12:53:24 +10:00
Jim Mussared 311b8519af esp32: Pin MicroPython and NimBLE tasks to core 0.
MicroPython and NimBLE must be on the same core, for synchronisation of the
BLE ringbuf and the MicroPython scheduler.  However, in the current IDF
versions (3.3 and 4.0) there are issues (see e.g. #5489) with running
NimBLE on core 1.

This change - pinning both tasks to core 0 - makes it possible to reliably
run the BLE multitests on esp32 boards.
2020-09-08 12:53:24 +10:00
Jim Mussared 99a29ec705 extmod/btstack: Detect HCI UART init failure. 2020-09-08 12:53:24 +10:00
Andrew Leech 6077c63a45 stm32/mpbthciport: Increase char timeout of BT HCI UART.
The 2ms used previously was not long enough and it could lose HCI sync.

Also print error on tx failure to make this more obvious in the future.
2020-09-08 12:53:24 +10:00
Jim Mussared c4af714d58 extmod/modbluetooth: Implement configuration of address modes.
Changes `BLE.config('mac')` to return a tuple (addr_mode, addr).

Adds `BLE.config(addr_mode=...)` to set the addressing mode.
2020-09-08 12:53:24 +10:00
Jim Mussared 1b1b22905e unix: Implement BLE H4 HCI UART for btstack/nimble.
This commit adds support for using Bluetooth on the unix port via a H4
serial interface (distinct from a USB dongle), with both BTstack and NimBLE
Bluetooth stacks.

Note that MICROPY_PY_BLUETOOTH is now disabled for the coverage variant.
Prior to this commit Bluetooth was anyway not being built on Travis because
libusb was not detected.  But now that bluetooth works in H4 mode it will
be built, and will lead to a large decrease in coverage because Bluetooth
tests cannot be run on Travis.
2020-09-08 12:53:24 +10:00
Jim Mussared feed69aa5c unix/Makefile: Always enable -f*-sections regardless of DEBUG setting. 2020-09-08 12:53:16 +10:00
Jim Mussared f3f31ac959 extmod/nimble: Make nimble_malloc work with allocated size. 2020-09-08 11:41:31 +10:00
Jim Mussared ed14435a8e extmod/modbluetooth: Refactor stack/hci/driver/port bindings.
Previously the interaction between the different layers of the Bluetooth
stack was different on each port and each stack.  This commit defines
common interfaces between them and implements them for cyw43, btstack,
nimble, stm32, unix.
2020-09-08 11:41:31 +10:00
Jim Mussared 5ff265a3db stm32/modbluetooth_hci: Use a static mp_irq_obj_t for BT HCI UART IRQ.
So that the IRQ handler does not need to be traced by the GC.
2020-09-08 10:47:27 +10:00
Jim Mussared 23109988c2 stm32/uart: Allow static IRQ handler registration.
This will allow the HCI UART to use a non-heap mp_irq_obj_t, which avoids
needing to make a root pointer for it.
2020-09-08 10:46:30 +10:00
root 2690faec43 Moved checks for invalid pin to common-hal/microcontroller/Pin.c 2020-09-05 11:42:06 -05:00
root ed6cc64c49 Corrected issue with BLE not working on nrf52840 2020-09-04 16:59:41 -05:00
Dan Halbert 42df254683
Merge pull request #3373 from dhalbert/trellis-m4-board-i2c
fix pins for trellis_m4 board.I2C()
2020-09-04 11:15:18 -04:00
Damien George 3ff7079277 lib/utils/mpirq: Add mp_irq_init func, and clean up unused init method.
mp_irq_init() is useful when the IRQ object is allocated by the caller.

The mp_irq_methods_t.init method is not used anywhere so has been removed.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-04 12:40:38 +10:00
Damien George 5e69926ea0 stm32/mpconfigport.h: Enable MICROPY_PY_REVERSE_SPECIAL_METHODS.
It's a useful core feature.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-04 10:45:39 +10:00
Scott Shawcroft 96cf60fbbd
Merge remote-tracking branch 'adafruit/main' into native_wifi 2020-09-03 16:34:56 -07:00
Scott Shawcroft 0b94638aeb
Changes based on Dan's feedback 2020-09-03 16:32:12 -07:00
Dan Halbert 960888a3bd fix pins for trellis_m4 board.I2C() 2020-09-03 14:22:18 -04:00
Scott Shawcroft 786f4ed114
Merge pull request #3344 from jepler/issue-3184
Fix RGBMatrix, FrameBufferDisplay bugs
2020-09-02 15:32:30 -07:00
Lucian Copeland 4733a67226 Add GDB debugging capability 2020-09-02 11:27:42 -04:00
Scott Shawcroft f0e60da51f
Merge pull request #3310 from dhalbert/ble_hci
_bleio HCI implementation
2020-09-01 11:28:05 -07:00
Jeff Epler 952d9bbb4a samd: Ignore a maybe-uninitialized diagnostic in asf4
I encountered this when changing optimization flags for debugging
purposes.  The diagnostic appears spurious and unrelated to what
I'm debugging.
2020-09-01 10:55:45 -05:00
Jeff Epler ad4bf75367 samd: only set NDEBUG for non-debug builds 2020-09-01 10:55:45 -05:00
Damien George a909c21587 unix/fatfs_port: Fix month offset in timestamp calculation.
Signed-off-by: Damien George <damien@micropython.org>
2020-09-02 00:19:06 +10:00
Dan Halbert 4ac7650f22 matrix portal board 2020-08-31 23:56:38 -04:00
Damien George 2a72e90ab8 extmod/vfs: Add option to use 1970 as Epoch.
By setting MICROPY_EPOCH_IS_1970 a port can opt to use 1970/1/1 as the
Epoch for timestamps returned by stat().  And this setting is enabled on
the unix and windows ports because that's what they use.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-01 12:36:28 +10:00
Damien George 0385b21597 unix/modos: Support larger integer range in uos.stat fields.
On 32-bit builds these stat fields will overflow a small-int, so use
mp_obj_new_int_from_uint to construct the int object.

Signed-off-by: Damien George <damien@micropython.org>
2020-09-01 12:36:28 +10:00
Dan Halbert 6dbd369272 merge from upstream 2020-08-30 14:39:03 -04:00
Damien George 40153b800a esp32/mphalport: Fix mp_hal_time_ns offset.
gettimeofday returns seconds since 2000/1/1 so needs to be adjusted to
seconds since 1970/1/1 to give the correct return value of mp_hal_time_ns.

Signed-off-by: Damien George <damien@micropython.org>
2020-08-31 00:49:58 +10:00
Damien George 836bca9956 unix/variants: Fix fast and freedos variants so they build again.
This regressed in bd2fff6687

Signed-off-by: Damien George <damien@micropython.org>
2020-08-30 13:48:26 +10:00
Limor "Ladyada" Fried 0adccc50dc
Merge pull request #3346 from tannewt/add_kaluga
Add Kaluga board definition
2020-08-29 21:05:20 -04:00
Damien George 06659077a8 all: Update Python code to conform to latest black formatting.
Updating to Black v20.8b1 there are two changes that affect the code in
this repository:

- If there is a trailing comma in a list (eg [], () or function call) then
  that list is now written out with one line per element.  So remove such
  trailing commas where the list should stay on one line.

- Spaces at the start of """ doc strings are removed.

Signed-off-by: Damien George <damien@micropython.org>
2020-08-29 15:18:01 +10:00
Damien George 40d174ac7d stm32/powerctrl.h: Include stdbool.h to get definition of bool.
Signed-off-by: Damien George <damien@micropython.org>
2020-08-29 14:00:24 +10:00
Scott Shawcroft 7b59ede25e
Add remaining pins 2020-08-28 18:22:22 -07:00
Scott Shawcroft 0bb5c6c07f
Add unique USB PID 2020-08-28 16:37:25 -07:00
lady ada 81870413af add default I2C 2020-08-28 19:08:36 -04:00
Scott Shawcroft a09243472c
Add Kaluga board definition 2020-08-28 16:08:24 -07:00
Dan Halbert 893a125dd0
Merge pull request #3338 from jepler/endpoint-count-checking-stm32f405
add endpoint count checking on stm32f405
2020-08-28 11:12:31 -04:00
Dan Halbert ac06202c21
Merge pull request #3238 from ElectronicCats/bastwifi
Add Bastwifi by Electronic Cats
2020-08-28 11:03:52 -04:00
Damien George a93a378e93 zephyr/README: Update required Zephyr version and mention new features.
Signed-off-by: Damien George <damien@micropython.org>
2020-08-28 16:42:32 +10:00
Scott Shawcroft 5d8ac0428b
-Os espruino_pico to save space 2020-08-27 13:34:37 -07:00
Jeff Epler 563e038c0d stm: Specify max endpoints for stm32f405xx
.. which is why we can't have HID or MIDI on the stm32f405 feather
2020-08-27 15:11:17 -05:00
Scott Shawcroft 2b71635c49
Fix esp-idf requirements 2020-08-27 11:45:51 -07:00
Scott Shawcroft fd6e63d806
Hopefully final partition scheme. 2020-08-27 11:43:06 -07:00
Scott Shawcroft 767ca5c3dc
Merge remote-tracking branch 'adafruit/main' into native_wifi 2020-08-27 11:42:31 -07:00
Jeff Epler 49a22b0c55
Merge pull request #3320 from hierophect/stm32-meowbit-fix
STM32: Fix Meowbit startup and associated bugs
2020-08-27 13:05:56 -05:00
Dan Halbert 24fb08dbd9
Merge pull request #3337 from hierophect/pulseout-errorstyle
Fix problematic whitespace on pulseout parameter errors
2020-08-27 13:22:26 -04:00
Dan Halbert 350e88d4b9
Merge pull request #3324 from hierophect/esp32-random
Add random to ESP32-S2, fix it on STM32
2020-08-27 13:22:05 -04:00
Dan Halbert 6100027243
Merge pull request #3315 from tannewt/add_psram
Add PSRAM support to ESP32S2
2020-08-27 11:58:59 -04:00
Lucian Copeland 8021da08d3 Fix problematic whitespace on pulseout parameter errors 2020-08-27 11:07:47 -04:00
hierophect 772052598d
Merge branch 'main' into stm32-meowbit-fix 2020-08-27 11:00:29 -04:00
hierophect a15f948a40
Merge branch 'main' into esp32-random 2020-08-27 10:49:14 -04:00
Dan Halbert fe73cfb922
Merge pull request #3333 from hierophect/esp32-enable-ulab
Fix all assignments affected by inline makefile comments
2020-08-27 10:36:59 -04:00
Lucian Copeland 8d2299e61e Merge remote-tracking branch 'upstream/main' into stm32-meowbit-fix 2020-08-26 18:50:26 -04:00
Lucian Copeland c229345741 improve efficiency of stm32 random gen 2020-08-26 18:47:19 -04:00
Lucian Copeland 553ac576eb Disable ulab 2020-08-26 17:48:29 -04:00
Roberto Colistete Jr 91c5d168c0 nrf/Makefile: Improve user C modules support.
Add CFLAGS_EXTRA to CFLAGS. Include LDFLAGS_MOD to the compilation.
And, add SRC_MOD to SRC_QSTR.
2020-08-26 22:14:40 +02:00
Lucian Copeland c77523503b Fix trailing whitespace errors across ports and docs 2020-08-26 14:48:46 -04:00
Jeff Epler 44342732a4 Fix DOS line endings, they give my git fits 2020-08-26 10:56:00 -05:00
Dan Halbert 5755160720
Merge pull request #3322 from microDev1/microS2
Added board - microS2
2020-08-26 11:03:46 -04:00
microDev f26d15c5c9
Added PSRAM support 2020-08-26 18:39:30 +05:30
Dan Halbert 01ddb177fc Remove whitespace in sdkconfig 2020-08-26 09:07:54 -04:00
Dan Halbert f7d224705f
Trim trailing whitespace in pins.c 2020-08-26 09:01:27 -04:00
microDev 0425305a73
Change microS2 board name 2020-08-26 08:40:46 +05:30
microDev b019ef2e43
Change microS2 board name 2020-08-26 08:38:42 +05:30
microDev f1f316c502
Change microS2 board name 2020-08-26 08:37:36 +05:30
microDev 3f699024d9
Change microS2 board name 2020-08-26 08:36:38 +05:30
microDev 1dce6bd7ca
Change microS2 board name 2020-08-26 08:35:09 +05:30
microDev bf2b594066
Change microS2 board name 2020-08-26 08:33:21 +05:30
Scott Shawcroft 8b71e26abd
Merge remote-tracking branch 'adafruit/main' into native_wifi 2020-08-25 16:39:23 -07:00
Scott Shawcroft 380cbfba55
Add hash to Socket so it can be used in dicts 2020-08-25 16:15:45 -07:00
Scott Shawcroft 69fc872944
Fix espidf.MemoryError print 2020-08-25 16:14:31 -07:00
Lucian Copeland f71f6631cc Enable ulab 2020-08-25 14:24:35 -04:00
Lucian Copeland 05bde255f7 Add random to ESP32-S2, fix it on STM32 2020-08-25 14:00:29 -04:00
microDev 89c6a44e4e
Added microS2 specific config files 2020-08-25 20:35:08 +05:30
microDev 645adaadb0
Added microS2 specific config files 2020-08-25 20:32:44 +05:30
Lucian Copeland de9fd4a0fb Fix null dereference, invert auto_brightness to reenable screen 2020-08-25 10:37:55 -04:00
Scott Shawcroft 0cc438e6b9
Fix pycubed pwm use 2020-08-24 18:29:34 -07:00
Scott Shawcroft 1527a3ce92
Merge remote-tracking branch 'adafruit/main' into add_pwmio 2020-08-24 18:25:18 -07:00
Lucian Copeland c137a16121 Remove Meowbit LSE flag, harsher failure for LSE issues 2020-08-24 14:49:06 -04:00
microDev 3eea3b5311
Added microS2 specific config files 2020-08-24 11:12:35 +05:30
Damien George ee50a6effe py/mphal.h: Introduce mp_hal_time_ns and implement on various ports.
This should return a 64-bit value being the number of nanoseconds since
1970/1/1.

Signed-off-by: Damien George <damien@micropython.org>
2020-08-22 16:13:44 +10:00
Damien George 92899354d9 unix/fatfs_port: Implement get_fattime.
Signed-off-by: Damien George <damien@micropython.org>
2020-08-22 14:45:57 +10:00
root fe0f79adce Making requested modifications 2020-08-21 20:38:19 -05:00
Scott Shawcroft f39708abb2
Add PSRAM support to ESP32S2
When configured the CircuitPython heap will be on the external RAM.
When not available, the heap will be 48k inside the IDF heap.
2020-08-21 16:20:58 -07:00
Scott Shawcroft da61845f56
Add missing include 2020-08-21 13:32:59 -07:00
Scott Shawcroft 644d2ba7a2 Add more "extern" declarations for gcc10 compat
gcc has tightened the restrictions on forward declarations that lack
"extern".  Fix them up.
2020-08-21 14:39:37 -05:00
Scott Shawcroft 83deea0e03
Fix copy pasta and stub build 2020-08-21 11:17:42 -07:00
Scott Shawcroft a5b01f7361
Merge remote-tracking branch 'adafruit/main' into add_pwmio 2020-08-21 11:13:53 -07:00
Scott Shawcroft 701e80a025
Make socket reads interruptable 2020-08-21 11:00:02 -07:00
Dan Halbert 58573a70e1 bring submodules up to date 2020-08-21 11:10:33 -04:00
Dan Halbert f714f53552 Merge remote-tracking branch 'adafruit/main' into ble_hci 2020-08-21 10:45:05 -04:00
Dave Hylands 8727c4e2ec stm32/pin_defs_stm32: Fix pin printing to show IN mode correctly.
Prior to this commit, if you configure a pin as an output type (I2C in this
example) and then later configure it back as an input, then it will report
the type incorrectly.  Example:

    >>> import machine
    >>> b6 = machine.Pin('B6')
    >>> b6
    Pin(Pin.cpu.B6, mode=Pin.IN)
    >>> machine.I2C(1)
    I2C(1, scl=B6, sda=B7, freq=420000)
    >>> b6
    Pin(Pin.cpu.B6, mode=Pin.ALT_OPEN_DRAIN, pull=Pin.PULL_UP, af=Pin.AF4_I2C1)
    >>> b6.init(machine.Pin.IN)
    >>> b6
    Pin(Pin.cpu.B6, mode=Pin.ALT_OPEN_DRAIN, af=Pin.AF4_I2C1)

With this commit the last print now works:

    >>> b6
    Pin(Pin.cpu.B6, mode=Pin.IN)
2020-08-21 13:42:47 +10:00
Maureen Helm ac94e06f0b zephyr: Include storage/flash_map.h unconditionally.
Include storage/flash_map.h unconditionally so we always have access to the
FLASH_AREA_LABEL_EXISTS macro, even if CONFIG_FLASH_MAP is not defined.

This fixes a build error for the qemu_x86 board:

main.c:108:63: error: missing binary operator before token "("
  108 |     #elif defined(CONFIG_FLASH_MAP) && FLASH_AREA_LABEL_EXISTS(storage)
      |                                                               ^
../../py/mkrules.mk:88: recipe for target 'build/genhdr/qstr.i.last' failed

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-08-21 11:23:43 +10:00
Dan Halbert 0e30dd8bcc merge from upstream; working; includes debug_out code for debugging via Saleae for posterity 2020-08-20 20:29:57 -04:00
Jeff Epler ba2db853a4
Merge pull request #3308 from bwshockley/update_Mini_sam_m4_memory
Update mini sam m4 memory
2020-08-20 19:05:39 -05:00
root 6eae7ce78f Requested changes to pulsein 2020-08-20 16:57:00 -05:00
Benjamin Shockley 135626a038
Update mpconfigboard.mk
Added support for second type of memory chip.
2020-08-20 13:50:52 -05:00
Scott Shawcroft 400701004b
Merge pull request #3279 from hierophect/esp32-pulseinout
ESP32-S2: Add PulseOut and PulseIn
2020-08-20 11:24:08 -07:00
Scott Shawcroft e47447ba59
Merge pull request #3306 from kamtom480/usb_fix
spresense: call usb_background function
2020-08-20 11:23:16 -07:00
Scott Shawcroft 31a3d0e815
Merge pull request #3304 from jepler/count-usb-descriptors
Add usb-endpoint-count checking
2020-08-20 11:21:01 -07:00
Scott Shawcroft a86d6aeac4
Merge pull request #3303 from jepler/samd-tinyusb-family
SAM E54: Use correct CFG_TUSB_MCU
2020-08-20 11:13:05 -07:00
Kamil Tomaszewski e2891bc7d4 spresense: call usb_background function 2020-08-20 16:21:25 +02:00
Scott Shawcroft 80b15f6b3b
Add error handling w/temp debug logs 2020-08-19 17:51:33 -07:00
Jeff Epler 23aefe9509 Add usb-endpoint-count checking
.. however, the number of endpoints is only set for SAMD (8).
Other ports need to set the value.  Otherwise, the build will show
the message
```
Unable to check whether maximum number of endpoints is respected
```
2020-08-19 16:47:40 -05:00
Scott Shawcroft eb8b42aff1
Add basic error handling 2020-08-19 14:23:28 -07:00
Scott Shawcroft 9602ee6265
Disable wifi debug logging and memory log 2020-08-19 14:23:28 -07:00
Scott Shawcroft dcc42f6281
Remove debug prints 2020-08-19 14:23:28 -07:00
Scott Shawcroft 1034cc1217
Add espidf module. 2020-08-19 14:23:28 -07:00
Scott Shawcroft b3a449c276
Turn on json and enable socket.close 2020-08-19 14:23:28 -07:00
Scott Shawcroft 430530c74b
SSL works until it runs out of memory 2020-08-19 14:23:28 -07:00
Scott Shawcroft eb2c38825e
HTTP works with my adafruit_requests 2020-08-19 14:23:18 -07:00
Scott Shawcroft c9ece21c28
SocketPool stubbed out 2020-08-19 14:22:13 -07:00
Scott Shawcroft 7bdd243bf6
Ping works! 2020-08-19 14:22:13 -07:00
Scott Shawcroft 3860991111
Ping work and start to add socketpool 2020-08-19 14:22:13 -07:00
Scott Shawcroft cdab5e793e
Update to latest idf 2020-08-19 14:22:13 -07:00
Scott Shawcroft c62ab6e09a
Add ipaddress 2020-08-19 14:22:12 -07:00
Scott Shawcroft ddcff85fa2
Add debugging. Scanning doesn't crash but returns no results. Need to config station. 2020-08-19 14:22:12 -07:00
Scott Shawcroft 1a6f4e0fe0
Scanning WIP. Need to sort out supervisor memory 2020-08-19 14:22:12 -07:00
Scott Shawcroft c5b8401a15
First crack at native wifi API 2020-08-19 14:21:59 -07:00
Jeff Epler 6ae5bedf3b SAM E54: Use correct CFG_TUSB_MCU
This doesn't actually change the code that is built, but it is
"more correct".
2020-08-19 11:27:52 -05:00
Scott Shawcroft 6857f98426
Split pulseio.PWMOut into pwmio
This gives us better granularity when implementing new ports because
PWMOut is commonly implemented before PulseIn and PulseOut.

Fixes #3211
2020-08-18 13:08:33 -07:00
Scott Shawcroft 8e77981ad5
Merge pull request #3297 from simmel-project/i2c
Update Simmel board definition to reflect DVT hardware
2020-08-18 12:55:45 -07:00
Lucian Copeland dd425ee6c5 Remove breaking parenthesis 2020-08-18 15:54:50 -04:00
Scott Shawcroft 24ca5c0218
Merge pull request #3295 from tannewt/turn_off_terminalio
Turn off terminalio for ja and ko
2020-08-18 12:10:31 -07:00
Scott Shawcroft 771388cde2
Remove trailing space. 2020-08-18 11:44:31 -07:00
Lucian Copeland da75445cd5 Style changes, reposition runtime errors 2020-08-18 11:42:06 -04:00
bunnie 211c134950 add I2C, remove unused pins 2020-08-18 19:02:23 +08:00
bunnie a4508f846d stash config 2020-08-18 18:16:49 +08:00
Scott Shawcroft d01f5dc0bd
Turn off terminalio for ja and ko
The font is missing many characters and the build needs the space.
We can optimize font storage when we get a good font.

The serial output will work as usual.
2020-08-17 17:17:59 -07:00
Dan Halbert 94ecf33a5c
Merge pull request #3281 from dhalbert/fix-spim3-buffer-location
SPIM3 buffer must be in first 64kB of RAM
2020-08-17 19:28:03 -04:00
Scott Shawcroft 19706a7eec
Merge pull request #3280 from hierophect/esp32-wroom-neopixel
ESP32-S2: Add Neopixel to Wroom
2020-08-17 15:07:19 -07:00
Scott Shawcroft 377503e61c
Merge pull request #3284 from dhalbert/fix-3171-evt-handler
Remove event handler before setting it to NULL
2020-08-17 15:02:29 -07:00
Brent Rubell b1a8fb83fa
Merge pull request #3251 from jerryneedell/jerryn_rfm9x
RFM9x -- freeze library into build
2020-08-17 17:11:35 -04:00
Dan Halbert 6e5c2b3fe2
Merge pull request #3260 from rhooper/pixelbuf-iterable
Make pixelbuf support iterables and floats
2020-08-17 11:56:31 -04:00
Dan Halbert 16ff7b167c
bdmicro_vina_m0: inline limit 60 -> 50
The ja translation was not fitting.
2020-08-17 10:05:25 -04:00
Dan Halbert ef40f83f99 Remove event handler before setting it to NULL 2020-08-15 14:39:53 -04:00
Dan Halbert cf0f3d70b5 SPIM3 buffer must be in first 64kB of RAM 2020-08-15 10:31:56 -04:00
Lucian Copeland 7078c63062 Add missing Neopixel pin definition 2020-08-14 16:58:24 -04:00
Lucian Copeland 0fc730bc5a Expand PulseOut API, debug cleanup 2020-08-14 16:36:02 -04:00
Lucian Copeland 88fcc19e24 Add PulseIn 2020-08-14 15:30:48 -04:00
Lucian Copeland f9512983ff Add PulseOut 2020-08-14 12:21:41 -04:00
Dan Halbert 98469322b7
Merge pull request #3276 from xiongyihui/main
support to change ble mac address
2020-08-14 11:14:36 -04:00
Yihui Xiong 52990a332d fix 2020-08-14 17:48:15 +08:00
Dan Halbert a28d0f6c80
Merge pull request #3273 from jepler/ja-firmware-size
Squeeze firmwares to fit the new ja translation
2020-08-13 12:19:28 -04:00
Dan Halbert 329f4fb2e6
Update mpconfigboard.mk
The stm boards default to `-O2`. Changing to `-Os` brings it back to ~43kB (!) free even for ja.
2020-08-13 10:09:46 -04:00
Jeff Epler 42b860e91a stm: meowbit_v121: remove _pixelbuf to fit ja translation 2020-08-13 07:49:45 -05:00
Yihui Xiong e7da652711 able to change ble mac address 2020-08-13 16:54:29 +08:00
Dan Halbert 44c9c43cd1 ble_uart_echo_test works 2020-08-13 00:03:39 -04:00
Jeff Epler 239c8ff87f metro_m0_express: put back audiobusio
this now fits locally (though it's very close to capacity);
let's see what the CI says.

```
make BOARD=metro_m0_express clean && make BOARD=metro_m0_express  TRANSLATION=ja
...
253448 bytes used, 248 bytes free in flash firmware space out of 253696 bytes (247.75kB).
```
2020-08-12 19:11:33 -05:00
Scott Shawcroft 7ffa2a103c
Merge pull request #3269 from jepler/sharpdisplay-v2
Sharp Memory Display displayio support (v2)
2020-08-12 16:53:09 -07:00
Jeff Epler aa0b4f7045 cpx_display: Put back AUDIOBUSIO, take away ROTARYIO
AUDIOBUSIO is needed for the on-board mic using PDMIn
2020-08-12 16:17:48 -05:00
Jeff Epler ea8e9b8cef metro_m0_express: Put back GAMEPAD, take away AUDIOBUSIO
Dan notes that this is more frequently the solution we've chosen
2020-08-12 16:17:13 -05:00
Jeff Epler 299894025a stringcar_m0_express: make ja translation fit 2020-08-12 13:47:10 -05:00
Jeff Epler f08ee0db20 itsybitsy_m0_express: make ja translation fit again 2020-08-12 13:44:00 -05:00
Jeff Epler 7bd42244c9 snekboard: make ja translation fit 2020-08-12 13:34:36 -05:00
Jeff Epler 45f6bc1f3e serpente: make ja translation fit 2020-08-12 13:32:08 -05:00
Jeff Epler 36bfbaae69 feather_radiofruit_zigbee: make ja translation fit 2020-08-12 13:28:30 -05:00
Jeff Epler 58a1361d3e Merge remote-tracking branch 'origin/main' into ja-firmware-size 2020-08-12 13:26:12 -05:00
Jeff Epler 06f6cd067d nrf: Improve commenting about disabled warnings 2020-08-12 12:59:48 -05:00
Jeff Epler 813dcd1b73 trinket_m0_haxpress: make ja translation fit 2020-08-12 12:44:17 -05:00
Jeff Epler 88f222f1a1 metro_m0_express: make ja translation fit 2020-08-12 12:38:17 -05:00
Jeff Epler ba91023fff itsybitsy_m0_express: make ja translation fit 2020-08-12 12:35:29 -05:00
Jeff Epler 6b9f7c9047 hallowing_m0_express: make ja translation fit 2020-08-12 12:29:30 -05:00
Jeff Epler 58afda342d feather_m0_supersized: make ja translation fit 2020-08-12 11:53:34 -05:00
Jeff Epler 27c2eb1869 feather_m0_express: make ja translation fit 2020-08-12 11:51:56 -05:00
Jeff Epler 8865e4ca97 circuitplayground_express_displayio: make ja translation fit 2020-08-12 11:46:52 -05:00
Jeff Epler f3748fe20d circuitbrains_basic_m0: Use optimization flags to let ja translation fit 2020-08-12 11:46:31 -05:00
Jeff Epler f9d1d9d114 atmel-samd: disable FRAMEBUFFERIO on samd21
.. this disables SHARPMEMORY as well.
2020-08-12 11:15:34 -05:00
Jeff Epler 454e616d13 atmel-samd: disable FRAMEBUFFERIO on samd21
.. this disables SHARPMEMORY as well.
2020-08-12 10:46:56 -05:00
Scott Shawcroft 3197c579e0
Merge pull request #3262 from tannewt/fix_fs_corruption
Fix writing sector 0 as the first write.
2020-08-12 08:14:55 -07:00
Jeff Epler 32fc8b0676 nrf: reset_pin_number: reset pin clears never-reset, mirroring samd 2020-08-12 07:32:18 -05:00
Jeff Epler 760a171903 nrf: Make port build with -Werror=undef
.. build-tested on particle_xenon
2020-08-12 07:32:18 -05:00
bleeptrack 49407b6c06 trailing spaces fix 2020-08-12 13:42:45 +02:00
bleeptrack e34fac6645
Whitespace and Newline fix 2020-08-11 23:59:32 +02:00
Dan Halbert 06f3b4048a fix #3228 for nrf; still needs to be fixed for HCI; tested 2020-08-11 16:21:16 -04:00
bleeptrack 228d9b5a12
Fixing indentation 2020-08-11 22:18:15 +02:00
bleeptrack 22ae1dbac8
Removing unnecessary pin ignored 2020-08-11 22:17:17 +02:00
bleeptrack 00676ff5a9
PicoPlanet 2020-08-11 21:49:52 +02:00
Scott Shawcroft 8488b31aa0
Init directly 2020-08-11 11:19:40 -07:00
Scott Shawcroft bbac68e77c
Merge pull request #3232 from hierophect/esp32-neopixel
ESP32-S2: Add Neopixel support
2020-08-11 11:04:39 -07:00
Scott Shawcroft 87c78be8f4
Fix writing sector 0 as the first write.
This was the FS issue I saw when debugging wifi and only happens
when the first write is to sector 0. It causes issues because it
blanks all of sector 0 after the first block.

Fixes #3133
2020-08-10 17:14:49 -07:00
Jeff Epler 807f049dc3
Merge pull request #3244 from xiongyihui/main
add an option to turn off QSPI when sleep
2020-08-10 16:06:57 -05:00
Jeff Epler 1cf3762392 Merge remote-tracking branch 'origin/main' into stm32-sdioio 2020-08-10 12:54:12 -05:00
Lucian Copeland d47bd5529c Fix neopixel macro issue, set default neopixel color 2020-08-10 13:16:20 -04:00
Dan Halbert 0f4b969d62 discovery of Nordic UART service working 2020-08-08 00:29:37 -04:00
Jerry Needell 1d980d527e Merge remote-tracking branch 'upstream/main' into jerryn_rfm9x 2020-08-07 12:48:41 -04:00
Yihui Xiong af1291ec28 dynamically enable or disable QSPI by default 2020-08-07 16:23:42 +08:00
Jerry Needell f7961b96a9 update comment 2020-08-06 10:05:18 -04:00
Jerry Needell c42ffb8f3d remove usb_hid 2020-08-06 05:44:26 -04:00
Yihui Xiong d8257380d7 add qspi_disable() 2020-08-06 09:56:05 +08:00
Lucian Copeland 78d049d0f1 Fix pwm reset spew, protect against null reference in led status 2020-08-05 14:05:53 -04:00
Jerry Needell 432f43a472 freeze rfm9x and BusDevice, remove many built-in modules 2020-08-05 11:37:57 -04:00
root c7b6e66426 Fixes for pulsein tick handling 2020-08-05 10:03:20 -05:00
Yihui Xiong 7854625c4e avoid using the RGB LEDs to save energy 2020-08-05 16:08:13 +08:00
Yihui Xiong dbe47a6a2a adjust 2020-08-05 16:07:18 +08:00
Jeff Epler 93b373d617 "pop from empty %q"
Saves 12 bytes code on trinket m0
2020-08-04 18:42:09 -05:00
Lucian Copeland 14b3b51c58 Rework build flags, prevent idf errors 2020-08-04 18:40:24 -04:00
Dan Halbert ac95106b88 service discovery works; need to work on char and descriptor discovery 2020-08-04 18:24:37 -04:00
Jeff Epler c849b781c0 Combine 'index out of range' messages 2020-08-04 14:45:45 -05:00
Jeff Epler 89797fd3f9 various: Use mp_obj_get_type_qstr more widely
This removes runtime allocations of the cstring version of the qstring.

It is not a size improvement
2020-08-04 14:45:45 -05:00
Jeff Epler dddd25a776 Combine similar strings to reduce size of translations
This is a slight trade-off with code size, in places where a "_varg"
mp_raise variant is now used.  The net savings on trinket_m0 is
just 32 bytes.

It also means that the translation will include the original English
text, and cannot be translated.  These are usually names of Python
types such as int, set, or dict or special values such as "inf" or
"Nan".
2020-08-04 13:34:29 -05:00
Yihui Xiong 6dc0f4f1b6 add an option to turn off QSPI when sleep 2020-08-05 01:10:58 +08:00
Jeff Epler 0e2d231445 Merge remote-tracking branch 'origin/main' into stm32-sdioio 2020-08-03 21:01:53 -05:00
Dan Halbert a995a5c58f wip: partial discovery responses; compiles; not tested 2020-08-03 21:02:57 -04:00
DavePutz d7eedc5e38
Merge pull request #20 from adafruit/main
Update from main
2020-08-03 13:14:01 -05:00
root 9203a77804 Turn off interrupts while in handler 2020-08-03 11:31:12 -05:00
Lucian Copeland 4900668778 Merge remote-tracking branch 'upstream/main' into esp32-neopixel 2020-08-03 12:26:37 -04:00
sabas1080 0e30fe1cc5 Update VID & PID codes 2020-08-02 19:54:11 -05:00
Dan Halbert 0a60aee3e4 wip: compiles 2020-08-02 11:36:38 -04:00
sabas1080 b074f8a161 update for build test 2020-08-02 00:42:36 -05:00
sabas1080 fea1cad02c add support for Bast Wifi Electronic Cats 2020-08-01 17:51:45 -05:00
root 12b81618a3 Changes for getting supervisor ticks 2020-08-01 13:27:02 -05:00
Dan Halbert 1771858f4a add RELEASE_NEEDS_CLEAN_BUILD for lang-specific CFLAGS_INLINE_LIMIT changes 2020-08-01 13:20:46 -04:00
Dan Halbert 4b71831d8b
SUPEROPT_VM = 0 for de_DE 2020-08-01 12:36:20 -04:00
Lucian Copeland 94b2561860 Fix include error 2020-08-01 09:22:18 -04:00
Lucian Copeland 1c1df053d5 Add neopixel support 2020-07-31 15:34:12 -04:00
Jeff Epler 27c6ffb9a2 atmel-samd: gemma, trinket: Make space for de_DE translation 2020-07-30 11:29:47 -05:00
Jeff Epler d69f081c04 Merge remote-tracking branch 'origin/main' into blm_badge 2020-07-30 07:24:48 -05:00
Jeff Epler 531c1e046c
Merge pull request #3226 from joeycastillo/main
Small updates to Open Book board
2020-07-30 07:21:50 -05:00
Jeff Epler f175a49444 stm: sdioio: include header for common_hal_mcu_pin_claim 2020-07-30 07:18:12 -05:00
Jeff Epler b57e6e9856 stm: sdioio: call common_hal_mcu_pin_claim 2020-07-30 07:18:12 -05:00
Jeff Epler d73505a027 stm: fix if-guard of conditional code 2020-07-30 07:18:12 -05:00
Jeff Epler 60dd5a8d7d stm: sdioio: remove unused code related to "SD Card detect pin"
.. this probably came from the examples that I studied at the beginning
of implementation.

The card detection feature is unused.  As a "detect pin" is not
sent from the shared-bindings, there is no way to get the correct pin
anyway.  Instead, if code needs to detect the insertion state it can
directly use the pin as GPIO in Python code.
2020-07-30 07:18:02 -05:00
Jeff Epler ccd3013396 stm: stioio: correctly claim pins 2020-07-30 07:18:02 -05:00
Jeff Epler 3cf1258c87 stm: sdioio: Get rid of debug code and useless comments 2020-07-30 07:18:02 -05:00
Jeff Epler 6a99a7b551 stm: Use 'Invalid %q pin selection' more places 2020-07-30 07:18:02 -05:00
Jeff Epler 92d2f47503 feather_stm32f405_express: sdio_data_tuple should be static 2020-07-30 07:18:02 -05:00
Jeff Epler 4adbd23b75 stm: Add sdioio support for feather_stm32f405_express
Currently, only the bus specs of the stm32f405xx have been coded.
Other stm-family chips need (at a minimum) the specs added in their
periph.[ch] files.
2020-07-30 07:18:02 -05:00
Jeff Epler d30f11163c stm: enable SD module in HAL 2020-07-30 07:18:02 -05:00
Jeff Epler af135a7560 atmel-samd: move samd-specific script 2020-07-30 07:18:02 -05:00
Joey Castillo 8acec2ca35 add descriptive pin names 2020-07-29 13:49:08 -04:00
Joey Castillo ea9bc9b4b6 set screen orientation to portrait 2020-07-29 13:46:10 -04:00
hathach b2ec77e554 Merge remote-tracking branch 'adafruit/main' into improve-highspeed-usb 2020-07-29 23:14:52 +07:00
hathach b6724e843c
update CDC/MIDI bufsize to at least 512 for highspeed port 2020-07-29 16:22:27 +07:00
hathach 6063828279 replace USB_MSC_MAX_PACKET_SIZE with USB_HIGHSPEED in descriptor gen tool 2020-07-29 15:38:55 +07:00
Dan Halbert ca9eae8eea
Merge pull request #3209 from pewpew-game/fluff-m0-pins
fluff_m0: add pin aliases
2020-07-28 15:15:15 -04:00
Dan Halbert 824a57c6f4
Merge pull request #3218 from tannewt/use_gcc10_peripherals
Use samd peripherals fixed for gcc 10
2020-07-28 15:14:20 -04:00
Scott Shawcroft b30d89131b
Merge pull request #3215 from ansonhe97/main
Added display QSTR to Wio Terminal
2020-07-28 11:53:17 -07:00
Dan Halbert aa97ea2501 Merge remote-tracking branch 'adafruit/main' into blm_badge 2020-07-28 14:15:02 -04:00
Scott Shawcroft 92216d6417
Use samd peripherals fixed for gcc 10 2020-07-28 11:14:25 -07:00
Dan Halbert e5e132a364 add blm_badge; add CIRCUITPY_AUDIOBUSIOIO_I2SOUT 2020-07-28 11:49:54 -04:00
ansonhe97 e15bcebb6e Added display QSTR to Wio Terminal 2020-07-28 17:31:17 +08:00
sabas1080 d37326326d init bastwifi 2020-07-28 00:56:37 -05:00
Jerry Needell 945736e9bb add adjustments for crickit and displayio variants of CPX 2020-07-27 22:13:04 -04:00
Jerry Needell 2bdd62220e adjust stack for SAMD21 to accomodate larger pystack -- update frozen module adafruit_busdevice 2020-07-27 21:50:36 -04:00
Scott Shawcroft debbf1028a
Merge pull request #3196 from IkigaiSense/ikigaisense_vita
add-ikigaisense_vita-nRF52840
2020-07-27 16:10:57 -07:00
Scott Shawcroft f4f2018952
Merge pull request #3101 from ndGarage/ndgarage_ndbit6_v2
ndgGarage ndbit6 v2
2020-07-27 15:51:23 -07:00
Scott Shawcroft 7be9837f73
Merge pull request #3193 from ciscorn/type-annotations
More type hints
2020-07-27 14:26:54 -07:00
Taku Fukada d356581651 Fix several type hints 2020-07-27 18:05:13 +09:00
Radomir Dopieralski b2c4b0bcfa fluff_m0: don't exclude portb pins explicitly 2020-07-26 17:26:32 +02:00
Radomir Dopieralski b1b253c012 fluff_m0: add pin aliases
Add aliases for SDI, SDO and EN, so that pin names match the text on the
PCB to avoid confusion.

Also disable all pins from port B, because that package of SAMD21
doesn't have port B.
2020-07-26 13:39:42 +02:00
Dan Halbert 7ab5c520e6
Merge pull request #3190 from DavePutz/opt-test
Changes to allow different compiler optimizations per board
2020-07-25 17:03:10 -04:00
Dan Halbert b7e6bf959e
Merge pull request #3205 from burtyb/commander-2
Add GamePad to Commander board
2020-07-25 16:57:58 -04:00
Chris Burton c4a5297ee2 Add GamePad to Commander 2020-07-25 17:53:27 +00:00
ikigaisense 6696915801 fix-ndbit6-for-ndbit6_v2 2020-07-25 10:07:33 -06:00
root c4817968ee Merge branch 'opt-test' of https://github.com/DavePutz/circuitpython into opt-test 2020-07-24 23:28:41 -05:00
DavePutz 3dfed3c4aa
Merge pull request #15 from adafruit/main
update from main
2020-07-24 20:29:53 -05:00
root 739981b34e update for pewpew 2020-07-24 17:27:25 -05:00
DavePutz a14101cd13
Use current mpconfigboard.mk with optimization change 2020-07-24 14:09:09 -05:00
Lucian Copeland 356b1a8d6d Finish common-hal pin API 2020-07-24 12:29:18 -04:00
hierophect c735dceed5
Merge pull request #3099 from hierophect/stm32-timer-allocator
STM32: Add timer allocator, PulseIO adjustments
2020-07-24 11:16:39 -04:00
Damien George fd2ff867a0 stm32/usbdev: Fix calculation of SCSI LUN size with multiple LUNs.
The SCSI driver calls GetCapacity to get the block size and number of
blocks of the underlying block-device/LUN.  It caches these values and uses
them later on to verify that reads/writes are within the bounds of the LUN.
But, prior to this commit, there was only one set of cached values for all
LUNs, so the bounds checking for a LUN could use incorrect values, values
from one of the other LUNs that most recently updated the cached values.
This would lead to failed SCSI requests.

This commit fixes this issue by having separate cached values for each LUN.

Signed-off-by: Damien George <damien@micropython.org>
2020-07-25 01:12:07 +10:00
root b9cdf195e2 board mk file changes 2020-07-24 10:00:42 -05:00
root 204cdada7c remove unnecessary mk files parameters 2020-07-24 09:53:40 -05:00
Taku Fukada 54a342a7f5 Add and correct some type hints 2020-07-24 18:20:03 +09:00
root ce37a442e8 format fix 2020-07-23 19:35:04 -05:00
root c937fa1760 fix formatting 2020-07-23 19:29:57 -05:00
root 778e8bfda9 Changes to optimization option 2020-07-23 19:27:02 -05:00
ikigaisense 703fb9d4a1 update-ndGarage_ndbit6_v2 2020-07-23 16:08:30 -06:00
Scott Shawcroft 060ab8a1f0
Merge pull request #3194 from tannewt/gcc10
Prep for GCC10
2020-07-23 14:39:21 -07:00
ikigaisense 1ee8a09da2 add-ikigaisense_vita-nRF52840 2020-07-23 14:39:59 -06:00
Scott Shawcroft 6a46fd5b91
Merge pull request #3185 from hierophect/esp32-pulseio
ESP32-S2: PWMOut
2020-07-23 13:11:33 -07:00
Lucian Copeland cf0a4d208e Fix unintended timer reset, style changes 2020-07-23 14:01:10 -04:00
Scott Shawcroft 2bd6d05663
Add externs. GCC10 complains about duplicate defines 2020-07-22 16:26:46 -07:00
Lucian Copeland 61a2e4f94b Add PWMOut 2020-07-22 16:34:18 -04:00
Lucian Copeland c1f731d62e Claim USB pins at startup to prevent overwrites 2020-07-22 14:22:05 -04:00
hierophect e232ec10ce
Merge branch 'main' into stm32-timer-allocator 2020-07-22 13:59:39 -04:00
Lucian Copeland 138189bad1 Free timers when modules de-init 2020-07-22 13:58:57 -04:00
root d83a4ac72d Changes to add compiler optimization option 2020-07-22 12:44:41 -05:00
DavePutz 39e01c3938
Merge pull request #14 from adafruit/main
update from main
2020-07-22 11:30:49 -05:00
Glenn Ruben Bakke caaaa2b1f4 nrf: Enable more features for all targets.
Enabling the following features for all targets, except for nrf51
targets compiled to be used with SoftDevice:

- MICROPY_PY_ARRAY_SLICE_ASSIGN
- MICROPY_PY_SYS_STDFILES
- MICROPY_PY_UBINASCII
2020-07-22 12:54:20 +02:00
Glenn Ruben Bakke 0a79e18398 nrf: Split mpconfigport.h into multiple files.
Splitting mpconfigport.h into multiple device specific
files in order to facilitate variations between devices.

Due to the fact that the devices might have variations in
features and also variations in flash size it makes sense
that some devices offers more functionality than others
without being limited by restricted devices.

For example more micropython features can be activated for
nrf52840 with 1MB flash, compared to nrf51 with 256KB.
2020-07-22 12:54:20 +02:00
Scott Shawcroft 8ff2846bb2
Disable countio on circuitbrains basic 2020-07-21 16:21:49 -07:00
root db5c3c9676 dded optimization for esp32s2 2020-07-21 17:54:47 -05:00
Scott Shawcroft cb7df2e1ed
Merge pull request #3160 from tannewt/enable_pystack
Enable PYSTACK to keep function state out of the heap
2020-07-21 13:38:52 -07:00
Scott Shawcroft 5e3a853db4
Turn off GC opt on uchip board 2020-07-21 12:51:59 -07:00
Scott Shawcroft 678faff464
Be more aggressive with uChip build 2020-07-21 11:02:23 -07:00
root 49decf90c9 Add option for higher optimization levels 2020-07-21 10:11:08 -05:00
Zoltán Vörös 27767aafa2 lib/libm_dbl: Add round.c source code.
This code is imported from musl, to match existing code in libm_dbl.

The file is also added to the build in stm32/Makefile.  It's not needed by
the core code but, similar to c5cc64175b,
allows round() to be used by user C modules or board extensions.
2020-07-21 11:07:19 +10:00
Scott Shawcroft 0c6935e336
Merge branch 'main' into disable_network 2020-07-20 16:28:22 -07:00
Scott Shawcroft 12edb57aac
Merge pull request #3166 from theacodes/bhb-adc
Add _bhb user module for Big Honking Button
2020-07-20 16:24:36 -07:00
Kenneth Ryerson 76fefad18b esp32/network_lan: Add support for IP101 PHY.
Signed-off-by: Kenneth Ryerson <kenneth.ryerson@gmail.com>
2020-07-21 00:59:47 +10:00
Jonathan Hogg 7dbef5377c esp32/esp32_rmt: Properly fix looping behaviour of RMT.
A previous commit 3a9d948032 can cause
lock-ups of the RMT driver, so this commit reverses that, adds a loop_en
flag, and explicitly controls the TX interrupt in write_pulses().  This
provides correct looping, non-blocking writes and sensible behaviour for
wait_done().

See also #6167.
2020-07-21 00:57:14 +10:00
Thorsten von Eicken 5264478007 extmod/modussl_mbedtls: Integrate shorter error strings.
The stm32 and esp32 ports now use shorter error strings for mbedtls errors.
Also, MBEDTLS_ERROR_C is enabled on stm32 by default to get these strings.
2020-07-21 00:31:05 +10:00
Thea Flowers 7ba89f5330 Add _bhb user module for Big Honking Button
BHB needs better accuracy from the ADC readings. To avoid changing the ADC configuration for all boards or adding complexity to AnalogIn, I implemented a custom user module to allow the BHB to talk to the ADC in the way that it needs to. I'm open to other approaches here, but this seemed like the least invasive and complex option.
2020-07-18 22:45:08 -07:00
Radomir Dopieralski 11ef43b071 pewpew_m4: Disable USB_HID back
German translation fails to build, so I have to disabled USB_HID after
all.
2020-07-18 20:09:30 +02:00
Radomir Dopieralski 8d692f33a8 pewpew_m4: Enable analogio and usb_hid
The newest version for the Stage library for PewPewM4 no longer contains
embedded graphics, which frees enough space in flash to enabled back
AnalogIO and also add USB_HID. There is still ~192 bytes left free.

If new additions to CircuitPython make it grow further, we can disable
USB_HID again.
2020-07-18 19:30:40 +02:00
Jim Mussared 5d0be97bd9 unix: Make the MICROPY_xxx_ATOMIC_SECTION mutex recursive.
This mutex is used to make the unix port behave more like bare metal, i.e.
it allows "IRQ handlers" to run exclusively by making the mutex recursive.
2020-07-18 14:22:06 +10:00
Scott Shawcroft 610e0171aa
Disable existing native networking.
We're moving towards a co-processor model and a Wiznet library is
already available.

New native APIs will replace these for chips with networking like the
ESP32S2 but they won't be these.
2020-07-17 17:43:02 -07:00
Lucian Copeland 207369ec09 Add boilerplate, create basic PWMOut test 2020-07-17 17:28:23 -04:00
Jeff Epler 9cdf5e148a
Merge pull request #2879 from jepler/background-callback
Use a linked list of background tasks to perform
2020-07-17 15:46:03 -05:00
Jeff Epler 6912d31560 uchip: reclaim some flash space 2020-07-17 14:32:05 -05:00
Dan Halbert 6494bbdc64 snapshot 2020-07-16 23:14:49 -04:00
Lucian Copeland dc6902a33e Exclude timers from H7 builds 2020-07-16 17:11:24 -04:00
Lucian Copeland 6a49766df0 Fix pulseIO reset and frequency issues, remove IRQ conflict 2020-07-16 15:45:18 -04:00
Scott Shawcroft 72f6d7ee21
Merge pull request #3155 from jepler/esp32s2-parallel-build
esp32s2: Take care to invoke the sub-build-system only once
2020-07-16 11:26:53 -07:00
Scott Shawcroft 7bb508bf43
Merge pull request #3157 from tinkeringtech/tinkeringtech-scoutmakes-azul
Addition of Tinkeringtech ScoutMakes Azul nRF52840 based platform to CircuitPython
2020-07-16 11:03:31 -07:00
Matt Trentini 486cb6dd4a nrf: Add board definition for nRF52840-MDK-USB-Dongle. 2020-07-16 23:47:13 +10:00
Glenn Ruben Bakke 95d0d1c486 nrf/boards: Enable RTCounter machine module for nrf9160 boards.
Resolves dependencies for MICROPY_PY_TIME_TICKS which
requires to link against nrfx_rtc.c functions by setting
MICROPY_PY_MACHINE_RTCOUNTER to 1.
2020-07-16 11:48:52 +02:00
Glenn Ruben Bakke b776fe6969 nrf/nrfx_config: Disable RTC2 for nRF9160 targets.
nRF9160 does not have any RTC2. Disable the configuration in
case of NRF9160_XXAA.
2020-07-16 11:44:44 +02:00
TinkeringTech 49fcfd14d2 Added the TinkeringTech ScoutMakes Azul platform to CircuitPython 2020-07-15 21:49:34 -04:00
Jeff Epler 1df48176ce supervisor: factor supervisor_background_tasks from sundry ports 2020-07-15 11:49:44 -05:00
Jeff Epler 6160d11c5a supervisor: factor out, Handle USB via background callback 2020-07-15 11:49:44 -05:00
Jeff Epler a2919a6fb2 esp32s2: Use the device's EUI-48 address as unique ID
On my hardware, esptool reports
    MAC: 7c:df:a1:02:6c:b8
after this change, the USB descriptor says SerialNumber: 7CDFA1026CB8
and microcontroller.cpu.id has
    >>> "".join("%02x" % byte for byte in microcontroller.cpu.uid)
    'c7fd1a20c68b'

Note that the nibble-swapping between USB and cpu.uid is typical.
For instance, an stm32 board has USB SerialNumber
24002500F005D42445632302 but hex-converted microcontroller.cpu.id
420052000f504d4254363220.
2020-07-15 11:45:13 -05:00
Jeff Epler 910f69c42b esp32s2: Take care to invoke the sub-build-system only once
This allows "make -j" in the outer build system to function properly,
with a potentially large decrease in build times on high end desktop
systems.
2020-07-15 10:30:07 -05:00
Jeff Epler 742aa740f6 samd: audio: Move to background callback
Testing performed: Played half of the Bartlebeats album :) :)
2020-07-15 09:26:47 -05:00
Jeff Epler dc74ae83da nRF: Always use sd_nvic_critical_region calls
The motivation for doing this is so that we can allow
common_hal_mcu_disable_interrupts in IRQ context, something that works
on other ports, but not on nRF with SD enabled.  This is because
when SD is enabled, calling sd_softdevice_is_enabled in the context
of an interrupt with priority 2 or 3 causes a HardFault.  We have chosen
to give the USB interrupt priority 2 on nRF, the highest priority that
is compatible with SD.

Since at least SoftDevice s130 v2.0.1, sd_nvic_critical_region_enter/exit
have been implemented as inline functions and are safe to call even if
softdevice is not enabled.  Reference kindly provided by danh:
 https://devzone.nordicsemi.com/f/nordic-q-a/29553/sd_nvic_critical_region_enter-exit-missing-in-s130-v2

Switching to these as the default/only way to enable/disable interrupts
simplifies things, and fixes several problems and potential problems:
 * Interrupts at priority 2 or 3 could not call common_hal_mcu_disable_interrupts
   because the call to sd_softdevice_is_enabled would HardFault
 * Hypothetically, the state of sd_softdevice_is_enabled
   could change from the disable to the enable call, meaning the calls
   would not match (__disable_irq() could be balanced with
   sd_nvic_critical_region_exit).

This also fixes a problem I believe would exist if disable() were called
twice when SD is enabled.  There is a single "is_nested_critical_region"
flag, and the second call would set it to 1.  Both of the enable()
calls that followed would call critical_region_exit(1), and interrupts
would not properly be reenabled.  In the new version of the code,
we use our own nesting_count value to track the intended state, so
now nested disable()s only call critical_region_enter() once, only
updating is_nested_critical_region once; and only the second enable()
call will call critical_region_exit, with the right value of i_n_c_r.

Finally, in port_sleep_until_interrupt, if !sd_enabled, we really do
need to __disable_irq, rather than using the common_hal_mcu routines;
the reason why is documented in a comment.
2020-07-15 09:26:47 -05:00
Lucian Copeland 818b96ae61 Fix IRQ enum protections 2020-07-14 16:33:36 -04:00
Scott Shawcroft 90ad9beff5
Merge pull request #3136 from xiongyihui/master
Add 2 boards nRF52840 M.2 devkit and M60 Keyboard
2020-07-13 17:14:18 -07:00
Scott Shawcroft 51c888d4be
Merge pull request #3003 from Flameeyes/master
License tagging according to REUSE specifications.
2020-07-13 16:28:49 -07:00
Scott Shawcroft d712d1281c
Merge branch 'main' into master 2020-07-13 15:53:44 -07:00
Dan Halbert 3fcd999130
Merge pull request #3130 from pewpew-game/brownout-level
SAMD: make the brownout detection level configurable per board
2020-07-13 16:26:11 -04:00
Lucian Copeland b8910676db Add missing enum preprocessor protection 2020-07-13 11:52:30 -04:00
Dan Halbert f6869c69c5 wip: advertising; not tested 2020-07-12 19:45:23 -04:00
Yihui Xiong c8752ff93e use RGB LEDs as status indicators 2020-07-11 21:25:32 +08:00
Yihui Xiong 8e26fdc0e9 add LED status, remove unused macros 2020-07-11 10:51:31 +08:00
Radomir Dopieralski 742f9cfdb0 Fluff M0: additional pins on version 1.3 of the board 2020-07-10 20:40:58 +02:00
Yihui Xiong 7ff499046b use VID & PIDs granted by Seeed 2020-07-11 00:37:45 +08:00
Lucian Copeland eb86010176 Enable RGB Matrix 2020-07-10 11:06:12 -04:00
Alex Tsamakos f743bd3d25
nrf/boards: Add initial support for Actinius Icarus.
Example make command:

make BOARD=actinius_icarus
2020-07-10 03:48:30 +02:00
Scott Shawcroft 0068c76fa6
Merge pull request #3135 from arms22/bless_dev_board_multi_sensor
Add new board BLE-SS dev board Multi Sensor
2020-07-09 10:29:57 -07:00
Lucian Copeland edc48a505f Complete F405 pin and periph definitions 2020-07-09 13:10:18 -04:00
Lucian Copeland 2bcc5c06c2 Fix advanced claimed pin/package timer search 2020-07-09 11:42:37 -04:00
Yihui Xiong 678f266394 fix pre-commit check 2020-07-09 10:25:46 +00:00
Radomir Dopieralski e0733d153e SAMD: configurable brownout, separate the variables 2020-07-09 12:17:07 +02:00
Yihui Xiong 96f6ce222c add makerdiary m60 keyboard
Signed-off-by: Yihui Xiong <yihui.xiong@hotmail.com>
2020-07-09 10:02:27 +00:00
Yihui Xiong e81d22cd67 add makerdiary nrf52840 m.2 devkit
Signed-off-by: Yihui Xiong <yihui.xiong@hotmail.com>
2020-07-09 10:01:04 +00:00
arms22 bb5cdcf954 Add new board BLE-SS dev board Multi Sensor 2020-07-09 11:26:45 +09:00
Lucian Copeland 9c38f5dcb1 Merge remote-tracking branch 'upstream/main' into stm32-timer-allocator 2020-07-08 16:03:12 -04:00
Scott Shawcroft ce214e82a5
Merge pull request #3127 from Arudinne/Raytac_MDBT50Q-DB-40
Add new board Raytac MDBT50Q-DB-40
2020-07-08 11:34:56 -07:00
Radomir Dopieralski 83a27edd20 SAMD: make the brownout detection level configurable per board
Not all boards have external flash or other components that make them
require 2.7V -- sometimes we can get considerably longer battery life
by decreasing this requirement.

In particular, pewpew10 and pewpew_m4 are powered directly from
battery, with no LDO, and should work fine down to 1.6V.
2020-07-08 19:59:53 +02:00
Arudinne 768149fb01 modified: ports/nrf/boards/raytac_mdbt50q-db-40/pins.c 2020-07-08 10:36:41 -05:00
iabdalkader c299cc94e3 stm32/pyb_can: Handle timeout arg for FDCAN in pyb_can_send.
Following the documented pyb can_send behavior in pyb.CAN docs.
2020-07-09 00:38:56 +10:00
iabdalkader d07073f4e2 stm32/fdcan: Support maximum timeout of HAL_MAX_DELAY in can_receive. 2020-07-09 00:38:40 +10:00
iabdalkader 63b2eb27d4 stm32/fdcan: Use FDCAN_RXFxS_FxFL instead of hard-coded value. 2020-07-09 00:38:33 +10:00
iabdalkader 8594389fe7 stm32/fdcan: Use the right FIFO to calc element address in can_receive. 2020-07-09 00:37:50 +10:00
Damien George f5dd46b479 unix/variants: Enable VFS and all supported filesystems on dev variant.
So that micropython-dev can be used to test VFS code, and inspect and build
filesystem images that are compatible with bare-metal systems.

Signed-off-by: Damien George <damien@micropython.org>
2020-07-08 23:57:25 +10:00
Martin Fischer 59ed3bdd9f nrf: Enable nrf tick support on all boards by default.
Having time.ticks_ms/us/add/diff is very useful and used by many drivers,
libraries and components.
2020-07-08 23:47:08 +10:00
Martin Fischer 15574cd665 nrf: Add support for time.ticks_xxx functions using RTC1.
This commit adds time.ticks_ms/us support using RTC1 as the timebase.  It
also adds the time.ticks_add/diff helper functions.  This feature can be
enabled using MICROPY_PY_TIME_TICKS.  If disabled the system uses the
legacy sleep methods and does not have any ticks functions.

In addition support for MICROPY_EVENT_POLL_HOOK was added to the
time.sleep_ms(x) function, making this function more power efficient and
allows support for select.poll/asyncio.  To support this, the RTC's CCR0
was used to schedule a ~1msec event to wakeup the CPU.

Some important notes about the RTC timebase:

- Since the granularity of RTC1's ticks are approx 30usec, time.ticks_us is
not perfect, does not have 1us resolution, but is otherwise quite usable.
For tighter measurments the ticker's 1MHz counter should be used.

- time.ticks_ms(x) should *not* be called in an IRQ with higher prio than
the RTC overflow irq (3).  If so it introduces a race condition and
possibly leads to wrong tick calculations.

See #6171 and #6202.
2020-07-08 23:47:02 +10:00
Arudinne 5a9aac472a modified: ports/nrf/boards/raytac_mdbt50q-db-40/pins.c 2020-07-07 14:37:59 -05:00
Jeff Epler 57ab4f1329 stm: SPI: revamp pin search code
I discussed with Hierophect on Discord about how to "de-nest" the code
for configuring SPI objects on STM, because the problems with one
nesting level per pin becomes unmanageable with the up to 10 pins of
SDIO.

This code (which is only compile-tested so far) demonstrates the concept
we discussed.

The SCK pin is always required.  Loop over all possibilities of the SCK
pin.  When we are considering a particular item in the mcu_spi_sck_list
we have now become committed to using a particular periph_index.  If all
the other pins can be satisfied by that periph_index, then we have a
working combination.  Once we have a working combination that is not
reserved, we can return that combination.  On reaching the end, we have
checked all the possible possibilities and can give the same errors as
before: One if there was a possibility that worked but was reserved;
and another if no possibility worked.
2020-07-07 14:37:50 -05:00
Arudinne dc2f729d19 modified: ports/nrf/boards/raytac_mdbt50q-db-40/mpconfigboard.mk
modified:   ports/nrf/boards/raytac_mdbt50q-db-40/pins.c
2020-07-07 14:37:08 -05:00
Arudinne b5af05cd31 new file: ports/nrf/boards/raytac_mdbt50q-db-40/board.c
new file:   ports/nrf/boards/raytac_mdbt50q-db-40/bootloader/6.0.0/pca10056_bootloader_6.0.0_s140.zip
	new file:   ports/nrf/boards/raytac_mdbt50q-db-40/mpconfigboard.h
	new file:   ports/nrf/boards/raytac_mdbt50q-db-40/mpconfigboard.mk
	new file:   ports/nrf/boards/raytac_mdbt50q-db-40/pins.c
2020-07-07 12:27:23 -05:00
Scott Shawcroft 965a4961ce
Merge pull request #3120 from DavePutz/issue#3049
Issue#3049 -PulseIn not working in CP5.4
2020-07-07 08:59:22 -07:00
DavePutz 0932b64ae7
Correct for SAMD51 build 2020-07-06 23:25:33 -05:00
DavePutz 1b3cb17abd
Corrected file for SAMD51 build 2020-07-06 21:47:11 -05:00
DavePutz ab4a453006
Made requested changes 2020-07-06 21:40:38 -05:00
Scott Shawcroft a7844205bd
Merge pull request #3123 from kamtom480/sdk2.0
spresense: update SDK to 2.0.1
2020-07-06 15:09:46 -07:00
Scott Shawcroft 846f01b2c8
Merge pull request #3113 from ansonhe97/main
ADD: Added Wio Terminal's functional pins and LCD driver to board init
2020-07-06 14:50:47 -07:00
Diego Elio Pettenò 34b4993d63 Add license to some obvious files. 2020-07-06 19:16:25 +01:00
Radomir Dopieralski 2f80460a2f Fluff M0: additional pins on version 1.3 of the board 2020-07-06 19:15:41 +01:00
Kamil Tomaszewski 97355f8fb7 spresense: update SDK to 2.0.1 2020-07-06 17:13:28 +02:00
DavePutz ac33c3fe2c
Implementation of continuous synchronization of RTC during pulsein
Flags and code to implement continuous synchronization of RTC during pulsein
2020-07-04 21:17:19 -05:00
DavePutz 94d90742dd
Implementation of RTC continuous synchronization during pulsein
Flags and code to implement RTC continuous synchronization during pulsein
2020-07-04 21:15:38 -05:00
ndgarage e514782cc6 update-with-new-usb-PID 2020-07-04 10:39:21 -06:00
ansonhe97 36ef3476de Fix depreciate terminology 2020-07-04 11:21:58 +08:00
Lucian Copeland c72e3536f1 Merge remote-tracking branch 'upstream/main' into stm32-timer-allocator 2020-07-03 09:50:05 -04:00
ansonhe97 2ecb46f192 Fix CI 2020-07-03 13:42:27 +08:00
ansonhe97 2a92cf8d8b ADD: Added LCD driver to board init 2020-07-03 12:44:20 +08:00
ansonhe97 49aacc8596 ADD: Fixed wrong SPI pins and added more functional pins 2020-07-03 12:43:21 +08:00
Scott Shawcroft 4d7b9cde33
Merge pull request #3109 from pewpew-game/fluff_m0
Fluff M0: additional pins on version 1.3 of the board
2020-07-02 15:43:32 -07:00
Radomir Dopieralski fce35c3481 Fluff M0: additional pins on version 1.3 of the board 2020-07-02 22:57:58 +02:00
Scott Shawcroft 4a21426377
Merge pull request #3103 from hierophect/stm32-simplex-spi-fix
STM32: add debug flags, fix hang in simplex SPI
2020-07-02 13:42:08 -07:00
Lucian Copeland 4b66483757 Update submodule, revert direction change 2020-07-02 15:38:37 -04:00
Kamil Tomaszewski f4a2474447 spresense: Add support for sdioio 2020-07-02 15:26:59 +02:00
Jeff Epler fcddfd0f39
Merge pull request #3083 from tannewt/esp32s2_busio
Add busio support for the ESP32-S2
2020-07-01 21:02:08 -05:00
Lucian Copeland 87d58b3b0a STM32: add debug flags, fix hang in simplex SPI 2020-07-01 17:48:10 -04:00
Scott Shawcroft 367d3800fc
Return false if we already have the lock 2020-07-01 14:35:25 -07:00
ndgarage 0537f4e775 restore-ndgarage_ndbit6-to-original 2020-07-01 14:12:52 -06:00
ndgarage c759c9a2aa add-ndgarage_ndbit6_v2-update 2020-07-01 13:58:07 -06:00
svgops b80dbb4b2c add-ndgarage_ndbit6_v2 2020-07-01 12:06:59 -06:00
Lucian Copeland ab9a64eafa Add timer allocator, adjust pulsio to use general purpose timers 2020-07-01 10:35:49 -04:00
Glenn Ruben Bakke c2317a3a8d nrf/Makefile: Disable ROM text compression when compiling for debug.
When compiling for debug (-O0) the .text segment cannot fit the flash
region when MICROPY_ROM_TEXT_COMPRESSION=1, because the compiler does not
optimise away the large if-else chain used to select the correct compressed
string.

This commit enforces MICROPY_ROM_TEXT_COMPRESSION=0 when compiling for
debug (DEBUG=1).
2020-07-01 22:54:52 +10:00
Glenn Ruben Bakke f22f7b285e nrf/bluetooth/ble_uart: Swap end character on cooked strings.
Changing line ending character of cooked strings makes rshell/pyboard.py
work correctly over Bluetooth socat/pts devices.
2020-07-01 22:51:30 +10:00
Glenn Ruben Bakke 5996bf72f1 nrf/bluetooth/ble_uart: Fix random advertisement name.
The storage space of the advertisement name is not declared static, leading
to a random advertisement name.  This commit fixes the issue by declaring
it static.
2020-07-01 22:50:56 +10:00
Glenn Ruben Bakke ab0c14dba0 nrf/bluetooth/ble_uart: Add mp_hal_stdio_poll function.
This adds support for enabling MICROPY_PY_SYS_STDFILES when running UART
over Bluetooth (NUS).
2020-07-01 22:50:41 +10:00
Glenn Ruben Bakke fc1f22a097 nrf/bluetooth: Handle data length update request.
The Bluetooth link gets disconnected when connecting from a PC after 30-40
seconds.  This commit adds handling of the data length update request.  The
data length parameter pointer is set to NULL in the reply,  letting the
SoftDevice automatically set values and use them in the data length update
procedure.
2020-07-01 22:49:04 +10:00
Glenn Ruben Bakke 9dfb4ae6aa nrf/bluetooth/ble_uart: Fix implicit declaration of function.
mp_keyboard_interrupt() triggers a compiler error because the function is
implicitly declared.  This commit adds "py/runtime.h" to the includes.

Fixes issue #5732.
2020-07-01 22:48:25 +10:00
Jim Mussared 4050281311 unix: Enable uasyncio on dev variant. 2020-07-01 22:44:41 +10:00
Jim Mussared 27abac95d8 unix: Make manifest selection match other ports.
Changes are:
- The default manifest.py is moved to the variants directory (it's in
  "boards" in other ports).
- The coverage variant now uses a custom manifest in its variant directory
  to add frzmpy/frzstr.
- The frzmpy/frzstr tests are moved to variants/coverage/.
2020-07-01 22:42:55 +10:00
Jeff Epler 3a17a79bf2
Merge pull request #3094 from kamtom480/mkspk
spresense: add elf32.h for mkspk
2020-07-01 06:58:40 -05:00
ansonhe97 d4e28dd233 ADD: added more special pins on Wio Terminal 2020-07-01 17:06:26 +08:00
Andrew Leech 494bcad8ab stm32/mboot: Disable polling mode by default and use IRQ mode instead.
Polling mode will cause failures with the mass-erase command due to USB
timeouts, because the USB IRQs are not being serviced.  Swiching from
polling to IRQ mode fixes this because the USB IRQs can be serviced between
page erases.

Note that when the flash is being programmed or erased the MCU is halted
and cannot respond to USB IRQs, because mboot runs from flash, as opposed
to the built-in bootloader which is in system ROM.  But the maximum delay
in responding to an IRQ is the time taken to erase a single page, about
100ms for large pages, and that is short enough that the USB does not
timeout on the host side.

Recent tests have shown that in the current mboot code IRQ mode is pretty
much the same speed as polling mode (within timing error), code size is
slightly reduced in IRQ mode, and IRQ mode idles at about half of the power
consumption as polling mode.
2020-07-01 16:54:03 +10:00
Andrew Leech 95ec0debec stm32/mboot: Remove the use of timeout in DFU_GETSTATUS.
This is treated more like a "delay before continuing" in the spec and
official tools and does not appear to be really needed.  In particular,
downloading firmware is much slower with non-zero timeouts because the host
must pause by the timeout between sending each DFU_GETSTATUS to poll for
download/erase complete.
2020-07-01 16:33:10 +10:00
Dan Halbert 11cb3e3b4b hci skeleton done; not working yet 2020-06-30 23:19:40 -04:00
Scott Shawcroft 5028804878
Remove fixed pointers and check UART return 2020-06-30 15:29:42 -07:00
Scott Shawcroft 74ad5e80ce
Merge pull request #3089 from ansonhe97/main
Add: added Seeed's Wio Terminal Board Support
2020-06-30 10:58:24 -07:00
Damien George 41b7734c46 zephyr/make-minimal: Disable FAT and LFS2 options to make it build.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-30 22:33:41 +10:00
Damien George f84145bea1 zephyr: Implement machine.Pin.irq() for setting callbacks on pin change.
Supports hard and soft interrupts.  In the current implementation, soft
interrupt callbacks will only be called when the VM is executing, ie they
will not be called during a blocking kernel call like k_msleep.  And the
behaviour of hard interrupt callbacks will depend on the underlying device,
as well as the amount of ISR stack space.

Soft and hard interrupts tested on frdm_k64f and nucleo_f767zi boards.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-30 22:33:41 +10:00
Damien George 65a7e00078 stm32/mboot: Add DFU logic to respond to DFU_GETSTATE request.
This is required for some DFU programmers, eg ST's DfuSe demo PC app.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-30 21:28:24 +10:00
Andrew Leech 40006813c3 stm32/flash: Update flash_get_sector_info to return -1 on invalid addr.
So the caller can tell when an invalid address is used and can take
appropriate action.
2020-06-30 21:24:28 +10:00
Andrew Leech 8bbaa20227 stm32/mboot: Implement DFU mass erase.
The implementation internally uses sector erase to wipe everything except
the sector(s) that mboot lives in (by erasing starting from
APPLICATION_ADDR).

The erase command can take some time (eg an STM32F765 with 2MB of flash
takes 8 to 10 seconds).  This time is normally enough to make pydfu.py fail
with a timeout.  The DFU standard includes a mechanism for the DFU device
to request a longer timeout as part of the get-status response just before
starting an operation.  This timeout functionality has been implemented
here.
2020-06-30 21:22:21 +10:00
Scott Shawcroft 69b3d47564
Fix other esp builds 2020-06-29 18:21:53 -07:00
Scott Shawcroft 965a40b6a1
Fix cxd56 function signature 2020-06-29 17:17:46 -07:00
Scott Shawcroft 111f7ddf69
Merge pull request #2863 from jepler/sdcard-in-core
Sdcard in core
2020-06-29 16:49:58 -07:00
ansonhe97 4613f80d7a Fix end of line 2020-06-29 17:41:48 +08:00
ansonhe97 0dd17f4418 Add: Added Seeed Wio Terminal board support 2020-06-29 16:22:41 +08:00
Damien George 048a1d675d stm32/timer: Properly initialise timer deadtime/brk on WB MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-29 17:35:42 +10:00
Andrew Leech e4fcd216e0 stm32/usbd_cdc_interface: Remove full==size-1 limitation on tx ringbuf.
Before this commit the USB VCP TX ring-buffer used the basic implementation
where it can only be filled to a maximum of buffer size-1.  For a 1024 size
buffer this means the largest packet that can be sent is 1023.  Once a
packet of this size is sent the next byte copied in goes to the final byte
in the buffer, so must be sent as a 1 byte packet before the read pointer
can be wrapped around to the beginning.  So in large streaming transfers,
watching the USB sniffer you basically get alternating 1023 byte packets
then 1 byte packets.

This commit changes the ring-buffer implementation to a scheme that doesn't
have the full-size limitation, and the USB VCP driver can now achieve a
constant stream of full-sized packets.  This scheme introduces a
restriction on the size of the buffer: it must be a power of 2, and the
maximum size is half of the size of the index (in this case the index is
16-bit, so the maximum size would be 32767 bytes rounded to 16384 for a
power-of-2).  But this is not a big limitation because the size of the
ring-buffer prior to this commit was restricted to powers of 2 because it
was using a mask-based method to wrap the indices.

For an explanation of the new scheme see
https://www.snellman.net/blog/archive/2016-12-13-ring-buffers/

The RX buffer could likely do with a similar change, though as it's not
read from in chunks like the TX buffer it doesn't present the same issue,
all that's lost is one byte capacity of the buffer.

USB VCP TX throughput is improved by this change, potentially doubling the
speed in certain cases.
2020-06-29 17:21:37 +10:00
jerryneedell bbedd43273 change CMake verision requirement 2020-06-27 13:27:42 -04:00
Scott Shawcroft 7f6bef3251
Remove debug prints 2020-06-26 16:56:17 -07:00
Scott Shawcroft 08749630a2
Fix SPI RX and remove debug prints 2020-06-26 16:30:24 -07:00
Scott Shawcroft 2d579cc995
Use NULL for deinited DigitalInOut
This fixes a Display issue where no backlight pin is given but it's
still deinitialized.
2020-06-26 12:33:50 -07:00
Scott Shawcroft a9f257bcd6
Store host_id so that never reset works 2020-06-26 12:32:56 -07:00
Jeff Epler c5db97c50f atmel-sam: sdio: disable debug prints by default 2020-06-26 13:16:16 -05:00
Scott Shawcroft 0f074fb956
Merge pull request #3072 from PTS93/patch-2
Update minimum required cmake to 3.16
2020-06-26 10:02:24 -07:00
Jeff Epler f496c0b58d atmel-samd: Add SDIO SD card interface 2020-06-26 11:50:42 -05:00
Jeff Epler d4b9458512 samd: sdio: Add needed files from atmel start 2020-06-26 11:50:41 -05:00
Jeff Epler 57fde2e07b sdcardio: implement new library for SD card I/O
Testing performed: That a card is successfully mounted on Pygamer with
the built in SD card slot

This module is enabled for most FULL_BUILD boards, but is disabled for
samd21 ("M0"), litex, and pca10100 for various reasons.
2020-06-26 11:50:23 -05:00
Scott Shawcroft 9ec9644928
Merge pull request #3071 from jgillick/jeremy/stm-nvm-flash
STM32 (ThunderPack) - Move NVM sector to increase program size.
2020-06-26 09:45:26 -07:00
Dan Halbert 3e616ccead update submodules 2020-06-26 12:21:57 -04:00
Damien George 137df81757 stm32/i2cslave: Pass I2C instance to callbacks to support multi I2Cs.
By passing through the I2C instance to the application callbacks, the
application can implement multiple I2C slave devices on different
peripherals (eg I2C1 and I2C2).

This commit also adds a proper rw argument to i2c_slave_process_addr_match
for F7/H7/WB MCUs, and enables the i2c_slave_process_tx_end callback.
Mboot is also updated for these changes.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-26 23:56:45 +10:00
Damien George 0a8ce0d568 stm32/mboot: Update README to describe WB and littlefs support.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-26 21:26:06 +10:00
Damien George 67fd58bbd2 stm32/mboot: Add support for littlefs.
Mboot now supports FAT, LFS1 and LFS2 filesystems, to load firmware from.
The filesystem needed by the board must be explicitly enabled by the
configuration variables MBOOT_VFS_FAT, MBOOT_VFS_LFS1 and MBOOT_VFS_LFS2.
Boards that previously used FAT implicitly (with MBOOT_FSLOAD enabled) must
now add the following config to mpconfigboard.h:

    #define MBOOT_VFS_FAT (1)

Signed-off-by: Damien George <damien@micropython.org>
2020-06-26 21:17:02 +10:00
Damien George 390f32922d stm32/mboot: Decouple stream, filesystem and top-level loading code.
This commit factors the code for files and streaming to separate source
files (vfs_fat.c and gzstream.c respectively) and introduces an abstract
gzstream interface to make it easier to plug in different filesystems.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-26 21:15:30 +10:00
Damien George 763bd448a4 stm32/mboot: Don't search for firmware on FS, just attempt to open it.
There's no need to do a directory listing to search for the given firmware
filename, it just takes extra time and code size.  Instead this commit
changes it so that the requested firmware file is opened immediately and
will abort if the file couldn't be opened.  This also allows to specify
files in a directory.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-26 21:11:03 +10:00
jgillick 017c188ab5 Move NVM block to increase program size. 2020-06-25 21:46:15 -07:00
Dan Halbert 759929c24a hci early wip; refactor supervisor bluetooth.c for nrf: tested 2020-06-25 20:57:17 -04:00
Timon a80d7479d0
Update minimum required cmake to 3.16
Earliest tested version that compiles.
Failed with version 3.10
2020-06-26 02:04:14 +02:00
Timon 0a41b86f6b
Fix typo inserting IDF_PATH variable 2020-06-26 01:36:03 +02:00
Lucian Copeland 6c91af7d56 WIP 2020-06-25 17:27:01 -04:00
Jeff Epler 103ad9966a remove machine_i2c, machine_spi
This micropython code is not used in circuitpython
2020-06-25 11:44:21 -05:00
Jeff Epler 1d2cc0b968 I2CPeripheral: Rename class and its module
This is an incompatible change.
2020-06-25 11:44:19 -05:00
Jeff Epler 07eb7d653c
Merge pull request #3042 from kamtom480/gnss
Add gnss module
2020-06-25 11:08:40 -05:00
Jeff Epler 076a96ccc6
Merge pull request #3046 from jepler/same51
Add basic SAM E54  support and SAM E54 Xplained board
2020-06-25 06:55:27 -05:00
Kamil Tomaszewski 436b15e558 spresense: add elf32.h for mkspk 2020-06-25 10:26:33 +02:00
Damien George 717b5073aa stm32/boards: Enable LFS2 on PYBD_SF3 and PYBD_SF6.
This was missed in commit 120368ba1a

Signed-off-by: Damien George <damien@micropython.org>
2020-06-25 16:32:48 +10:00
Damien George c5af3217d9 stm32/timer: Support TIM1 on WB MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-25 16:32:48 +10:00
Damien George eb9850ef6c stm32/mpconfigport.h: Enable PY_IO_FILEIO when any VFS is enabled.
Previously, if FAT was not enabled but LFS1/2 was then MICROPY_PY_IO_FILEIO
would be disabled and file binary-mode was not supported.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-25 16:32:48 +10:00
Scott Shawcroft d768d4d37a
Merge branch 'main' into gnss 2020-06-24 17:17:43 -07:00
Scott Shawcroft 03e5043af4
Turn off Idle WDT and speed up CPU 2020-06-24 13:10:31 -07:00
Scott Shawcroft ed6e81d688
Switch SPI to polling DMA and enable displayio 2020-06-24 13:10:08 -07:00
Scott Shawcroft 496e16d99b
Handle memory (hopefully). Short TX works 2020-06-24 12:47:59 -07:00
Scott Shawcroft c5fa9730a8
Compiles! 2020-06-24 12:47:59 -07:00
Scott Shawcroft fc9c0ba573
Initial SPI implementation. Almost certainly doesn't compile 2020-06-24 12:47:59 -07:00
Scott Shawcroft f52f60b17d
Add UF2 build target 2020-06-24 12:47:59 -07:00
Scott Shawcroft 7b56617f8e
Turn off stub so flash works over native usb 2020-06-24 12:47:58 -07:00
Scott Shawcroft a26102607e
Add UART support 2020-06-24 12:47:58 -07:00
Scott Shawcroft 6f050d7af3
Add pull up testing, proper us delay and stop supporting 45 and 46 for I2C 2020-06-24 12:47:58 -07:00
Scott Shawcroft ae52d052cb
Fix I2C thanks to Mark! 2020-06-24 12:47:58 -07:00
Scott Shawcroft d0401f02a9
Add initial I2C support, not quite working fully though 2020-06-24 12:47:58 -07:00
Jeff Epler 87835c77e8
Merge pull request #3038 from jepler/compute-usb-devices
Compute USB_DEVICES instead of requiring it to be specified
2020-06-24 13:31:56 -05:00
Kamil Tomaszewski ab4c09cea7 gnss: Add timestamp 2020-06-24 11:14:44 +02:00
Kamil Tomaszewski 3509dad5b3 gnss: Remove start and stop 2020-06-24 11:14:44 +02:00
Kamil Tomaszewski 343f093ead spresense: Add support for GNSS 2020-06-24 11:14:44 +02:00
Jeff Epler f232aef786 supervisor.mk: Compute USB_DEVICES; remove from boards and ports
Since Actions passed on the previous commit, where this computed value
was checked against the specified value (if any), this is no net change,
except that we no longer need to specify it for particular boards or
ports.
2020-06-23 12:59:01 -05:00
Scott Shawcroft f67b307371
Merge pull request #3045 from k0d/stm32_alignment_issue
Fixes issue with memory alignment in STM32
2020-06-23 10:54:08 -07:00
Jeff Epler 93d3629da2 stm: Sort configuration options and make them all conditional
This makes them all overridable on the board level, tersely
2020-06-23 11:02:38 -05:00
Jeff Epler 0110463811 stm: Disable USB MIDI and most USB HID
.. it was not in the USB descriptors anyway (lack of enough endpoints?)
2020-06-23 11:01:36 -05:00
Jeff Epler 3f112d28e3 mimxrt10xx: Disable USB MIDI
.. it was not in the USB descriptors anyway (lack of enough endpoints?)
2020-06-23 10:57:32 -05:00
Jeff Epler 458eef052e esp32s2: Disable USB MIDI
.. it was not in the USB descriptors anyway (lack of enough endpoints?)
2020-06-23 10:57:25 -05:00
Jeff Epler 38659b566c atmel-samd: Finish disabling USB MIDI and/or HID on certain boards 2020-06-23 10:56:27 -05:00
Jeff Epler d5074220a8 atmel-samd: Add SAM E54 Xplained board
Few peripherals are actually tested.  However, USB, I2C and GPIO seem to work.

Most pins are silkscreened with the "PX00" style, so the board module
only includes the small number that are screened differently.

The default SPI, I2C, and UART are the ones on the EXT2 header.  This is
arbitrary, but the I2C on this connector is shared with the on-board I2C
devices and the PCC header, making it the most versatile.
2020-06-23 10:41:48 -05:00
Jeff Epler da733c01da atmel-samd: Add support for SAM E54 family MCUs
This introduces the new macro SAM_D5X_E5X.  This is mostly the same
as SAMD51 before, except in a few places where a special case for
SAME54 is required
2020-06-23 10:41:48 -05:00
Damien George b4dc4c5b9a stm32/mboot: Use additional CFLAGS to compile string0.c.
This is the same as a902b69dd5 but applied to
mboot's Makefile.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-23 14:00:16 +10:00
Damien George 81a7293ed6 stm32/mboot: Set VTOR on start up to ensure it has the correct value.
Commit 8675858465 switched to using the CMSIS
provided SystemInit function which sets VTOR to 0x00000000 (previously it
was 0x08000000).  A VTOR of 0x00000000 will be correct on some MCUs but not
on others where the built-in bootloader is remapped to this address, via
__HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH().

To make sure mboot has the correct vector table, this commit explicitly
sets VTOR to the correct value of 0x08000000.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-23 13:56:20 +10:00
Scott Shawcroft 0b99baccb8
Merge pull request #3050 from florin-trutiu/loc-ber-m4-base-board
PID request for a new board configuration
2020-06-22 15:09:42 -07:00
Scott Shawcroft 54b66d9484
Merge pull request #3052 from dhalbert/samd51-voltage-check-delay
delay 1ms on SAMD51 when reading processor voltage
2020-06-22 14:29:43 -07:00
Jeff Epler d43449a6d6 sparkfun samd51 thing plus: Fix board.I2C()
This had the SDA and SCL pins transposed, so nothing worked.
2020-06-22 10:45:27 -05:00
Jeff Epler a770b5a919 never_reset_pin: Move pin validity check before first use of pin number 2020-06-22 10:45:27 -05:00
Jeff Epler 6638bc32c3 samd: Makefile: Regularize whitespace 2020-06-22 10:45:27 -05:00
Jeff Epler 8a760b0657 stm: Pin.c: Compute GPIO_PORT_COUNT instead of specifying manually 2020-06-22 10:45:27 -05:00
Jeff Epler a580f0f1c4 _pew: move to common-hal
I noticed that this code was referring to samd-specific functionality,
and isn't enabled except in one samd board (pewpew10).  Move it.

There is incomplte support for _pew in mimxrt10xx which then caused build
errors; adding a #if guard to check for _pew being enabled fixes it.
The _pew module is not likely to be important on mimxrt but I'll leave the
choice to remove it to someone else.
2020-06-22 10:45:27 -05:00
Jeff Epler 5a3a0a5092 stm: Makefile: sort files in SRC_STM32 2020-06-22 10:45:23 -05:00
Damien George 6f40e6e131 stm32/boards: Add build-time option for NUCLEO_WB55 to use mboot.
As an example of how to use mboot on a WB series MCU.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George 705728369d stm32/mboot: Add support for using mboot with WB MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George 8675858465 stm32/mboot: Use CMSIS system source code for SystemInit function.
There's no need to duplicate this functionality in mboot, the code provided
in stm32lib/CMSIS does the same thing and makes it easier to support other
MCU series.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George a8778c8dc8 stm32/mboot: Use flash routines from main stm32 code rather than custom.
The flash functions in ports/stm32/flash.c are almost identical to those in
ports/stm32/mboot/main.c, so remove the duplicated code in mboot and use
instead the main stm32 code.  This also allows supporting other MCU series.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George 736daebfc8 stm32/flash: Add flash_is_valid_addr, and extend sectors for 2MB F7.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George 4c8a68df6f stm32/i2cslave: Add support for WB MCUs.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George afd47d58ac stm32/flash: Make flash C-API reusable, and funcs return an error code.
This commit makes the low-level flash C functions usable by code other than
flashbdev.c (eg by mboot).  Changes in this commit are:
- flash_erase() and flash_write() now return an errno error code, a
  negative value on error.
- flash_erase() now automatically locks the flash, as well as unlocking it.
- flash_write() now automatically unlocks the flash, as well as locking it.
- flashbdev.c is modified for the above changes.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 14:18:15 +10:00
Damien George ce326699d7 stm32/powerctrlboot: Include irq.h to get definitions of IRQ priorities.
irq.h is included by py/mphal.h but it's better to be explicit, eg if mboot
uses powerctrlboot.c.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 13:47:48 +10:00
Damien George 5f3c2f1fa8 stm32/irq: Clean up irq.h so it does not depend on core uPy defines.
The irq.h file now just provides low-level IRQ definitions and priorities.
All Python binding definitions are moved to modmachine.h, with some
renaming of pyb -> machine, and also the machine_idle definition (was
pyb_wfi) is moved to modmachine.c.

The cc3200 and teensy ports are updated to build with these changes.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 13:47:15 +10:00
Damien George f1ba2c9d88 qemu-arm/Makefile: Add CFLAGS_EXTRA to CFLAGS.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-22 13:42:24 +10:00
Dan Halbert 1687c8b1e3 delay 1ms on SAMD51 when reading processor voltage 2020-06-19 15:25:04 -04:00
Florin Trutiu b316549590 Added the new assigned VID/PID pair 2020-06-19 19:26:29 +03:00
Florin Trutiu 178be2e3c9 loc_ber_m4_base_board 2020-06-19 18:56:20 +03:00
Jonathan Hogg 3a9d948032 esp32/esp32_rmt: Call rmt_driver_install before rmt_config.
Otherwise the RMT will repeat pulses when using loop(True).  This repeating
is due to a bug in the IDF which will be fixed in an upcoming release, but
for now the accepted workaround is to swap these calls, which should still
work in the fixed version of the IDF.

Fixes issue #6167.
2020-06-19 22:11:14 +10:00
David Lechner 77ed6f69ac tools/uncrustify: Enable more opts to remove space between func and '('.
With only `sp_func_proto_paren = remove` set there are some cases where
uncrustify misses removing a space between the function name and the
opening '('.  This sets all of the related options to `force` as well.
2020-06-19 22:07:32 +10:00
Damien George ce02d5e348 stm32/boards/NUCLEO_WB55: Add more CPU pins and aliases to SW1/2/3.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-18 10:48:24 +10:00
Mark Olsson 23da0fa99c Fixes issue with memory alignment in STM32
When compiling with optimizations on, an issue occurs where the claimed_pins/never_reset_pins memory location is shared with another variable. This causes some bad memory read, so the USB pins ended up being reset. Setting these to have an alignment of 4 bytes resolves this.

Tested on nucleo_f746zg
2020-06-18 00:51:04 +02:00
Glenn Ruben Bakke 8d71cc2e7d nrf/bluetooth: Use MP_ERROR_TEXT for all error messages.
This follows up on commit def76fe4d9.

Fixes issue #6152.
2020-06-17 11:33:22 +10:00
Scott Shawcroft a345223dac
Merge pull request #3031 from jepler/improve-shared-bindings-links
docs: Improve 5.0.x <-> main branch doc linkrot
2020-06-16 11:49:27 -07:00
Lucian Copeland fd4aafacbe Add port D to LQFP64 2020-06-16 12:33:15 -04:00
Damien George 4b5dd012e0 stm32/rfcore: Leave txpower level as default when initialising rfcore.
And provide a convenient API function to change it (currently unused).

Fixes issue #5985.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-17 00:10:29 +10:00
Damien George 289be6b352 stm32/usb: Add support for 2xVCP on L0, L432 and WB MCUs.
There are a maximum of 8 USB endpoints and each has 2 buffer slots
(in/out).  This commit add support for up to 8 endpoints and adds FIFO
configuration for USB profiles with 2xVCP on MCUs that have device-only USB
peripherals.

Tested on NUCLEO_WB55 in 2xVCP, 2xVCP+MSC and 2xVCP+MSC+HID mode.

Signed-off-by: Damien George <damien@micropython.org>
2020-06-17 00:09:42 +10:00
Damien George da99e0f979 stm32/factoryreset: Provide empty create-FS function when FAT disabled.
Signed-off-by: Damien George <damien@micropython.org>
2020-06-17 00:09:37 +10:00
Jon Rob 1678f41744 esp32/esp32_rmt: Extend RMT to support carrier feature.
The ESP32 RMT peripheral has hardware support for a carrier frequency, and
this commit exposes it to Python with the keyword arguments carrier_freq
and carrier_duty_percent in the constructor.  Example usage:

    r = esp32.RMT(0, pin=Pin(2), clock_div=80, carrier_freq=38000, carrier_duty_percent=50)
2020-06-17 00:03:33 +10:00
Damien George 2c5993c59e ports: Disable MICROPY_PY_ASSIGN_EXPR in bare-arm and minimal ports.
To keep these ports as minimal as possible.
2020-06-16 22:06:21 +10:00
Jeff Epler 9d5ccccf7d cxd56: Disable HID and MIDI
These are already disabled via the USB_DEVICES setting, but the code is
included anyway.
2020-06-15 15:22:45 -05:00
Jeff Epler a9614bb964 cxd56: Sort the configuration settings 2020-06-15 15:22:45 -05:00
Lucian Copeland 2aac3cbdce Revert I2C timing overrides, reduce scope to module only 2020-06-15 13:51:09 -04:00
Jeff Epler 3c3cad5ae6 docs: Improve 5.0.x <-> main branch doc linkrot
This improves, but does not entirely fix, the broken links that result
from the autoapi change.  It fixes module-level links, but class links
still do not work (e.g., /shared-bindings/displayio/Palette.html (5.0.x)
is now just /shared-bindings/displayio/#displayio.Palette).
2020-06-14 11:12:35 -05:00
Damien George 2b9900380a stm32/boards/STM32F769DISC: Use macro instead of const for flash size.
So that the flash size can be changed in just one place.  Also remove the
duplicate cache entry.
2020-06-12 10:28:26 +10:00
Maureen Helm 1ae861819d zephyr: Use cmake find_package to locate zephyr.
Updates the zephyr port to use the ZEPHYR_BASE environment variable only to
locate the zephyr cmake package, allowing cmake to cache the variable.
2020-06-12 10:25:16 +10:00
Maureen Helm b1651ff092 zephyr: Increase minimum required cmake version to 3.13.1.
The minimum required cmake version has been 3.13.1 since zephyr 1.14.0.
2020-06-12 10:25:13 +10:00
Maureen Helm 4837b1caa2 zephyr: Convert DT_FLASH_AREA usages to new dts macros.
Converts DT_FLASH_AREA usages in the zephyr port to new device tree macros
introduced in zephyr 2.3.

Tested with littlefs on the reel_board.
2020-06-12 10:25:04 +10:00
Maureen Helm 6aff27ac3c zephyr: Update to new zephyr timeout API.
Updates the zephyr port to use the new timeout api introduced in zephyr
2.3.
2020-06-12 10:24:54 +10:00
Maureen Helm db02cb061d zephyr: Update for refactored zephyr device structures.
Updates the zephyr port to use refactored device structures introduced in
zephyr 2.3.
2020-06-12 10:24:46 +10:00
Maureen Helm 8b061f2d79 zephyr: Fix floating point configuration.
Zephyr renamed CONFIG_FLOAT to CONFIG_FPU to better reflect its semantics
of enabling the hardware floating point unit (FPU) rather than enabling
toolchain-level floating point support (i.e., software floating point for
FPU-less socs).
2020-06-12 10:24:30 +10:00
Maureen Helm 38b4f1569e zephyr: Fix and rename stacks_analyze function in zephyr module.
Zephyr deprecated and then removed its stack_analyze function because it
was unsafe.  Use the new zephyr thread analyzer instead and rename the
MicroPython function to zephyr.thread_analyze() to be more consistent with
the implementation.

Tested on mimxrt1050_evk.

The output now looks like this:

>>> zephyr.thread_analyze()
Thread analyze:
 80004ff4            : unused 400 usage 112 / 512 (21 %)
 rx_workq            : unused 1320 usage 180 / 1500 (12 %)
 tx_workq            : unused 992 usage 208 / 1200 (17 %)
 net_mgmt            : unused 656 usage 112 / 768 (14 %)
 sysworkq            : unused 564 usage 460 / 1024 (44 %)
 idle                : unused 256 usage 64 / 320 (20 %)
 main                : unused 2952 usage 1784 / 4736 (37 %)
2020-06-12 10:24:01 +10:00
Scott Shawcroft e27f68ffe7
Merge pull request #3025 from hierophect/stm32-f7-startup
STM32: Add DTCM and ITCM support to F7 series
2020-06-11 11:03:48 -07:00
Lucian Copeland 724637faa3 Move I2C speed to clock-style definition 2020-06-11 11:17:51 -04:00
Lucian Copeland c08702414e Add macros for setting correct F7 and H7 I2C timing 2020-06-10 16:36:44 -04:00
Lucian Copeland bf3a5afca1 Merge branch 'stm32-f7-startup' into stm32-i2cspeed 2020-06-10 16:16:15 -04:00
Lucian Copeland c88a8e66c6 Minor comment fix 2020-06-10 13:22:21 -04:00
Lucian Copeland 7cc8b784c3 Add missing openmv definitions 2020-06-10 10:31:24 -04:00
Albort Xue 05e5d411b5 mimxrt/boards: Set __heap_size__ to 0 in MIMXRT1011.ld.
Do not use the traditional C heap in order to save memory, because the
traditional C heap is unused in MicroPython.
2020-06-10 22:49:26 +10:00
Jim Mussared 3f77f2c60c unix/btstack_usb: Allow choosing adaptor via environment variable.
This allows running (for example):

    env MICROPYBTUSB=2-2 ./micropython-dev ../../examples/bluetooth/ble_temperature_central.py
2020-06-10 22:40:02 +10:00
jp-96 3705bc418c extmod/modbluetooth: Register default GATT service and fix esp32 init.
This is for the NimBLE bindings, to make sure the default GATT service
appears and that the esp32 initialises NimBLE correctly (it now matches
stm32).
2020-06-10 22:33:29 +10:00
Lucian Copeland b414f82669 Add DTCM and ITCM support to F7 series 2020-06-09 18:01:52 -04:00
Scott Shawcroft 9b8d648986
Merge pull request #3020 from DavePutz/issue2958
Issue #2958 Correct calculation of subticks being returned from port_get_raw_ticks() for esp32s2
2020-06-09 12:41:18 -07:00
DavePutz ec7a3feeba
Redid formula for calculating subticks
changed subticks calculation to give a range from 0 to 32767.
2020-06-09 10:08:49 -05:00
Philipp Ebensberger 29e258611a mimxrt/boards: Integrate support for MIMXRT1020_EVK board. 2020-06-09 19:04:23 +10:00
Albort Xue e0d539f79d mimxrt/boards: Enable LED class for MIMXRT1060_EVK board. 2020-06-09 18:51:08 +10:00
Jim Mussared 8e8dcdd34b esp32: Update IDF v4.0 supported hash to v4.0.1.
The main fix relevant to MicroPython is https://github.com/espressif/esp-idf/issues/4196

Release notes here
https://github.com/espressif/esp-idf/releases/tag/v4.0.1
2020-06-09 16:15:47 +10:00
Scott Shawcroft 0ba541d498
Merge pull request #3017 from Nicell/nice_nano
Add nice!nano board support
2020-06-08 14:47:22 -07:00
DavePutz d8bb2d7c6d
Correct ticks being returned from port_get_raw_ticks()
Issue #2958 . Correct calculation of usec back to ticks in port_get_raw_ticks().
2020-06-08 10:52:27 -05:00
Scott Shawcroft 004d644184
Merge pull request #3009 from hierophect/stm32-LSE-startup-fix
STM32: Rework LSE clock init, allow clock overrides
2020-06-07 22:37:53 -07:00
Philipp Ebensberger 6ac05af8e1 mimxrt/tusb_config.h: Preliminary fix for TinyUSB HS endpoint overflow.
Sending more than 64 bytes to the USB CDC endpoint in HS mode will lead to
a hard crash.  This commit fixes the issue, although there may be a better
fix from upstream TinyUSB in the future.
2020-06-08 14:39:21 +10:00
Nick 33496e9c68 Add nice!nano board support 2020-06-05 19:58:54 -05:00
Lucian Copeland 93cffaa87e Fix pin macros typo, add extra flash protection 2020-06-05 16:43:08 -04:00
Lucian Copeland ad0971fb25 Override HAL_Delay and HAL_GetTick 2020-06-05 13:56:32 -04:00
Scott Shawcroft 6400113bb9
Merge pull request #3001 from hierophect/mimxrt-teensy-boot
mimxrt10xx: Disable pin_reset on 1060 boards
2020-06-05 10:28:53 -07:00
Damien George 621f40b12c esp32/mpthreadport: Fix calculation of thread stack size.
With this commit the code should work correctly regardless of the size of
StackType_t (it's actually 1 byte in size for the esp32's custom FreeRTOS).

Fixes issue #6072.
2020-06-05 20:55:37 +10:00
Damien George 596fb73927 qemu-arm: Support building in debug mode with DEBUG=1.
Fixes issue #6095.
2020-06-05 20:52:10 +10:00
Philipp Ebensberger 02cc4462b7 mimxrt: Add initial impl of machine.LED class, and basic pin support.
This commit implements an LED class with rudimentary parts of a pin C API
to support it.  The LED class does not yet support setting an intensity.

This LED class is put in the machine module for the time being, until a
better place is found.

One LED is supported on TEENSY40 and MIMXRT1010_EVK boards.
2020-06-05 11:47:48 +10:00
Lucian Copeland a0977cac7b Merge remote-tracking branch 'upstream/master' into stm32-LSE-startup-fix 2020-06-04 16:15:38 -04:00
Lucian Copeland 74effeeefd Add temporary fix warning 2020-06-04 13:30:07 -04:00
Lucian Copeland d14e34449b Rework LSE clock init, allow clock overrides 2020-06-04 13:21:29 -04:00
Lucian Copeland c93ccd1e91 Disable pin resets on the 1060 2020-06-03 12:07:08 -04:00
Diego Elio Pettenò dd5d7c86d2 Fix up end of file and trailing whitespace.
This can be enforced by pre-commit, but correct it separately to make it easier to review.
2020-06-03 10:56:35 +01:00
Lucian Copeland b5b9a56918 Update teensy 4.0/4.1 pin protections 2020-06-02 18:05:59 -04:00
Scott Shawcroft db04fd1725
Merge pull request #2933 from simmel-project/wdt-nrf
Add Watchdog timer and add support for NRF watchdog
2020-06-02 10:33:24 -07:00
Damien George 8e591d412a minimal: Make build more flexible and work as 64-bit build.
Changes are:
- string0 is no longer built when building for host as the target, because
  it'll be provided by the system libc and may in some cases clash with the
  system one (eg on OSX).
- mp_int_t/mp_uint_t are defined in terms of intptr_t/uintptr_t to support
  both 32-bit and 64-bit builds.
- Configuration values which are the default in py/mpconfig.h are removed
  from mpconfigport.h to make the configuration a bit more minimal, eg as
  a better starting point for new ports.
2020-06-02 15:43:44 +10:00
stinos da71f55e23 stm32/Makefile: Quote libgcc path so spaces are not an issue.
Fixes #3116.
2020-06-02 14:11:08 +10:00
David Spickett a4086a2f13 qemu-arm/README: Update link to toolchain.
New releases have moved from launchpad to developer.arm.com.
2020-06-02 14:09:56 +10:00
Sean Cross ed8a52d1db litex: remove call to `board_init()`
These calls were all moved into `main.c`, however this call was not
removed from litex. As a result, litex was calling `board_init()` twice.

This is currently not a problem, as `fomu` is able to be initialized
twice without issue, however future boards may have issue with this.

This fixes #2991.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-06-02 10:19:40 +08:00
Damien George 246f3f640d stm32/boards/xxx_WB55: Enable pyb.ADC and hardware SPI on WB55 boards.
These features are now supported (although machine.ADC is recommended over
pyb.ADC).
2020-06-02 10:48:49 +10:00
Damien George c8985d52d3 stm32/dma: Add support for DMA on STM32WB, with SPI settings provided. 2020-06-02 10:48:49 +10:00
Damien George 0f7b5cceea stm32/machine_adc: Make setting of ADC1_COMMON->CCR clearer on STM32WB. 2020-06-02 10:48:49 +10:00
Damien George 5210fc51ec stm32/adc: Add support to pyb.ADC for STM32WB MCUs. 2020-06-02 10:48:49 +10:00
Damien George 68d053c66e stm32/modmachine: Allow changing AHB and APB bus frequencies on STM32WB.
For now SYSCLK cannot be changed and must remain at 64MHz.
2020-06-02 10:48:49 +10:00
Scott Shawcroft 959f7297da
Merge remote-tracking branch 'adafruit/master' into wdt-nrf 2020-06-01 17:01:16 -07:00
Scott Shawcroft 4146d6f872
Merge pull request #2890 from jepler/nrf-audio-tick
nrf: put supervisor enable/disable tick in place
2020-06-01 15:51:22 -07:00
Scott Shawcroft dd2cd6f002
Merge pull request #2979 from hierophect/stm32-remove-crystals
STM32: Set correct crystal settings on Discovery boards
2020-06-01 15:21:39 -07:00
Scott Shawcroft 323cca8910
Merge remote-tracking branch 'adafruit/master' into wdt-nrf 2020-06-01 15:18:12 -07:00
Lucian Copeland 75eb44f234 Note temporary issue with Nucleo boards 2020-06-01 12:26:08 -04:00
Damien George 9ae50d22c9 stm32/machine_uart: Allow re-init'ing a static UART object.
Just disallow changing the rxbuf which will be some static RAM (can't free
it and soft-reset would lose any dynamically allocated buffer).
2020-06-01 21:41:54 +10:00
Damien George 88971342b1 stm32/machine_uart: Retain attached-to-repl setting when init'ing UART. 2020-06-01 21:41:50 +10:00
Kamil Tomaszewski ce337eaa27 Fix port_get_raw_ticks 2020-06-01 11:35:46 +02:00
Dan Halbert 4667d4de8c
Merge pull request #2975 from dhalbert/aesio-nrf52840
enable aesio on all nRF52840 boards
2020-05-29 14:07:30 -04:00
Lucian Copeland 0fe7efdf36 Set correct crystal settings on Discovery boards 2020-05-29 14:01:34 -04:00
Scott Shawcroft ddcae19254
Merge pull request #2964 from hierophect/mimxrt-busio-cleanup
mimxrt10xx: Busio cleanup and bugfixes
2020-05-29 10:42:16 -07:00
Scott Shawcroft 2fd7a43f2f
Merge remote-tracking branch 'adafruit/master' into wdt-nrf 2020-05-29 10:16:24 -07:00
Lucian Copeland fe75c7793c Fix SWO/Analog overlap, style changes 2020-05-29 12:19:37 -04:00
Dan Halbert 0d2fee95e2 enable aesio on all nRF52840 boards 2020-05-29 11:06:30 -04:00
Joel Stanley f03d030080 powerpc/uart: Choose which UART to use at build time, not runtime.
Microwatt may have firmware that places data in r3, which was used to
detect microwatt vs powernv.  This breaks the existing probing of the UART
type in this powerpc port.

Instead build only the appropriate UART into the firmware, selected by
passing the option UART=potato or UART=lpc_serial to the Makefile.

A future enhancement would be to parse the device tree and configure
MicroPython based on the settings.
2020-05-29 22:54:55 +10:00
Thorsten von Eicken 50a7ba2348 esp32/modmachine: Fix machine.reset_cause to use IDF's esp_reset_reason.
The code previously called rtc_get_reset_reason which is a "raw" reset
cause.  The ESP-IDF massages that for the proper reset cause available from
esp_reset_reason.

Fixes issue #5134.
2020-05-29 22:27:53 +10:00
Scott Shawcroft 2fb4fa3289
Spill registers before scanning the stack.
From the change:

    // xtensa has more registers than an instruction can address. The 16 that
    // can be addressed are called the "window". When a function is called or
    // returns the window rotates. This allows for more efficient function calls
    // because ram doesn't need to be used. It's only used if the window wraps
    // around onto itself. At that point values are "spilled" to empty spots in
    // the stack that were set aside. When the window rotates back around (on
    // function return), the values are restored into the register from ram.

    // So, in order to read the values in the stack scan we must make sure all
    // of the register values we care about have been spilled to RAM. Luckily,
    // there is a HAL call to do it. There is a bit of a race condition here
    // because the register value could change after it's been restored but that
    // is unlikely to happen with a heap pointer while we do a GC.

Fixes #2907
2020-05-28 18:34:14 -07:00
Scott Shawcroft 796373b8be
A number of small ESP32S2 fixes:
* Fix flash writes that don't end on a sector boundary. Fixes #2944
* Fix enum incompatibility with IDF.
* Fix printf output so it goes out debug UART.
* Increase stack size to 8k.
* Fix sleep of less than a tick so it doesn't crash.
2020-05-28 15:43:55 -07:00
Scott Shawcroft a9419b5d46
Update ESP IDF 2020-05-28 15:38:48 -07:00
Lucian Copeland 9ee278d2ac Merge remote-tracking branch 'upstream/master' into mimxrt-busio-cleanup 2020-05-28 12:24:37 -04:00
Lucian Copeland fd00bb8b7f Fix pin reset flash conflict error 2020-05-28 12:15:21 -04:00
cccc 1662a0b06f esp32/machine_sdcard: Add "freq" keyword arg to SDCard constructor.
To allow high speed access.
2020-05-28 12:19:04 +10:00
stijn 9523ca92e0 windows: Make appveyor.yml self-contained.
Add configuration which otherwise has to be set via the UI so the file is
more self-contained, and remove configuration which is not needed because
it's the same as the default.  The major change here is that for a while
now Appveyor has been using Visual Studio 2015 by default while we still
want to support 2013.
2020-05-28 09:56:35 +10:00
stijn 81db22f693 py/modmath: Work around msvc float bugs in atan2, fmod and modf.
Older implementations deal with infinity/negative zero incorrectly.  This
commit adds generic fixes that can be enabled by any port that needs them,
along with new tests cases.
2020-05-28 09:54:54 +10:00
Scott Shawcroft 9380c34cf7
Merge remote-tracking branch 'adafruit/master' into wdt-nrf 2020-05-27 10:47:08 -07:00
Scott Shawcroft 0db8b888d3
Merge pull request #2934 from hierophect/mimxrt-uart-oneway
mimxrt10xx: add one-directional UART
2020-05-27 10:38:00 -07:00
Lucian Copeland a59798ed49 Merge branch 'mimxrt-uart-oneway' into mimxrt-busio-cleanup 2020-05-27 12:31:16 -04:00
Lucian Copeland 9f5520135c translations 2020-05-27 11:54:52 -04:00
Lucian Copeland a25e10ed59 Merge branch 'mimxrt-uart-oneway' of https://github.com/hierophect/circuitpython into mimxrt-uart-oneway 2020-05-27 11:49:11 -04:00
Lucian Copeland 1e914ac2b0 Change exception text and type 2020-05-27 11:48:52 -04:00
Dan Halbert d06a7c4671
Correct HiiBot BlueFi USB_PID
Donated a PID set for HiiBot BlueFi.
2020-05-27 11:47:15 -04:00
Lucian Copeland 53fb699436 Add pin resetting across boards, fix array size detection issue 2020-05-27 11:45:15 -04:00
arturo182 ad988013f0
Merge pull request #2961 from arturo182/i2c-exception
mimxrt10xx: Change exception type to match other ports
2020-05-27 11:24:46 +02:00
Joel Stanley b65482ffa8 powerpc: Set better default compiler.
Most developers use a compiler which is called powerpc64le-linux-gnu-gcc.
2020-05-27 17:02:04 +10:00
Joel Stanley 25bc42e754 powerpc: Fix Makefile rule when linking.
The linker script was included in the "$^" inputs, causing the build to
fail:

 LINK build/firmware.elf
 powerpc64le-linux-gnu-ld: error: linker script file 'powerpc.lds' appears multiple times

As a fix the linker script is left as a dependency of the elf, but only the
object files are linked.
2020-05-27 17:00:44 +10:00
Albort Xue b3bc9808f2 mimxrt/boards: Add MIMXRT1060_EVK board. 2020-05-27 16:49:52 +10:00
Olivier Ortigues e32302c1a6 esp8266/esppwm: Fix PWM glitch when setting duty on different channel.
The PWM driver uses a double buffer for the PWM timing array, one in
current use and the other one to update when changing duty parameters.
The issue was that once the duty parameters were changed the updated buffer
was applied immediately without synchronising to the start of the PWM
period.  By moving the buffer toggling/swapping to the interrupt when the
cycle is done there are no more glitches.
2020-05-27 16:15:28 +10:00
Sean Cross aac5a4f178 watchdog: use common_hal_watchdog_* pattern
This pulls all common functionality into `shared-bindings` and keeps
platform-specific code inside `nrf`. Additionally, this performs most
validation in the `shared-bindings` site.

The only validation that occurs inside platform-specific `common-hal`
code is related to timeout limits that are platform-specific.

Additionally, all documentation is now inside the `shared-bindings`
directory.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:38:29 +08:00
Sean Cross e470376c12 nrf: add ticks (not subticks) to overflow count during reset
Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:50 +08:00
Sean Cross 296ba101ec nrf: set WDT priority to 2
The previous setting of `1` meant that the bluetooth system couldn't be
used when the watchdog timer was enabled.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:50 +08:00
Sean Cross d0f1b59be5 nrf: pca10100: disable some unused features to shrink image
This removes some features that are largely unused in order to get the
image to fit.

Recommended in
https://github.com/adafruit/circuitpython/pull/2933#issuecomment-632859678

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:50 +08:00
Sean Cross 33001f4e19 nrf: simmel: shrink filesystem to fit watchdog timer
The watchdog timer has increased the amount of code and text that's
required.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:50 +08:00
Sean Cross daf7c2857d nrf: port: save rtc value across reboots
As part of the reset process, save the current tick count to an
uninitialized memory location.  That way, the current tick value will be
preserved across reboots.

A reboot will cause us to lose a certain number of ticks, depending on
how long a reboot takes, however if reboots are infrequent then this
will not be a large amount of time lost.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 5edc29c6a5 nrf: microcontroller: use port reset path
For `microcontroller.reset()`, don't manually call NVIC_SystemReset().
Instead, call the `port_reset()` in case the port wants to do any
cleanup.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross c7efc94a33 watchdog: move timeout exception to shared-bindings
Make this exception globally available to all platforms that have
enabled the watchdog timer.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross c5c13a8ba1 nrf: reset watchdog as part of port_reset()
Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 108409c6cd nrf: common-hal: finish reworking exceptions
This finishes the rework of the exception handler, which is once
again stored inside the watchdog timer module.

This also implements a `watchdog_reset()` that is used to disable the
RAISE watchdog, if one is enabled.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross bd086a102e Revert "add WatchDogTimeout exception"
This reverts commit 561e7e619095869f58fc728d428f3ff20e8bfc40.
2020-05-27 11:28:49 +08:00
Sean Cross 589cb1af6d nrf: watchdog: use nrfx_wdt driver
Instead of directly poking registers, use `nrfx_wdt`.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross e738f5eaa1 nrf: boot into safe mode sometimes for watchdog reset
If the watchdog resets the system and we're plugged into USB, boot into
safe mode.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 08362c9cab watchdogtimer: refactor to new api
This refactors the WatchDogTimer API to use the format proposed in
https://github.com/adafruit/circuitpython/pull/2933#issuecomment-632268227

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross ae950bc050 add WatchDogTimeout exception
This adds an exception to be raised when the WatchDogTimer times out.

Note that this currently causes a HardFault, and it's not clear why it's
not behaving properly.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 0169ea5155 nrf: discard arm exception sections
Since these exceptions are unused, don't include them in the output
binary.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 8f46133917 nrf: watchdog: implement software watchdogtimer
This adds a software WatchDogTimer implementation that can be used for
testing.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross 595f6387c2 watchdog: rename module from `wdt` and move to `microcontroller`
This also places it under the `microcontroller` object.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:49 +08:00
Sean Cross c23f151b6b nrf: enable wdt for all platforms
Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:48 +08:00
Sean Cross fbe1c05832 nrf: simmel: enable wdt support
This enables WDT support for Simmel. Other platforms cannot yet use
WDT because it overflows their flash storage.

Enable CIRCUITPY_WDT support for the nrf target.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:48 +08:00
Sean Cross abd01c5fbb nrf: add watchdog module
Add common-hal bindings to allow the watchdog module to be used
on nrf platforms.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:48 +08:00
Sean Cross 17ef2df2ca nrf: ld: add ARM.exidx to output image
With the WDT changes, building Circuit Python results in the following error:

/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: section .ARM.exidx LMA [00000000000621c8,00000000000621cf] overlaps section .data LMA [00000000000621c8,0000000000062383]

This is because unwinding data is getting generated, but has nowhere to go.
Re-enable this data in the linker script so it is saved.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-27 11:28:48 +08:00
Dan Halbert 3574670226
Merge pull request #2931 from tannewt/esp32s2_digitalio
Finish digitalio and pin use tracking for ESP32S2
2020-05-26 19:18:45 -04:00
Scott Shawcroft c917270da7
Merge pull request #2956 from hathach/fix-samd-wfi
fix racing issue for SAMD when executing WFI
2020-05-26 14:54:24 -07:00
Scott Shawcroft ffe0e0edc3
Merge pull request #2938 from DavePutz/issue2894
Add an increment to tcc_refcount to allow deinit to work correctly
2020-05-26 14:39:59 -07:00
arturo182 d6c59c4de0 mimxrt10xx: Change exception type to match other ports 2020-05-26 22:36:30 +02:00
Scott Shawcroft 665fe7a839
Merge pull request #2945 from pewpew-game/fluff_m0
Add support for Fluff M0
2020-05-26 13:18:55 -07:00
Scott Shawcroft 2ffd70417d
Merge remote-tracking branch 'adafruit/master' into esp32s2_digitalio 2020-05-26 13:09:57 -07:00
Dan Halbert 19f0d82048
Merge pull request #2955 from BradChan/master
Add hiibot_bluefi board definitions
2020-05-26 15:37:35 -04:00
Radomir Dopieralski 4974c933b1 Fix swapped SCK and MISO in Fluff M0 2020-05-26 03:29:05 +02:00
Dan Halbert f1436410bd
Merge pull request #2951 from jepler/remove-modules-to-fit-translations
Remove modules to fit translations
2020-05-25 09:51:57 -04:00
hathach e79340601f fix racing issue for SAMD when executing WFI 2020-05-25 20:51:02 +07:00
Jeff Epler 5cffd7e88d trinket_m0_haxpress: disable RTC to make build fit with upcoming translations 2020-05-23 20:48:38 -05:00
Jeff Epler eb85304d04 escornabot: disable RTC to make build fit with upcoming translations 2020-05-23 20:48:38 -05:00
Jeff Epler 03866c0598 meowmeow: disable modules to make build fit with upcoming translations 2020-05-23 20:41:25 -05:00
Jeff Epler 2ed40075a5 pyruler: disable RTC to make build fit with upcoming translations 2020-05-23 20:36:33 -05:00
Lucian Copeland d95022f7bb Merge remote-tracking branch 'upstream/master' into mimxrt-busio-cleanup 2020-05-22 13:33:08 -04:00
Radomir Dopieralski 4c01ddcbab Add support for Fluff M0 2020-05-22 18:51:12 +02:00
hierophect fe10a45533
Merge branch 'master' into mimxrt-uart-oneway 2020-05-22 11:32:41 -04:00
Lucian Copeland 75b5142954 Minor style changes and translations 2020-05-22 11:31:52 -04:00
jerryneedell 93df3b89e8 allow PORT specifcation for esp32s2 flashing 2020-05-22 09:54:29 -04:00
DavePutz 2e05f628f0
Add an increment to tcc_refcount to allow deinits to work properly 2020-05-21 11:08:26 -05:00
Scott Shawcroft 3bb6a32a20
Merge branch 'master' into esp32s2_digitalio 2020-05-21 08:52:39 -07:00
Sean Cross 67cf005ee5 nrf: nvm: assume sd is not enabled if interrupts are off
If interrupts are disabled, then calling sd_* functions will hardfault.
Instead, assume that it's safe to write if interrupts are disabled.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-21 22:04:20 +08:00
Sean Cross fd4ef233c6 nrf: port: add memory barrier before wfi
ARM recommends issuing a DSB instruction propr to issuing WFI, as it is
required on many parts suchas Cortex-M7. This is effectively a no-op on
the Cortex-M4 used in most NRF parts, however it ensures that we won't
be surprised when new parts come out.

See
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0321a/BIHICBGB.html
for more information.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-21 21:46:37 +08:00
Sean Cross 77cf4dce8f nrf: disable interrupts before running wfi
In order to ensure we don't have any outstanding requests, disable
interrupts prior to issuing `WFI`.

As part of this process, check to see if there are any pending USB
requests, and only execute the `WFI` if there is no pending data.

This fixes #2855 on NRF.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-21 21:43:52 +08:00
jason 4f54514be4 Initial version 2020-05-20 21:11:06 -05:00
Scott Shawcroft c32214ccc7
Merge pull request #2932 from simmel-project/nrf-rtc-reset
nrf: reset rtc as part of port_reset()
2020-05-20 11:39:16 -07:00
Scott Shawcroft a43876ad1e
Fix esp wrover 2020-05-20 11:37:29 -07:00
Scott Shawcroft 0af5dd59f2
Merge pull request #2898 from hierophect/mimxrt-claiming
MIMXRT: Implement pin claiming, pin reset, and pin protections
2020-05-20 11:32:22 -07:00
Scott Shawcroft ba724fffb4
Merge remote-tracking branch 'adafruit/master' into esp32s2_digitalio 2020-05-20 10:48:27 -07:00
Lucian Copeland 66c09efae2 Add UART one-way instance search, fix bugs in stm32 implementation 2020-05-20 12:48:01 -04:00
Scott Shawcroft fd0420d432
Update digitalio api for other ports 2020-05-20 09:23:42 -07:00
Sean Cross 4cca455c9b nrf: reset rtc as part of port_reset()
On NRF, the `rtc_reset()` function is never called.  As a result,
calls to `time.time()` return a cryptic error>

```
>>> import time
>>> time.time()
'' object has no attribute 'datetime'
>>>
```

This is because `MP_STATE_VM(rtc_time_source)` is not initialized
due to `rtc_reset()` never being called.

If `CIRCUITPY_RTC` is enabled, call `rtc_reset()` as part of the
`reset_port()` call. This ensures that `time.time()` works as expected.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-20 16:44:18 +08:00
Scott Shawcroft 80517c4cf6
First try at critical section support 2020-05-19 17:49:17 -07:00
Scott Shawcroft 49090d1378
Fully implement digitalio and pin-in-use tracking.
Fixes #2901
2020-05-19 17:46:29 -07:00
Scott Shawcroft 916ca9f8a6
Merge pull request #2910 from tannewt/esp32s2
Add initial ESP32S2 support
2020-05-19 12:53:23 -07:00
Lucian Copeland 38fd9c25f2 Re-add APA102 2020-05-19 15:33:34 -04:00
Scott Shawcroft acf4b1bede
Remove reverse methods from per-board defs 2020-05-19 11:43:57 -07:00
Lucian Copeland b310b04007 Remove pin/port distinction 2020-05-19 14:20:07 -04:00
Scott Shawcroft 9eb85a5feb
shrink Xinabox CS11 by turning off unused pins 2020-05-19 10:55:02 -07:00
Lucian Copeland 2acd173e14 Implement core requested changes 2020-05-19 13:54:47 -04:00
Sean Cross c1bcc25b88 nrf: _bleio: clean up timeout calculation
The timeout value is calculated by the common-hal layer now, so we don't
need to be quite so clever about calculating it here.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-19 21:56:39 +08:00
Sean Cross 34f91f01c6 bleio: adapter: add advertising timeout and status
Add a field to allow specifying a timeout when initiating advertising.
As part of this, add a new property to determine if the device is still
advertising.

Additionally, have the `anonymous` property require a timeout, and set
the timeout to the maximum possible value if no timeout is specified.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-19 15:01:19 +08:00
Sean Cross cfe65742a3 _bleio: support anonymous advertising
Add a new parameter to the `start_advertising()` function to enable
anonymous advertising.  This forces a call to `sd_ble_gap_privacy_set()`
with `privacy_mode` set to `BLE_GAP_PRIVACY_MODE_DEVICE_PRIVACY` and
`private_addr_type` set to
`BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE`.

With this, addresses will cycle at a predefined rate (currently once
every 15 minutes).

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-19 15:01:18 +08:00
Scott Shawcroft 2c2b53303d
Merge pull request #2837 from k0d/serial-debug
Add support for a debug console, such as ST-Link VCP.
2020-05-18 18:13:31 -07:00
Scott Shawcroft 03b6f7b87b
Add commend about FreeRTOS stack canary 2020-05-18 17:28:13 -07:00
Scott Shawcroft 164628282d
Update TinyUSB and shorten USB task delay 2020-05-18 17:27:49 -07:00
Mark Olsson 007c92ee6a Enable showing the console on a debug uart 2020-05-19 02:02:52 +02:00
Scott Shawcroft cf690bd390
Merge remote-tracking branch 'adafruit/master' into esp32s2 2020-05-18 16:46:41 -07:00
Scott Shawcroft 32617d5f2f
Merge pull request #2925 from arturo182/imx-spi
mimxrt1010: Increase max SPI speed
2020-05-18 15:22:42 -07:00
Scott Shawcroft ebfc1f2599
Merge pull request #2926 from arturo182/imx-temperature-fix
mimxrt10xx: Fix cpu.temperature crash
2020-05-18 15:20:21 -07:00
Scott Shawcroft af68ddebef
Merge pull request #2924 from simmel-project/nrf-rtc-persist
NRF: Persist RTC offset across reboots
2020-05-18 15:06:42 -07:00
Scott Shawcroft 9811c1fe4b
Merge pull request #2896 from theacodes/add-bytearray-decode
Add bytearray.decode() for CPython compatibility
2020-05-18 14:38:45 -07:00
arturo182 058a73128c mimxrt10xx: Fix cpu.temperature crash
Fixes #2514
2020-05-18 22:30:50 +02:00
arturo182 f92d53eaab mimxrt1010: Increase max SPI speed 2020-05-18 22:07:38 +02:00
Sean Cross 9f7c26c60d nrf: port: call common_hal_rtc_init() during init
Call the new function to set the RTC, or reset it if the offset is not
valid.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-18 11:52:30 +08:00
Sean Cross 83680c41db nrf: rtc: persist rtc offset across reboots
Store the RTC value in the .uninitialized section, but make sure to
flank it with some known values.  That way we can determine if the RTC
value has been initialized, or if it's random uninitialized garbage.

As part of this, add a `common_hal_rtc_init()` routine to determine if
the value is correct, or reset it to 0 if it is not valid.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-18 11:52:27 +08:00
Sean Cross 3b5f5ddaa6 nrf: port: move saved word into .uninitialized section
Circuit Python supports saving a single word of data across reboots.
Previously, this data was placed immediately following the .bss.

However, this appeared to not work, as Circuit Python zeroes out the
heap when it starts up, and the heap begins immediately after the .bss.

Switch to using the new .uninitialized section in order to store this
word across resets.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-18 11:52:25 +08:00
Sean Cross 192bb155fa nrf: port: move the heap after .uninitialized
Previously, it was placed following .bss.  However, now that there is a
new section after .bss, the heap must be moved forward.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-18 11:52:20 +08:00
Sean Cross f002c784c0 nrf: linker: add a new .uninitialized section
This section immediately follows the .bss section, and is designed to
contain uninitialized variables that should persist across reboots.

The section is placed directly after .bss, under the theory that the
size of Circuit Python's .bss + .data is bigger than the bootloader's
.bss + .data, so there is less likely to be a conflict.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-18 11:52:17 +08:00
cyz 4f7b4241a2 add hiibot_bluefi 2020-05-18 09:42:37 +08:00
Yu-Ming Chang dd8db974d7 unix/main: Enter REPL when inspect active, even with stdin redirected.
This is how CPython behaves.
2020-05-16 14:13:15 +10:00
Dan Halbert e175a64036
disable rotaryio in CPX crickit 2020-05-15 20:35:12 -04:00
Scott Shawcroft a57da6b808
Add port_fixed_stack for more spresence 2020-05-15 17:22:41 -07:00
Scott Shawcroft 8edb8e87c8
Turn reverse methods off for trinket haxpress 2020-05-15 17:22:22 -07:00
Scott Shawcroft 86f865afe0
Turn reverse methods off for cpx_crickit 2020-05-15 16:42:22 -07:00
Scott Shawcroft 3c1469b0a5
Add port_fixed_stack for more builds 2020-05-15 16:22:33 -07:00
Scott Shawcroft 6aaab005c5
Initial ESP32S2 port.
Basic blinky works but doesn't check pins.
2020-05-15 15:36:16 -07:00
Dan Halbert a3ca9401b4
Shrink crickit build 2020-05-15 18:29:37 -04:00
Lucian Copeland 99538c2414 Implement pin claiming, pin reset, and pin protections 2020-05-15 15:16:51 -04:00
Scott Shawcroft 0d8bca92e2
Merge pull request #2810 from dherrada/master
Pyi integration
2020-05-15 10:31:05 -07:00
Jim Mussared cd9a8c1742 nrf: Add openocd as a supported flasher.
Tested with the Particle Debugger on a Xenon.
2020-05-15 15:06:02 +10:00
Jim Mussared e7f8c7d9a3 nrf: Update to work with nrfx v2.0.0, to match TinyUSB.
Commit 6cea369b89 updated the TinyUSB
submodule to a version based on nrfx v2.0.0.  This commit updates the nrf
port to work with the latest TinyUSB and nrfx v2.0.0.
2020-05-15 15:06:02 +10:00
Damien George 8f348778e1 nrf/mphalport: Remove need for "syntax unified" in mp_hal_delay_us.
Because it can confuse older versions of gcc.  Instead use the correct
instruction for Thumb vs Thumb-2 (sub vs subs) so the assembler emits the
2-byte instruction.

Related to commit 1aa9ff9141.
2020-05-15 15:04:49 +10:00
Damien George eb5e9c00f8 nrf/Makefile: Don't use -fno-builtin for Cortex-M0 builds.
So that error string compression is optimised correctly (it needs strcmp to
be optimised away by the compiler).
2020-05-15 13:39:12 +10:00
Thomas Roberts 463c0fb2f4 stm32/boards: Add board config for Nucleo-F412ZG development board. 2020-05-15 10:48:48 +10:00
Thomas Roberts d7399679de stm32: Add support for F412 MCUs. 2020-05-15 10:08:30 +10:00
Rafael Römhild 8f3167a962 esp8266/boards: Allow configuring btree/FAT/LFS2 support when building.
Prior to e0905e85a7 it was possible to
disable btree support on build.  This patch allows to configure btree
support on make again and also the two new introduced options for FAT and
LFS2 filesystems.
2020-05-14 22:16:01 +10:00
Scott Shawcroft db4dbe0752
Merge pull request #2889 from jepler/gamepad-tick
Gamepad, GamepadShift: Fix after lower-power by enabling supervisor tick
2020-05-13 11:53:23 -07:00
Jeff Epler eb876e21c3 nrf: code style 2020-05-13 10:40:41 -05:00
Jeff Epler 011acf41c0 nrf: Ensure ticks enabled while playing audio 2020-05-13 10:40:36 -05:00
Jeff Epler adef45403b samd: audio dma: enable/disable supervisor tick as needed 2020-05-13 10:29:36 -05:00
Scott Shawcroft 7546d47f77
Merge remote-tracking branch 'adafruit/master' into improve_verification 2020-05-13 08:23:55 -07:00
Scott Shawcroft 80129c5a21
Disable countio on trinket haxpress 2020-05-12 18:55:49 -07:00
Scott Shawcroft cde6651721
Merge remote-tracking branch 'adafruit/master' into improve_verification 2020-05-12 18:23:59 -07:00
Scott Shawcroft 277e8d528b
Merge branch 'master' into Optical-Encoder-Module 2020-05-12 18:22:57 -07:00
Scott Shawcroft 4e8de3c554
Swap sphinx to autoapi and the inline stubs 2020-05-12 17:28:24 -07:00
warriorofwire 5a80f5e606 nerf vectorio on a ton of m0 and overcommitted m4 boards due to translation text size 2020-05-12 15:23:00 -07:00
Scott Shawcroft d274074f01
Merge remote-tracking branch 'adafruit/master' into vectorio 2020-05-12 12:29:05 -07:00
Scott Shawcroft bc40034a08
Merge branch 'master' into Optical-Encoder-Module 2020-05-12 12:12:51 -07:00
Scott Shawcroft f7303e6bd0
Merge pull request #2754 from maholli/non-standard-nvm
Add non-standard nvm to QSPI for external flash support
2020-05-12 11:56:33 -07:00
Daniel Pollard 62bdfb74e3 removed lib from catwan_usbstick - updated transalations overflowed 2020-05-12 16:40:23 +10:00
Daniel Pollard 5e5461e77e removed countio from catwan_usbstick build 2020-05-12 16:32:35 +10:00
Daniel Pollard ee2cb703c8 merged master 2020-05-12 14:41:28 +10:00
Sean Cross ffaeeda749 nrf: simmel: decrease flash filesystem size
The flash filesystem must be reduced in order to allow the current
build to fit.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-12 09:31:51 +08:00
Sean Cross f7fcd43516 nrf: simmel: disable SPIM3
Disable the SPIM3 controller to avoid needing to dedicate 8 kB to
the SPIM3 block.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-12 09:31:51 +08:00
Sean Cross 370fc7293a nrf: support disabling SPIM3
SPIM3 is faster than all other SPI blocks, and is capable of generating
a 32 MHz clock.  However, it cannot be used at the same time as the BLE
radio without dedicating an additional 8 kB of RAM to it.

Therefore, some boards may want to disable this.  Support pre-defining
NRFX_SPIM3_ENABLED on the command line to disable it on some bords.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-12 09:31:51 +08:00
Sean Cross 79c055f958 nrf: simmel: enable aesio
This adds AES support to simmel.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-12 09:31:51 +08:00
Sean Cross 235098efb8 nrf: simmel: correct CSn pin
The CSn pin is pin 6 on bank 1, not bank 0.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-12 09:31:51 +08:00
Scott Shawcroft 62b835ad76
Merge pull request #2833 from xiongyihui/pitaya-go
add nRF52840 based Makerdiary Pitaya Go
2020-05-11 16:34:27 -07:00
Scott Shawcroft 4937d5f1ca
Merge pull request #2866 from hierophect/stm32-lsetimeout
STM32: Fix LSE hang at startup
2020-05-11 16:23:09 -07:00
Scott Shawcroft 55f78bfb70
Merge pull request #2878 from WarriorOfWire/ujson-stream-protocol
ujson: work with mp stream protocol for fast & easy read
2020-05-11 15:40:27 -07:00
Scott Shawcroft 801d9655e5
Merge pull request #2881 from DavePutz/Issue2872
Added call to rtc_reset() to fix Issue #2872
2020-05-11 15:30:32 -07:00
Lucian Copeland 94949fb46f Add recovery domain write access, adjust stack 2020-05-11 18:02:40 -04:00
Scott Shawcroft 61450cbd56
Add Teensy 4.1 board definition 2020-05-11 13:58:58 -07:00
Lucian Copeland 248704b262 Merge remote-tracking branch 'upstream/master' into stm32-lsetimeout 2020-05-11 14:18:37 -04:00
DavePutz 407938bf3a
Added a check for platforms supporting RTC before calling rtc_reset()
Added an #if CIRCUITPY_RTC check  for platforms supporting RTC
2020-05-11 12:03:44 -05:00
DavePutz 2ddfab315c
Added call to rtc_reset() in rtc_init()
Fix for issue #2872. The rtc_time_source had not been initialized; causing a time.time() call to fail.
2020-05-11 11:31:18 -05:00
Damien George 3b6c9119eb extmod/modbluetooth: Add support for changing the GAP device name.
This commit allows the user to set/get the GAP device name used by service
0x1800, characteristic 0x2a00.  The usage is:

    BLE.config(gap_name="myname")
    print(BLE.config("gap_name"))

As part of this change the compile-time setting
MICROPY_PY_BLUETOOTH_DEFAULT_NAME is renamed to
MICROPY_PY_BLUETOOTH_DEFAULT_GAP_NAME to emphasise its link to GAP and this
new "gap_name" config value.  And the default value of this for the NimBLE
bindings is changed from "PYBD" to "MPY NIMBLE" to be more generic.
2020-05-11 21:30:41 +10:00
Thorsten von Eicken f385b7bfa8 stm32/README: Reorg DFU flashing instructions with addition for PYBD. 2020-05-11 21:23:41 +10:00
warriorofwire eb3d5fa453 ujson: do not eat trailing whitespace
Ujson should only worry about whitespace before JSON.  This becomes apparent when you are using MP stream protocol to read directly from input buffers.

When you attempt to read(1) on a UART (and possibly other protocols) you have to wait for either the byte or the timeout.

Fixes:
- Waiting for a timeout after you have completed reading a correct and complete JSON off the input.
- Raising an OSError after reading a correct and complete JSON off the input.
- Eating more data than semantically owned off the input buffer.
- Blocking to start parsing JSON until the entire JSON body has been loaded into a potentially large, contiguous Python object.

Code you would write before:
```
line = board_busio_uart_port.read_line()
json_dict = json.loads(line)
```
or reaching for fixed buffers and swapping them around in Python.

Code that did not work before that does now:
```
json_dict = json.load(board_busio_uart_port)
```

- This removes the need for intermediate copies of data when reading JSON from micropython stream protocol inputs.
- It also increases total application speed by parsing JSON concurrently with receiving on boards that read from UART via DMA.
- It simplifies code that users write while improving their apps.
2020-05-10 20:45:42 -07:00
warriorofwire 206d0e598a Add vectorio: for drawing shapes
vectorio builds on m4 express feather

Concrete shapes are composed into a VectorShape which is put into a displayio Group for display.

VectorShape provides transpose and x/y positioning for shape implementations.

Included Shapes:

* Circle
  - A radius; Circle is positioned at its axis in the VectorShape.
  - You can freely modify the radius to grow and shrink the circle in-place.

* Polygon
  - An ordered list of points.
  - Beteween each successive point an edge is inferred.  A final edge closing the shape is inferred between the last
    point and the first point.
  - You can modify the points in a Polygon.  The points' coordinate system is relative to (0, 0) so if you'd like a
      top-center justified 10x20 rectangle you can do points [(-5, 0), (5, 0), (5, 20), (0, 20)] and your VectorShape
      x and y properties will position the rectangle relative to its top center point

* Rectangle
  A width and a height.
2020-05-09 15:38:22 -07:00
Max Holliday e6df8e0989 Merge branch 'master' into non-standard-nvm 2020-05-09 12:22:50 -07:00
Thorsten von Eicken ab4e197707 esp32/modsocket: Fix getaddrinfo to raise on error.
This commit fixes the behaviour of socket.getaddrinfo on the ESP32 so it
raises an OSError when the name resolution fails instead of returning a []
or a resolution for 0.0.0.0.

Tests are added (generic and ESP32-specific) to verify behaviour consistent
with CPython, modulo the different types of exceptions per MicroPython
documentation.
2020-05-09 16:43:48 +10:00
Dan Halbert 8d00d99ca0
Shrink hallowing_m0_express to fit ko build 2020-05-08 22:51:21 -04:00
Lucian Copeland 5249a7b02c Add timeout and adjustment to LSI 2020-05-08 12:36:39 -04:00
Damien George 67fca2b715 esp8266/uart: Move a few functions from iRAM to iROM.
They call functions in iROM so do not need to be in iRAM.
2020-05-08 23:44:57 +10:00
Damien George f2218c2fbd esp8266/esp_mphal: Move most functions in esp_mphal.c from iRAM to iROM.
The ones that are moved out of iRAM should not need to be there, because
either they call functions in iROM (eg mp_hal_stdout_tx_str), or they are
only ever called from a function in iROM and not from an interrupt (eg
ets_esf_free_bufs).

This frees up about 800 bytes of iRAM.
2020-05-08 23:44:57 +10:00
Damien George caa7725642 esp8266/boards: Move py/pairheap.c code from iRAM to iROM.
It doesn't need to be in iRAM.
2020-05-08 23:40:22 +10:00
Damien George e12de1fd9d esp8266: Clean up Pin intr handler by moving all code to machine_pin.c.
The macro MP_FASTCODE is used to explicitly place required functions in
iRAM, instead of needing a separate .c file.
2020-05-08 23:40:22 +10:00
Jeff Epler 182ae10080 Fix build after #2831 (stm32f4xx rgbmatrix) broke it 2020-05-07 18:32:50 -05:00
Scott Shawcroft c3b3eb4c21
Merge pull request #2831 from jepler/rgbmatrix-stm
stm: enable RGBMatrix
2020-05-06 08:35:25 -07:00
Scott Shawcroft 4519ddebeb
Merge pull request #2841 from hierophect/mimxrt-spi-oneway
mimxrt10xx: add one-directional SPI
2020-05-06 08:32:21 -07:00
Daniel Pollard 7f1be814c8 changed build variables as per advice 2020-05-06 09:04:15 +10:00
Lucian Copeland a1330747e8 text fixes, postpone warning disable 2020-05-05 12:46:30 -04:00
hierophect c311b5c002
Merge pull request #2842 from hierophect/stm32-h7-displayio
STM32: Add displayio to F7/H7
2020-05-05 12:37:08 -04:00
Damien George e2def200bf stm32/boards/PYBD_SF2: Put BTstack library in external QSPI XIP flash.
In the same way the nimble stack is put there.
2020-05-05 20:21:15 +10:00
Daniel Pollard f63ee9fb9b excluded countio from other smaller boards 2020-05-05 16:15:57 +10:00
Daniel Pollard d5c24b99b8 hallowing m0 - exclude countio 2020-05-05 16:04:28 +10:00
Daniel Pollard bfa5cd9c13 refactor countio based on feedback 2020-05-05 15:23:38 +10:00
Dan Halbert b7836aeac6 address review comments 2020-05-04 19:51:08 -04:00
Dan Halbert bae7a5e433 make translate again 2020-05-04 17:26:59 -04:00
Dan Halbert 602eabe668
Squeeze hallowing_m0_express build slightly
ko build is a little too big.
2020-05-04 17:18:53 -04:00
Dan Halbert c377d4bea7
Merge branch 'master' into non-standard-nvm 2020-05-04 16:08:45 -04:00
Dan Halbert d6c6f9f4f0 add PacketBuffer .incoming_ and .outgoing_packet_length 2020-05-04 15:59:45 -04:00
Dan Halbert 4d7e341e44
Merge pull request #2844 from xobs/add-nrf-pca10100
nrf: add pca10100
2020-05-04 10:51:01 -04:00
Maureen Helm 25434e976b zephyr: Use zephyr build system to merge configurations.
The zephyr build system supports merging application-level board
configurations, so there is no need to reproduce this functionality in
MicroPython.

If CONF_FILE is not explicitly set, then the zephyr build system looks for
prj.conf in the application directory.  Therefore we rename the MicroPython
prj_base.conf to prj.conf.

Furthermore, if the zephyr build system finds boards/$(BOARD).conf in the
application directory, it merges that configuration with prj.conf.
Therefore we rename all the MicroPython board .conf files and move them
into a boards/ directory.

The minimal configuration, prj_minimal.conf, is left in the application
directory because it is used as an explicitly set CONF_FILE in
make-minimal.
2020-05-05 00:48:44 +10:00
Sean Cross b128399d1e nrf: simmel: enable CIRCUITPY_USB_HID
Simmel had USB HID disabled in order to save space.  However, the board
configuration did not set USB_DEVICES, causing it to inherit the default
device bouquet of MSC,CDC,MIDI,HID.  This in turn caused HID to be included
in the USB Configuration Descriptor.

For some reason, this was not a problem in an earlier version of tinyusb or
circuitpython.  However, in the most recent version this has rightfully
caused asserts to appear during configuration.

Re-enable USB_HID for now, as it doesn't add too much in terms of space.
We may disable it again later on if we become pressed for space.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-04 15:37:53 +08:00
Sean Cross cb4fc894d7 nrf: add pca10100
This is the nRF52833-DK board.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-05-04 15:07:49 +08:00
Thorsten von Eicken 40e9227733 esp32/partitions: Update comments in files regarding offset. 2020-05-03 15:01:26 +10:00
Thorsten von Eicken 952ff8a8ea esp32: Improve support for OTA updates.
This commit adds several small items to improve the support for OTA
updates on an esp32:

- a partition table for 4MB flash modules that has two OTA partitions ready
  to go to do updates
- a GENERIC_OTA board that uses that partition table and that enables
  automatic roll-back in the bootloader
- a new esp32.Partition.mark_app_valid_cancel_rollback() class-method to
  signal that the boot is successful and should not be rolled back at the
  next reset
- an automated test for doing an OTA update
- documentation updates
2020-05-03 15:00:45 +10:00
Lucian Copeland 61b0994631 Fix flag typo 2020-05-01 14:46:06 -04:00
Lucian Copeland bc581fbdfb Add-unidirectional-SPI 2020-05-01 13:15:38 -04:00
Yihui Xiong 7dd3ddc06b use Nordic's VID which seems to be allowed
https://devzone.nordicsemi.com/f/nordic-q-a/50638/usb-pid-for-nrf52840
2020-05-01 06:10:43 +00:00
Scott Shawcroft a863b0a349
Fix openmv_h7 build 2020-04-30 13:46:12 -07:00
Scott Shawcroft 1ca90572f1
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-30 13:25:31 -07:00
hierophect 10c5bf666e
Merge pull request #2836 from hierophect/stm32-openmv-pid
STM32: Add correct PID for the OpenMV
2020-04-30 16:07:34 -04:00
Lucian Copeland 06b62721b3 Increase H7 filesystem size 2020-04-30 15:49:17 -04:00
Scott Shawcroft 74a2d0944a
Merge pull request #2834 from Teknikio/fix/bluebird_pinout
Update teknikio bluebird pin assignments
2020-04-30 11:50:02 -07:00
Lucian Copeland 435aa3d055 Add correct PID for the OpenMV 2020-04-30 14:49:47 -04:00
Lucian Copeland 4f71bd295d Make PulseIO optional within DisplayIO 2020-04-30 14:47:50 -04:00
Scott Shawcroft f44e1d6a8d
Merge pull request #2828 from simmel-project/add-simmel
WIP: add simmel board
2020-04-30 11:40:34 -07:00
Lucian Copeland 89ff5589c4 Add the OpenMV-H7 R1 board 2020-04-30 12:39:20 -04:00
Jeff Epler e5be728c1c stm: enable protomatter
Testing performed: on stm32f405 feather, all pins change in plausible ways
on a logic probe.  Didn't actually drive a display yet.
2020-04-30 08:58:58 -05:00
JoeBakalor 36a71560c2 update teknikio bluebird pin assignments 2020-04-30 09:58:27 -04:00
Damien George 419d1aa617 esp8266/mpconfigport.h: Add definitions for BEGIN/END_ATOMIC_SECTION.
These are needed to ensure correct operation of the MicroPython scheduler.
2020-04-30 23:47:11 +10:00
Damien George 0bd58a5613 esp8266/machine_pin: Move pin_intr_handler to iRAM, de-support hard IRQ.
GPIO interrupts can occur when the flash ROM cache is in use and so the
GPIO interrupt handler must be in iRAM.  This commit moves the handler to
iRAM, and also moves mp_sched_schedule to iRAM which is called by
pin_intr_handler.

As part of this fix the Pin class can no longer support hard=True in the
Pin.irq() method, because the VM and runtime are too big to put in iRAM.

Fixes #5714.
2020-04-30 23:47:11 +10:00
Yihui Xiong 4393a88fb6 add nRF52840 based Makerdiary Pitaya Go 2020-04-30 07:38:20 +00: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
Dan Halbert 241d7e2ae6 change many ifndefs to ?= 2020-04-29 23:31:34 -04:00
Dan Halbert f3078511a6 further cleanup and bug fixing 2020-04-29 23:18:08 -04:00
Sean Cross 6aac9233db nrf: bluetooth: add s147 v7.0.1 softdevice hexfile
This was not added as part of the initial v7.0.1 patchset because
.hex files are in this project's .gitignore, and so git ignored it.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-30 10:43:46 +08:00
Dan Halbert 180f5c6a94 Merge remote-tracking branch 'adafruit/master' into ringbuf-fixes 2020-04-29 22:11:22 -04:00
Dan Halbert 3d62f87e29 back to '.packet_size' for compatiblity 2020-04-29 22:10:56 -04:00
Dan Halbert 84cee1ab8d rename and improve PacketBuffer packet length property 2020-04-29 17:49:31 -04:00
Scott Shawcroft 3799c34564
Disable bitbangio on CPX Crickit so we have room for lower_power.
Enable pixelbuf in its place because we'll need it soon.
2020-04-29 13:57:09 -07:00
Scott Shawcroft a30ff70b4e
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-29 10:51:21 -07: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 2e3c42775a unix: Add btstack to the unix submodules list.
But only when bluetooth is enabled, i.e. if building the dev or coverage
variants, and we have libusb available.

Update travis to match, i.e. specify the variant when doing
`make submodules`.
2020-04-29 16:54:12 +10:00
Jim Mussared ebfd9ff2e6 extmod/modbluetooth: Fix sign compare and unused variable warnings. 2020-04-29 16:54:12 +10:00
Jim Mussared af226199ea unix: Enable modbluetooth on the "dev" and "coverage" variants.
And MICROPY_PY_URANDOM_EXTRA_FUNCS is enabled on "dev" so tha the Bluetooth
examples all run.
2020-04-29 16:53:13 +10:00
Jim Mussared 7563d58210 unix: Add support for modbluetooth and BLE using btstack.
This commit adds full support to the unix port for Bluetooth using the
common extmod/modbluetooth Python bindings.  This uses the libusb HCI
transport, which supports many common USB BT adaptors.
2020-04-29 16:45:46 +10:00
Jim Mussared 50e44f477b stm32/main: Peform a clean shutdown of btstack on soft reset.
Not just NimBLE.
2020-04-29 16:45:46 +10:00
Jim Mussared 8119ec0765 extmod/modbluetooth: Don't hold atomic section during mp_sched_schedule.
Because, for example, on unix the atomic section isn't re-entrant, and
mp_sched_schedule() will try to re-acquire the atomic section.
2020-04-29 16:45:40 +10:00
Jim Mussared 0da47ecc93 stm32/Makefile: Rename SRC_LIB to LIB_SRC_C to match other ports. 2020-04-29 16:38:18 +10:00
Jim Mussared cb5994d96e unix/modmachine: Add machine.idle(), implemented using sched_yield.
Also add a definition of MICROPY_EVENT_POLL_HOOK so the unix port can build
against modules that require this.
2020-04-29 16:37:46 +10:00
Sean Cross 1d0781bf12 nrf: add simmel board
This adds support for Simmel, an nRF52833-based bluetooth tracking
board designed to aid in pandemic tracing.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-29 11:40:00 +08:00
Scott Shawcroft 2d7cf4b792
Merge pull request #2819 from hierophect/stm32-readme
STM32: Add port readme, make flash
2020-04-28 12:32:03 -07:00
Max Holliday b2de5a9df9 fixing my goofy gcc-arm local stuff 2020-04-28 12:24:10 -07:00
Max Holliday 6c4decd4e2 decoupling chip specific functions from EXTERNAL_FLASH_QSPI_SINGLE 2020-04-28 11:51:07 -07:00
Max Holliday baad9c11df Merge branch 'master' into non-standard-nvm_cleanup 2020-04-28 11:42:58 -07:00
TG-Techie b9e494b85a add submodule to TG-Watch02A 2020-04-28 00:03:02 -04:00
Scott Shawcroft b7804f450b
Fix stm32746g_discovery
Also, rename it so that matches the other board names.
2020-04-27 20:34:42 -07:00
Scott Shawcroft e45de39998
Fix nucleo_f746zg build 2020-04-27 20:28:05 -07:00
TG-Techie 76b466a38a add submodule to TG-Watch02A 2020-04-27 22:49:30 -04:00
Lucian Copeland 2a0e176a77 Add readme and dfu-flashing 2020-04-27 20:51:47 -04:00
Scott Shawcroft de42e4af02
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-27 17:43:32 -07:00
Scott Shawcroft 40a1f3edbc
Merge pull request #2811 from jepler/update-ulab
ulab: actually update the submodule
2020-04-27 17:41:43 -07:00
Scott Shawcroft 755d404edf
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-27 16:45:10 -07:00
Dan Halbert faa50df05f
Merge pull request #2817 from jepler/stm-linker-scripts
Standardize on FLASH_FIRMWARE section name in linker scripts
2020-04-27 18:43:26 -04:00
Jeff Epler 7f0f0b30d3 linker scripts: Re-align at ":"
With "git show -b" you can verify that this is a whitespace only change
because the diff will be empty.
2020-04-27 17:17:42 -05:00
Max Holliday 86943ca8a1 Merge remote-tracking branch 'adafruit/master' 2020-04-27 13:51:51 -07:00
Jeff Epler 7eff89e9f9 linker scripts: Re-align at ":"
With "git show -b" you can verify that this is a whitespace only change
because the diff will be empty.
2020-04-27 12:47:52 -05:00
hierophect d9e4155815
Merge branch 'master' into stm32f7_os 2020-04-27 12:58:15 -04:00
Mark Olsson 31d8e46063 Enables os on STM32F7
os.uname() works
os.urandom() doesn't work yet, will enable in another PR
2020-04-27 18:18:43 +02:00
Mark Olsson f9096d83ac Enables PulseIO on STM32F7
Tested on nucleo_f746zg
2020-04-27 17:55:07 +02:00
Jeff Epler 6f6dc835d2 litex: Use FLASH_FIRMWARE instead of FLASH in linker scripts
for compatibility with the build_memory_info script
2020-04-27 09:12:45 -05:00
Damien George e08ca78f40 py/stream: Remove mp_stream_errno and use system errno instead.
This change is made for two reasons:

1. A 3rd-party library (eg berkeley-db-1.xx, axtls) may use the system
   provided errno for certain errors, and yet MicroPython stream objects
   that it calls will be using the internal mp_stream_errno.  So if the
   library returns an error it is not known whether the corresponding errno
   code is stored in the system errno or mp_stream_errno.  Using the system
   errno in all cases (eg in the mp_stream_posix_XXX wrappers) fixes this
   ambiguity.

2. For systems that have threading the system-provided errno should always
   be used because the errno value is thread-local.

For systems that do not have an errno, the new lib/embed/__errno.c file is
provided.
2020-04-27 23:58:46 +10:00
Jeff Epler 808b456927 mimxrt10xx: Use FLASH_FIRMWARE instead of FLASH_TEXT in linker scripts
for compatibility with the build_memory_info script

This change was scripted:
    git grep -l FLASH_TEXT | xargs sed -i s/FLASH_TEXT/FLASH_FIRMWARE/
2020-04-27 08:07:47 -05:00
Jeff Epler aff42defda stm: Use FLASH_FIRMWARE instead of FLASH_TEXT in linker scripts
for compatibility with the build_memory_info script

This change was scripted:
    git grep -l FLASH_TEXT | xargs sed -i s/FLASH_TEXT/FLASH_FIRMWARE/
2020-04-27 08:07:28 -05:00
Jeff Epler 485f667141 ulab: disable on espruino pico
this non-"express" board is nearly full.  Right now it's actually possible
just to disable the "compare" module, but as this leaves it packed
pretty full I prefer to fully disable it in order to avoid the topic
returning again soon.
2020-04-27 07:47:05 -05:00
Scott Shawcroft 9e4b94f466
Merge pull request #2805 from tannewt/update_tinyusb
Update tinyusb
2020-04-26 20:55:36 -07:00
hierophect 652a5de242
Merge pull request #2809 from k0d/stm32f767xx_fix
Adds missing declarations in periph.h for stm32f767xx
2020-04-25 14:16:34 -04:00
Mark Olsson 8814dd038e Adds missing declarations in periph.h for stm32f767xx 2020-04-25 19:50:48 +02:00
Scott Shawcroft 67c053e9c4
Add USB include for LiteX 2020-04-24 17:24:05 -07:00
Scott Shawcroft 5c7f6e6211
Remove empty #if and add missing includes. 2020-04-24 11:48:55 -07:00
Mark Olsson 91fbbcab19 adds support for the stm32f746g_disco board 2020-04-24 16:43:39 +02:00
Dan Halbert 5a22a5d016
Merge pull request #2598 from hierophect/stm32-docfix
Add stm to docs matrix
2020-04-24 10:07:15 -04:00
Dan Halbert 982a755eae
Merge pull request #2801 from simmel-project/nrf-s140-7.0.1
Add NRF S140 7.0.1
2020-04-23 21:59:51 -04:00
Lucian Copeland bd0df9e3bc Minor redundancy fix 2020-04-23 17:43:35 -04:00
Lucian Copeland c6c77726e7 Merge remote-tracking branch 'upstream/master' into stm32-docfix 2020-04-23 13:39:48 -04:00
Lucian Copeland 8791ca6af3 implement requested changes 2020-04-23 13:33:41 -04:00
hierophect ead7c6c887
Merge pull request #2785 from k0d/ports_nucleo_f746zg
STM32: adds support for stm32f746xx MCU and the nucleo_f746zg board
2020-04-23 12:32:44 -04:00
Mark Olsson 83cc9783cc STM32: adds support for stm32f746xx MCU and the nucleo_f746zg board 2020-04-23 10:48:27 +02:00
stijn 84fa3312cf all: Format code to add space after C++-style comment start.
Note: the uncrustify configuration is explicitly set to 'add' instead of
'force' in order not to alter the comments which use extra spaces after //
as a means of indenting text for clarity.
2020-04-23 11:24:25 +10:00
stijn d6243568a0 all: Remove commented-out include statements. 2020-04-23 11:24:15 +10:00
Thorsten von Eicken 1ae7e0e561 esp32: Consolidate check_esp_err functions and add IDF error string.
This commit consolidates a number of check_esp_err functions that check
whether an ESP-IDF return code is OK and raises an exception if not.  The
exception raised is an OSError with the error code as the first argument
(negative if it's ESP-IDF specific) and the ESP-IDF error string as the
second argument.

This commit also fixes esp32.Partition.set_boot to use check_esp_err, and
uses that function for a unit test.
2020-04-23 10:59:07 +10:00
Scott Shawcroft f13de32208
Add HSE_VALUE for STM feather. 2020-04-22 14:37:24 -07:00
Lucian Copeland d0a2106547 Remove old build flags, add fixes for shared_matrix 2020-04-22 16:06:08 -04:00
Scott Shawcroft b277944cf0
Fix STM so it matches the correct RTC fields. 2020-04-22 11:10:51 -07:00
Thorsten von Eicken a177831c46 esp32/modesp32: Add idf_heap_info(capabilities) to esp32 module.
This commit adds an idf_heap_info(capabilities) method to the esp32 module
which returns info about the ESP-IDF heaps.  It's useful to get a bit of a
picture of what's going on when code fails because ESP-IDF can't allocate
memory anymore.  Includes documentation and a test.
2020-04-23 00:02:11 +10:00
Sean Cross 689dd61379 nrf: nrf52833: use s140 v7.0.1
Previously, we were using v6.1.1 which worked, but was unsupported.
v7.0.1 is the first version of s140 that supports the nRF52833.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-22 13:34:11 +08:00
Sean Cross 09bef7b0e1 nrf: bluetooth: add s140 v7.0.1
This is the first version with official support for nRF52833.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-22 13:33:39 +08:00
Dan Halbert 2f86e31501 fix calculation of nrf firmware size 2020-04-22 00:52:54 -04:00
Dan Halbert fbc8719fad ringbuf tested 2020-04-21 22:40:12 -04:00
Dan Halbert 77cd93ac2d merge from adafruit 2020-04-21 17:47:51 -04:00
Dan Halbert 38ec3bc574 further ringbuf cleanup 2020-04-21 17:38:20 -04:00
Scott Shawcroft dcb0e50f04
Fix USB midi and hid disable. 2020-04-21 14:15:44 -07:00
Scott Shawcroft 5cc8a3ec82
Add back fake us delay. 2020-04-21 14:14:49 -07:00
Scott Shawcroft 17d038830d
Use our own flag for board crystal config. 2020-04-21 14:14:30 -07:00
Sean Cross c04e6d6f52 nrf: bleio: parameterize softradio configuration
Allow for setting various softradio memory settings as part of a
board in order to support lower-memory configurations.  If a
parameter is unspecified then the previously-defined value is used.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 12:29:59 +08:00
Sean Cross 3537ad4059 nrf: mpconfigport: support configuration of various sizes
Conditionally set variables such as the softdevice RAM size, bootloader
size, and the spi m3 buffer size.  This allows ports to adjust these
values to suit their needs.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 12:29:58 +08:00
Sean Cross 33720af0c6 nrf: mpconfigport: subtract config size from firmware size
The BLE Config area needs to be subtracted from the size of the firmware.
THis is because the firmware is counted by walking backwards from the end
of memory, and the BLE config area is placed lower in memory than the
firmware.  Subtracting the BLE config size ensures the internal flash
filesystem doesn't try to use the firmware as storage.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 12:29:57 +08:00
Sean Cross 3ed5b87b8f nrf: add support for nrf52833
This adds preliminary support for the nRF52833, which is a variant of
the nRF52840 with half the RAM, half the flash, and fewer peripherals.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 12:29:56 +08:00
Sean Cross 4ad1cbeea3 nrf: make rgbmatrix and framebufferio optional
Ports can set CIRCUITPY_RGBMATRIX and CIRCUITPY_FRAMEBUFFERIO to 0
in their .mk file in order to prevent these from being built.  This
is necessary for resource-constrained devices.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 10:44:21 +08:00
Sean Cross 066f486b28 nrf: supervisor: support building without BUSIO
Only initialize i2c, spi, and uart if building with BUSIO.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 10:44:20 +08:00
Sean Cross ac9d336f40 nrf: make neopixel support optional
Add a conditional around the call to neopixel_write(), allowing us
to build for nrf without neopixel support.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-21 09:56:27 +08:00
Scott Shawcroft bebf27e733
Merge remote-tracking branch 'adafruit/master' into lower_power
This isn't perfect and needs a bit more testing.
2020-04-20 18:25:13 -07:00
Scott Shawcroft a4d86b96fd
Merge pull request #2777 from pewpew-game/master
Fix RGB/BGR colors in Stage
2020-04-20 15:25:29 -07:00
Mark Olsson 506f340c7d STM32: f767: Fixes linker settings. 2020-04-20 19:15:18 +02:00
Andrew Leech 8ee2e1fdbc stm32/mboot: Expose custom DFU USB VID/PID values at makefile level.
In mboot, the ability to override the USB vendor/product id's was added
back in 5688c9ba09.  However, when the main
firmware is turned into a DFU file the default VID/PID are used there.
pydfu.py doesn't care about this but dfu-util does and prevents its use
when the VID/PID don't match.

This commit exposes BOOTLOADER_DFU_USB_VID/PID as make variables, for use
on either command line or mpconfigboard.mk, to set VID/PID in both mboot
and DFU files.
2020-04-18 23:02:00 +10:00
stijn 30840ebc99 all: Enable extra conversion warnings where applicable.
Add -Wdouble-promotion and -Wfloat-conversion for most ports to ban out
implicit floating point conversions, and add extra Travis builds using
MICROPY_FLOAT_IMPL_FLOAT to uncover warnings which weren't found
previously.  For the unix port -Wsign-comparison is added as well but only
there since only clang supports this but gcc doesn't.
2020-04-18 22:42:28 +10:00
stijn 70affd9ba2 all: Fix implicit floating point to integer conversions.
These are found when building with -Wfloat-conversion.
2020-04-18 22:42:24 +10:00
stijn bcf01d1686 all: Fix implicit conversion from double to float.
These are found when building with -Wfloat-conversion.
2020-04-18 22:42:24 +10:00
stijn 0ba68f8a1d all: Fix implicit floating point promotion.
Initially some of these were found building the unix coverage variant on
MacOS because that build uses clang and has -Wdouble-promotion enabled, and
clang performs more vigorous promotion checks than gcc.  Additionally the
codebase has been compiled with clang and msvc (the latter with warning
level 3), and with MICROPY_FLOAT_IMPL_FLOAT to find the rest of the
conversions.

Fixes are implemented either as explicit casts, or by using the correct
type, or by using one of the utility functions to handle floating point
casting; these have been moved from nativeglue.c to the public API.
2020-04-18 22:36:14 +10:00
stijn b909e8b2dd Revert "all: Fix implicit casts of float/double, and signed comparison."
This reverts commit a2110bd3fc.  There's
nothing inherently wrong with it, but upcoming commits will apply similar
fixes in a slightly different way.
2020-04-18 22:36:06 +10:00
Jeff Epler 5fcc6d6286 RGBMatrix: finish renaming from Protomatter
This gets all the purely internal references.  Some uses of
protomatter/Protomatter/PROTOMATTER remain, as they are references
to symbols in the Protomatter C library itself.
2020-04-17 18:44:07 -05:00
Jeff Epler 3d6258f63d Rename Protomatter -> RGBMatrix
This is a quick rename, it changes the user-facing names but not the
internal names of things.
2020-04-17 18:43:57 -05:00
Jeff Epler a32337718d Rename _protomatter -> protomatter
I originally believed that there would be a wrapper library around it,
like with _pixelbuf; but this proves not to be the case, as there's
too little for the library to do.
2020-04-17 18:43:57 -05:00
Scott Shawcroft 7e3d4c61b5
Update TinyUSB and add interrupt hooks. 2020-04-17 14:16:49 -07:00
hierophect 1a71c8c515
Merge pull request #2735 from hierophect/stm32x7-setup
STM32: Add F7 and H7 Support
2020-04-17 13:02:09 -04:00
Radomir Dopieralski 43022d8294 Add copyrights to pewpew m4 and ugame board.c 2020-04-17 09:50:11 +02:00
Lucian Copeland 9e49fc13f4 startup file crash fix, H7 bin fix 2020-04-16 17:33:48 -04:00
Scott Shawcroft 5b0d9bdeb0
Update copyright to bump the CI 2020-04-16 14:21:26 -07:00
Scott Shawcroft b3552efc76
Remove accidental file 2020-04-16 11:28:01 -07:00
Martin Fischer 28833690bb stm32/mboot/README: Clarify that mboot can access FAT formatted FS only. 2020-04-16 16:28:07 +10:00
Martin Fischer 7942d0b688 stm32/storage: Fix start address of second, internal block device. 2020-04-16 16:25:20 +10:00
Sean Cross 61f777c9c6 litex: enable binascii and ujson modules
Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-16 10:02:08 +08:00
Sean Cross bb527ac9ea litex: disable minimal build
Manually specify available modules and disable any modules
that are currently unsupported on the litex target.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-16 09:26:08 +08:00
Sean Cross db3933429a litex: add os module
Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-16 09:26:08 +08:00
Sean Cross 6885ffc9af litex: mphalport: add fake mp_hal_delay_us
Add a mp_hal_delay_us, which is required by some of the modules,
that simply calls mp_hal_delay_ms / 1000.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-16 09:26:08 +08:00
Radomir Dopieralski f39ca6052e Fix RGB/BGR colors in Stage
This makes the colors used by the stage library compatible with those
used by the displayio library.
2020-04-15 23:41:38 +02:00
Lucian Copeland 00b2e6a1db Fix korea translation error, minor submodule change 2020-04-15 13:11:14 -04:00
Lucian Copeland 54abfc2e8b translations-merge 2020-04-15 10:29:05 -04:00
Lucian Copeland 6427994b14 Implement requested changes 2020-04-15 10:22:51 -04:00
Scott Shawcroft b580b34cbf
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-14 17:14:44 -07:00
Scott Shawcroft 7dfcae6067
Tweaks from jepler 2020-04-14 17:09:48 -07:00
Jeff Epler 23bced26da samd: actually disable protomatter timer
Just setting the timer handler to NO_INTERRUPT doesn't stop the
interrupt from occurring.
2020-04-14 18:24:58 -05:00
Jeff Epler 759fdffda5 Update ports/atmel-samd/boards/pyportal_titano/board.c
Co-Authored-By: Scott Shawcroft <scott@tannewt.org>
2020-04-14 18:24:58 -05:00
Jeff Epler 1d8a073c05 nrf: protomatter port 2020-04-14 18:24:58 -05:00
Jeff Epler 09dc46a984 Add Protomatter and FramebufferDisplay 2020-04-14 18:24:54 -05:00
Jeff Epler a51d4f7a45 pycubed: add trailing newline to file
POSIX specifies that text files end in a trailing newline
2020-04-14 18:24:54 -05:00
Damien George f534b99765 esp32: Update to ESP IDF v3.3.2. 2020-04-14 23:30:03 +10:00
Jeff Epler db01f88cc3 enable MICROPY_PY_REVERSE_SPECIAL_METHODS where ulab is enabled 2020-04-13 19:58:52 -05:00
Lucian Copeland 83a55f65a4 Implement cache-based reads 2020-04-13 15:14:38 -04:00
Lucian Copeland 426d2afe28 Fix pin mapping for the H7 Nucleo 2020-04-13 14:36:49 -04:00
Lucian Copeland 6227e63cc5 Merge remote-tracking branch 'upstream/master' into stm32x7-setup 2020-04-13 12:03:56 -04:00
Lucian Copeland 5ac38c95cc Various requested fixes 2020-04-13 12:03:05 -04:00
Damien George 8e048d2548 all: Clean up error strings to use lowercase and change cannot to can't.
Now that error string compression is supported it's more important to have
consistent error string formatting (eg all lowercase English words,
consistent contractions).  This commit cleans up some of the strings to
make them more consistent.
2020-04-13 22:19:37 +10:00
David Lechner 1bbc15dd15 unix/Makefile: Fix regression using install on non-GNU systems.
This was fixed previously in 31fc81d3b8 but
regressed in 4af79e7694.

Fixes #5885.
2020-04-13 22:11:36 +10:00
Jim Mussared c2cfbcc8d4 unix: Implement MICROPY_BEGIN/END_ATOMIC_SECTION protection macros.
This macro is used to implement global serialisation, typically by
disabling IRQs.  On the unix port, if threading is enabled, use the
existing thread mutex (that protects the thread list structure) for this
purpose.  Other places in the code (eg the scheduler) assume this macro
will provide serialisation.
2020-04-13 21:44:09 +10:00
Jim Mussared 45cf76465c unix: Fix behaviour of COPT/NDEBUG for unix variants.
Based on eg 1e6fd9f2b4, it's understood that
the intention for unix builds is that regular builds disable assert, but
the coverage build should set -O0 and enable asserts.

It looks like this didn't work (even before variants were introduced, eg at
v1.11) -- coverage always built with -Os and -DNDEBUG.

This commit makes it possible for variants to have finer-grained control
over COPT flags, and enables assert() and -O0 on coverage builds.

Other variants already match the defaults so they have been updated.
2020-04-13 21:20:32 +10:00
Sabas cac4fb0318
Merge branch 'master' into nfc_copy 2020-04-09 17:05:11 -05:00
sabas1080 49771b4d7f Update to v1.3 2020-04-09 14:27:51 -05:00
Lucian Copeland 92a0621e59 Add busio support, cleanup 2020-04-09 13:43:19 -04:00
Damien George d6f80963df esp32/espneopixel: Use integer arithmetic to compute timing values. 2020-04-09 16:23:34 +10:00
Damien George e292296d52 py/objexcept: Remove optional TimeoutError exception.
TimeoutError was added back in 077812b2ab for
the cc3200 port. In f522849a4d the cc3200
port enabled use of it in the socket module aliased to socket.timeout.  So
it was never added to the builtins.  Then it was replaced by
OSError(ETIMEDOUT) in 047af9b10b.

The esp32 port enables this exception, since the very beginning of that
port, but it could never be accessed because it's not in builtins.

It's being removed: 1) to not encourage its use; 2) because there are a lot
of other OSError subclasses which are not defined at all, and having
TimeoutError is a bit inconsistent.

Note that ports can add anything to the builtins via MICROPY_PORT_BUILTINS.
And they can also define their own exceptions using the
MP_DEFINE_EXCEPTION() macro.
2020-04-09 16:09:38 +10:00
Scott Shawcroft 01941c027b
Fix up STM
Enable the Alarm IRQ earlier and correct bit clearing.
2020-04-08 14:41:57 -07:00
Scott Shawcroft d0a25ca9ac
Tweaks based on dhalberts feedback 2020-04-08 10:49:46 -07:00
Max Holliday 181ecf4a9b fixing my goofy CROSS_COMPILE fix 2020-04-07 21:54:46 -07:00
Max Holliday a53a26be70 missed a debug flag 2020-04-07 18:24:53 -07:00
Max Holliday 826837186c adds standard (non-queued) SPI support to QSPI for external flash 2020-04-07 18:17:25 -07:00
Scott Shawcroft 6544bf52fb
Enable SNVS interrupt
The iMX RT has a separate wake up controller, the GPC, that replaces
the NVIC when asleep. It adds the ability to only wake up on certain
interrupts. It seems that it requires at least one enabled interrupt
in the NVIC to turn on it's wake up circuitry. It doesn't need to
be the same interrupt as the wake up signal. For example, the RTC
in the SNVS can wake us up if a USB interrupt is enabled. Before
then it won't work. So, we enable the SNVS interrupt on start up
so it can wake us up.
2020-04-07 17:15:18 -07:00
Scott Shawcroft aae0ce6bad
Fix autoreload and ticks on IMX RT 2020-04-07 14:16:07 -07:00
Scott Shawcroft a8dfba235c
Fix alarm so that it is correctly set. 2020-04-07 13:07:29 -07:00
Scott Shawcroft c0ba2a839f
Updates based on feedback from jepler 2020-04-06 16:03:31 -07:00
arturo182 08f369ea96 mimxrt1011: Only re-init SPI when it's actually needed
If some crazy code (*cough* FourWire) decides to reconfigure the bus
before every transfer, it might get a bit slow...
2020-04-06 22:10:12 +02:00
Jim Mussared 073b9a5eb8 ports: Enable error text compression for various ports, but not all.
Enabled on: bare-arm, minimal, unix coverage/dev/minimal, stm32, esp32,
esp8266, cc3200, teensy, qemu-arm, nrf.  Not enabled on others to be able
to test the code when the feature is disabled (the default case).

Code size change for this commit:

   bare-arm:  -600 -0.906%
minimal x86:  -308 -0.208%
   unix x64:    +0 +0.000%
unix nanbox:    +0 +0.000%
      stm32: -3368 -0.869% PYBV10
     cc3200: -1024 -0.558%
    esp8266: -2512 -0.368% GENERIC
      esp32: -2876 -0.205% GENERIC[incl -3168(data)]
        nrf: -1708 -1.173% pca10040
       samd:    +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
2020-04-05 15:02:06 +10:00
Jim Mussared def76fe4d9 all: Use MP_ERROR_TEXT for all error messages. 2020-04-05 15:02:06 +10:00
Jim Mussared 92c83bd16b windows: Update genhdr.targets to match makeqstrdefs.py args. 2020-04-05 14:29:49 +10:00
Jim Mussared 1921224272 extmod/modubinascii: Make code private and module self-contained.
This commit makes all functions and function wrappers in modubinascii.c
STATIC and conditional on the MICROPY_PY_UBINASCII setting, which will
exclude the file from qstr/ compressed-string searching when ubinascii is
not enabled.  The now-unused modubinascii.h header file is also removed.

The cc3200 port is updated accordingly to use this module in its entirety
instead of providing its own top-level definition of ubinascii.

This was originally like this because the cc3200 port has its own ubinascii
module which referenced these methods.  The plan appeared to be that the
API might diverge (e.g. hardware crc), but this should be done similar to
I2C/SPI via a port-specific handler, rather than the port having its own
definition of the module.  Having a centralised module definition also
enforces consistency of the API among ports.
2020-04-05 14:13:53 +10:00
Jim Mussared 994c1dd57a stm32/Makefile: Add missing ordering dependency on generated headers. 2020-04-05 14:12:59 +10:00
Damien George 312c699491 esp32: Change from FAT to littlefs v2 as default filesystem.
This commit changes the default filesystem type for esp32 to littlefs v2.
This port already enables both VfsFat and VfsLfs2, so either can be used
for the filesystem, and existing systems that use FAT will still work.
2020-04-04 17:03:30 +11:00
Damien George 497ca99eb2 esp8266/makeimg.py: Print out info about RAM segments when building fw. 2020-04-04 16:30:39 +11:00
Damien George e0905e85a7 esp8266: Change from FAT to littlefs v2 as default filesystem.
This commit changes the esp8266 boards to use littlefs v2 as the
filesystem, rather than FAT.  Since the esp8266 doesn't expose the
filesystem to the PC over USB there's no strong reason to keep it as FAT.
Littlefs is smaller in code size, is more efficient in use of flash to
store data, is resilient over power failure, and using it saves about 4k of
heap RAM, which can now be used for other things.

This is a backwards incompatible change because all existing esp8266 boards
will need to update their filesystem after installing new firmware (eg
backup old files, install firmware, restore files to new filesystem).

As part of this commit the memory layout of the default board (GENERIC) has
changed.  It now allocates all 1M of memory-mapped flash to the firmware,
so the filesystem area starts at the 2M point.  This is done to allow more
frozen bytecode to be stored in the 1M of memory-mapped flash.  This
requires an esp8266 module with 2M or more of flash to work, so a new board
called GENERIC_1M is added which has the old memory-mapping (but still
changed to use littlefs for the filesystem).

In summary there are now 3 esp8266 board definitions:
- GENERIC_512K: for 512k modules, doesn't have a filesystem.
- GENERIC_1M: for 1M modules, 572k for firmware+frozen code, 396k for
  filesystem (littlefs).
- GENERIC: for 2M (or greater) modules, 968k for firmware+frozen code,
  1M+ for filesystem (littlefs), FAT driver also included in firmware for
  use on, eg, external SD cards.
2020-04-04 16:30:36 +11:00
Scott Shawcroft e99cf6e441
Rework sleep timing
It didn't account for background task time and could end up
sleeping for way longer than it should because the RTC compare time
had already passed.
2020-04-03 18:07:56 -07:00
Scott Shawcroft 7e69d30c02
Fix nRF PulseIn 2020-04-03 14:22:56 -07:00
Lucian Copeland 9761672d42 Linker file restructure, TCM and MPU additions 2020-04-03 16:33:18 -04:00
Scott Shawcroft 46af4bdd0e
Fix SAMD21 PulseIn 2020-04-02 17:35:52 -07:00
Lucian Copeland 47a5d83267 Implement F7 Nucleo 2020-04-02 11:47:16 -04:00
Jim Mussared e97bb58f0e esp32/README.md: Fix typo in venv instructions. 2020-04-02 22:52:48 +11:00
Sean Cross 9845a064ad ports: fomu: move more functions into ram for stability
The SPI flash on current Fomu firmware is slow.  Circuitpython runs
XIP from SPI flash, and so execution time can also be slow.  Ordinarily
this isn't a problem, however certain operations are time-sensitive.

In particular, USB function needs to be handled quickly in order to
prevent the host from re-enumerating the device.

Place several critical TinyUSB structures into RAM, as well as several
hot functions that are frequently called.  This reduces execution time
at the expense of system memory, and greatly improves system stability.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-04-02 11:21:22 +08:00
Lucian Copeland 2f764ded63 merge and docs 2020-04-01 13:52:53 -04:00
Lucian Copeland a89928c13c Implement requested changes 2020-04-01 13:02:05 -04:00
Scott Shawcroft 77562a2acd
Update the supported ports 2020-03-31 18:27:55 -07:00
Scott Shawcroft 75b7f583d2
Update LiteX APIs for new tick 2020-03-31 17:52:23 -07:00
Scott Shawcroft 1071924701
Fix thunderpack build 2020-03-31 17:05:37 -07:00
Scott Shawcroft 317b96e93a
Fix iMX builds 2020-03-31 17:00:30 -07:00
Scott Shawcroft 8fe512c7e9
Merge remote-tracking branch 'adafruit/master' into lower_power 2020-03-31 15:13:58 -07:00
Scott Shawcroft 4b063aeb29
Hack up STM32 PulseIn so it builds 2020-03-31 15:12:11 -07:00
Scott Shawcroft f47b964c5f
Merge pull request #2726 from xobs/fomu-circuitpython
ports: litex: add port and fomu board
2020-03-31 13:51:09 -07:00
Scott Shawcroft cbe9512691
Merge pull request #2741 from tannewt/fix_packetbuffer_server
Fix PacketBuffer server support
2020-03-31 13:39:34 -07:00
Sean Cross c69f7f8657 ports: litex: use dfu.py instead of dfu-suffix.py
dfu.py now generates proper dfu suffixes without the nonstandard prefix.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 13:04:59 +08:00
Sean Cross 34ea140783 ports: fomu: build dfu as part of Makefile
Now that we have a replacement for `dfu-suffix`, construct a dfu
image rather than a UF2 image.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 11:42:55 +08:00
Sean Cross 065441e58c ports: litex: enable itcm region for fomu
This adds a new command line flag -DFOMU to indicate we're building
for a Fomu board.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 09:40:38 +08:00
Sean Cross 786e79ebc9 ports: litex: add port and fomu board
This adds support for Litex, along with support for the Fomu FPGA board.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-03-31 09:40:38 +08:00
Scott Shawcroft e8cffcf978
Merge pull request #2740 from arturo182/mimxrt10xx_neopixel
mimxrt10xx: Fix neopixel_write
2020-03-30 17:49:14 -07:00
arturo182 13022be299 mimxrt10xx: Fix neopixel_write 2020-03-31 01:05:03 +02:00
Damien George 8fff0b0acd unix/mpthreadport: Ensure enough thread stack to detect overflow.
Following up to 5e6cee07ab, some systems (eg
FreeBSD 12.0 64-bit) will crash if the stack-overflow margin is too small.
It seems the margin of 8192 bytes (or thereabouts) is always needed.  This
commit adds this much margin if the requested stack size is too small.

Fixes issue #5824.
2020-03-31 09:35:46 +11:00
David Lechner a2110bd3fc all: Fix implicit casts of float/double, and signed comparison.
These were found by buiding the unix coverage variant on macOS (so clang
compiler).  Mostly, these are fixing implicit cast of float/double to
mp_float_t which is one of those two and one mp_int_t to size_t fix for
good measure.
2020-03-30 12:04:21 +11:00
Brian Dean 7cfa8e1a68 board_vina_m0:pins.c: PGM_LED is on PA28 not PA15. 2020-03-29 18:59:00 -04:00
Lucian Copeland e2be069686 Support cached internal flash on the H743 2020-03-28 18:30:46 -04:00
Damien George 1a3e386c67 all: Remove spaces inside and around parenthesis.
Using new options enabled in the uncrustify configuration.
2020-03-28 23:36:44 +11:00
Jeff Epler 54e8c63b4f
Merge pull request #2730 from tannewt/fix_fourwire_phase_polarity
Add polarity and phase to FourWire.
2020-03-28 07:28:37 -05:00
Damien George 83461e37d4 stm32/boards: Disable pend_throw, uheapq, utimeq on small-flash boards.
These are mainly used by the previous version of uasyncio which is now
replaced by a newer version, with built-in C module _uasyncio.  Saves about
1300 bytes of flash.
2020-03-28 13:55:59 +11:00
Damien George 09154f585f stm32/mpconfigport.h: Make most extended modules configurable by board. 2020-03-28 13:46:35 +11:00
Scott Shawcroft a4a458943d
Correct MIMXRT sdk version 2020-03-27 15:40:17 -07:00
Scott Shawcroft 798118b74f
Update board.c's to remove remaining tick.h 2020-03-27 14:52:35 -07:00
Scott Shawcroft e4c4a4a3de
Swap to committed dependencies 2020-03-27 14:39:59 -07:00
Scott Shawcroft b043384949
Update built in display init 2020-03-27 14:35:29 -07:00
Lucian Copeland 7995bcac40 Flash additions 2020-03-27 14:15:33 -04:00
Brian Dean 7fa38e8725 Update board name to bdmicro_vina_m0 to eliminate hyphens. 2020-03-27 13:37:59 -04:00
David Lechner 9418611c8a unix: Implement PEP 475 to retry syscalls failing with EINTR.
https://www.python.org/dev/peps/pep-0475/

This implements something similar to PEP 475 on the unix port, and for the
VfsPosix class.

There are a few differences from the CPython implementation:
- Since we call mp_handle_pending() between any ENITR's, additional
  functions could be called if MICROPY_ENABLE_SCHEDULER is enabled, not
  just signal handlers.
- CPython only handles signal on the main thread, so other threads will
  raise InterruptedError instead of retrying.  On MicroPython,
  mp_handle_pending() will currently raise exceptions on any thread.

A new macro MP_HAL_RETRY_SYSCALL is introduced to reduce duplicated code
and ensure that all instances behave the same.  This will also allow other
ports that use POSIX-like system calls (and use, eg, VfsPosix) to provide
their own implementation if needed.
2020-03-27 14:40:46 +11:00
David Lechner 5e6cee07ab unix/mpthreadport: Fix crash when thread stack size <= 8k.
The stack size adjustment for detecting stack overflow in threads was not
taking into account that the requested stack size could be <= 8k, in which
case the subtraction would overflow.  This is fixed in this commit by
ensuring that the adjustment can't be more than the available size.

This fixes the test tests/thread/thread_stacksize1.py which sometimes
crashes with a segmentation fault because of an uncaught NLR jump, which is
a "maximum recursion depth exceeded" exception.

Suggested-by: @dpgeorge
2020-03-27 13:59:18 +11:00
Brian Dean 14a1e5756e Merge branch 'master' of https://github.com/adafruit/circuitpython 2020-03-26 20:28:54 -04:00
Brian Dean 2ae9edcbff Add new board BDMICRO 'Vina M0'.
ports/atmel-samd/boards/bdmicro_vina_m0/board.c
ports/atmel-samd/boards/bdmicro_vina_m0/mpconfigboard.h
ports/atmel-samd/boards/bdmicro_vina_m0/mpconfigboard.mk
ports/atmel-samd/boards/bdmicro_vina_m0/board.c

This board includes the newly added MX25L51245G 64MB SPI flash chip
for the CircuitPython file system. Also included is the PCF2129T/2,518
high accuracy, battery backed, RTC. Also includes an independent USB
HOST connector in addition to USB DEVICE making it easy to connect USB
peripherals. Designed mainly as a general purpose module to piggy back
onto application-specific boards, it can also run low power standalone
in harsh environments for data logging and other control applications
using an appropriate enclosure.

Has been extensively tested with CircuitPython and works well.
2020-03-26 20:15:54 -04:00
Lucian Copeland 348df4be2b Merge remote-tracking branch 'upstream/master' into stm32x7-setup 2020-03-26 18:16:11 -04:00
Lucian Copeland c4db8b87e2 Add F7 and H7 Support to the STM32 port
Restructures the STM port of Circuitpython to be more generic about the STM32 chip lines to support
the F7 and H7 series of chips. Adds the new Packages directory to organize different chip layouts
between lines. Makes general changes to the Makefile to condense board-level flags to the minimum
and support the new chip series. Adds the new chip line to the Peripherals directory, along with
new python tools used to generate peripheral text automatically in the tools/ directory.
2020-03-26 18:01:17 -04:00
Scott Shawcroft aec3b2419b
Merge pull request #2733 from oshwabadge2020/change_backlight
Add backlight polarity flag to Display
2020-03-26 14:00:47 -07:00
Scott Shawcroft 3959548054
Merge pull request #2734 from theacodes/add-flash-for-sol
Add GD25Q64C as a flash chip for Sol
2020-03-26 13:27:56 -07:00
Thea Flowers ff67571e9a Add GD25Q64C as a flash chip for Sol 2020-03-26 12:33:27 -07:00
Damien George dbba6b05dc stm32/mpconfigport.h: Remove unused root pointer for BTstack bindings.
This was a cut-and-paste error from the NimBLE bindings.
2020-03-27 00:30:37 +11:00
siddacious 9e0c00dfd4 adding a backlight polarity flag to Display 2020-03-25 22:51:20 -07:00
siddacious 7bba79363a allowing backlight change 2020-03-25 22:41:23 -07:00
Scott Shawcroft 8a5d3cd6c4
Add exception on small buffer and fix Connecion WRITE handling 2020-03-25 17:41:47 -07:00
arturo182 18c12e7822 mimxrt10xx: Return proper UART read length when everything was read 2020-03-26 00:15:48 +01:00
Scott Shawcroft 3551b769a2
Fix connection handle tracking in PacketBuffer when a server. 2020-03-25 13:31:18 -07:00
Scott Shawcroft 59eb35da30
Merge pull request #2727 from burtyb/commander-1
Add support for Commander
2020-03-25 11:00:11 -07:00
Damien George ad004db662 esp32: Enable and freeze uasyncio. 2020-03-26 01:25:46 +11:00
Damien George 1d4d688b3b esp8266: Enable and freeze uasyncio.
Only included in GENERIC build.
2020-03-26 01:25:46 +11:00
Damien George 35e2dd0979 stm32: Enable and freeze uasyncio. 2020-03-26 01:25:45 +11:00
Damien George 91dd3948e8 unix: Enable uasyncio C helper module on coverage build. 2020-03-26 01:25:45 +11:00
Damien George f05ae416ff stm32/softtimer: Initialise pairing-heap node before pushing to heap. 2020-03-26 01:21:04 +11:00
Damien George f9741d18f6 unix/coverage: Init all pairheap test nodes before using them. 2020-03-26 01:21:04 +11:00
Damien George ab00f4c44e qemu-arm: Set default board as mps2-an385 to get more flash for tests.
And use Ubuntu bionic for qemu-arm Travic CI job.
2020-03-26 01:21:04 +11:00
Damien George f8fc78691d py/mpconfig.h: Enable MICROPY_MODULE_GETATTR by default.
To enable lazy loading of submodules (among other things), which is very
useful for MicroPython libraries that want to have optional subcomponents.

Disabled explicitly on minimal ports.
2020-03-26 01:21:04 +11:00
Scott Shawcroft ea0ce39962
Simplify STM a bit. 2020-03-24 15:49:24 -07:00
Scott Shawcroft 5e1e4d32db
Get basic sleep going on the iMX RT 1011 2020-03-24 15:46:10 -07:00
Chris Burton 5e559be9b5 Remove Adafruit_CircuitPython_CircuitPlayground 2020-03-24 21:10:34 +00:00
Scott Shawcroft f414f2b588
Merge pull request #2723 from jgillick/jgillick/circuitpython/stm32f411
Add new STM board: Thunderpack
2020-03-24 12:27:20 -07:00
William Moser c961ed9025 Added 31250 and 56000 to baudrate_map in UART.c, to parallel definitions in nrfx/mdk/nrf*_bitfields.h files 2020-03-24 13:25:02 -04:00
Zoltán Vörös c5cc64175b ports: Add lib/libm/roundf.c to bare-metal Makefile's.
This function is not used by the core but having it as part of the build
allows it to be used by user C modules, or board extensions.  The linker
won't include it in the final firmware if it remains unused.
2020-03-25 01:22:00 +11:00
Damien George bf4fb16250 esp32/modsocket: Handle poll of a closed socket.
This gets tests/extmod/uselect_poll_basic.py working on the esp32.
2020-03-25 01:17:12 +11:00
David Lechner d0edaf88a3 windows/windows_mphal: Fix missing semicolon. 2020-03-25 00:59:34 +11:00
David Lechner 3b07736b6d unix,windows: Use STDIN_FILENO, STDOUT_FILENO macros where appropriate.
This replaces 0 and 1 with STDIN_FILENO and STDOUT_FILENO to make the
intention of the code clearer.
2020-03-25 00:59:05 +11:00
David Lechner 100012bec6 windows: Remove custom definition of MP_PLAT_PRINT_STRN.
This removes the port-specific definition of MP_PLAT_PRINT_STRN on the
windows port, so that the default mp_hal_stdout_tx_strn_cooked() is always
used.  This fixes releasing the GIL during the call to write() (this was
missed in bc3499f010).

Also, mp_hal_dupterm_tx_strn() was defined but never used anywhere so it is
safe to delete it.
2020-03-25 00:56:38 +11:00
David Lechner b1066a9f96 unix: Remove custom definition of MP_PLAT_PRINT_STRN.
This removes the port-specific definition of MP_PLAT_PRINT_STRN on the unix
port.  Since fee7e5617f this is no longer a
single function call so we are not really optimising anything over using
the default definition of MP_PLAT_PRINT_STRN which calls
mp_hal_stdout_tx_strn_cooked().
2020-03-25 00:54:18 +11:00
Damien George 9fa32169e9 esp8266/modnetwork: Add support for wlan.ifconfig('dhcp').
Fixes issue #5780.
2020-03-25 00:43:04 +11:00
Damien George feb2577585 all: Remove spaces between nested paren and inside function arg paren.
Using new options enabled in the uncrustify configuration.
2020-03-25 00:39:46 +11:00
stijn f62cc41fac windows/msvc: Fix warnings regarding function declarations.
Fix missing mkdir and gettimeofday declarations, then silence msvc-specific
compiler warning C4996: 'The POSIX name for this item is deprecated'.
2020-03-25 00:38:11 +11:00
Maureen Helm 76a5b3a97a zephyr: Update machine.Pin class to use new zephyr gpio api.
Zephyr v2.2 reworked its gpio api to support linux device tree bindings and
pin logical levels.  This commit updates the zephyr port's machine.Pin
class to replace the deprecated gpio api calls with the new supported gpio
api.  This resolves several build warnings.

Tested on frdm_k64f and mimxrt1050_evk boards.
2020-03-25 00:29:42 +11:00
Damien George 40255aff23 stm32/mboot: Remove unnecessary test for led being 1 in led_state.
The "led" argument is always a pointer to the GPIO port, or'd with the pin
that the LED is on, so testing that it is "1" is unnecessary.  The type of
"led" is also changed to uint32_t so it can properly hold a 32-bit pointer.
2020-03-25 00:10:32 +11:00
Andrew Leech 9dd470b768 stm32/mboot: Update LED0 state from systick handler.
Updating the LED0 state from systick handler ensures LED0 is always
consistent with its flash rate regardless of other processing going on in
either interrupts or main.  This improves the visible stability of the
bootloader, rather than LED0 flashing somewhat randomly at times.

This commit also changes the LED0 flash rate depending on the current state
of DFU, giving slightly more visual feedback on what the device is doing.
2020-03-25 00:08:32 +11:00
jgillick 8ed4deee9d Rename pins 2020-03-23 23:06:55 -07:00
Scott Shawcroft a8ed6d993c
Switch iMX RT to RTC. Untested. 2020-03-23 18:20:58 -07:00
Scott Shawcroft 653b7619ec
Add back microsecond delay to STM32 2020-03-23 16:09:50 -07:00
Scott Shawcroft c0c4c4403a
Factor out stm32f4xx_hal_conf.h 2020-03-23 14:46:25 -07:00
jgillick 29ce756709 PR feedback. 2020-03-22 18:41:19 -07:00
jgillick a79ac35173 Rename NVM_BYTEARRAY_BUFFER_SIZE 2020-03-22 15:20:58 -07:00
jgillick 68195a8dfe Update NVM_BYTEARRAY_BUFFER_LEN 2020-03-22 15:19:53 -07:00
Chris Burton 39a19d54c2 Add support for Commander 2020-03-22 16:23:56 +00:00
jgillick d76b76cb1d Add non-volatile memory support to STM 2020-03-22 02:22:59 -07:00
jgillick c62b724b24 Merge remote-tracking branch 'circuitpython/master' into jgillick/circuitpython/stm32f412c 2020-03-21 23:36:15 -07:00
Andrew Leech f7130a99b6 stm32/mboot: Protect against invalid address flash writes.
And provide a DFU error message for invalid erases and writes.
2020-03-22 15:23:49 +11:00
Andrew Leech b41d08cf15 stm32/mboot: Update dfu state/status flags to better match standard. 2020-03-22 14:11:16 +11:00
Andrew Leech 03b1ed80e7 stm32/mboot: Allow overriding led_init and led_state in board folder.
Allows for custom functions/logic to display mboot state.
2020-03-22 13:48:45 +11:00
Jim Mussared 9715905b18 esp32/README.md: Update build instructions for newer toolchain.
Also fix Espressif links to the specific version they apply to.
2020-03-22 13:26:03 +11:00
Jim Mussared 0cd13081df esp8266/README.md: Add docker build instructions. 2020-03-22 13:26:03 +11:00
Scott Shawcroft 2623022c84
Initial work for STM32. Need to fix us delay and PulseIn still. 2020-03-20 12:58:34 -07:00
Damien George 8d34344dce esp8266/modmachine: Implement machine.soft_reset().
Fixes issue #5764.
2020-03-20 13:40:01 +11:00
jgillick d9e491a9e8 Remove unnecessary change 2020-03-19 00:02:23 -07:00
jgillick 284073584a Cleanup 2020-03-19 00:01:32 -07:00
jgillick 9be2ab6008 Change the board to use an STM32F411 chip. 2020-03-18 23:55:18 -07:00
Scott Shawcroft 5dc3a8960b
Merge pull request #2719 from theacodes/add-honking-button
Add board support for Winterbloom Big Honking Button
2020-03-18 17:37:59 -07:00
Thea Flowers e027aaf433 Remove some build options, fix order of boards in build.yml 2020-03-18 16:49:10 -07:00
Thea Flowers 7332adfa21 Add board support for Winterbloom Big Honking Button 2020-03-18 16:29:44 -07:00
Damien George 2cdf1d25f5 unix: Remove custom file implementation to use extmod's VFS POSIX one.
The implementation in extmod/vfs_posix_file.c is now equivalent to that in
ports/unix/file.c, so remove the latter and use the former instead.
2020-03-18 21:01:07 +11:00
jgillick 679314a22e Fix disable VBUS sensing. 2020-03-18 00:35:20 -07:00
Damien George ad9a0ec8ab all: Convert exceptions to use mp_raise_XXX helpers in remaining places. 2020-03-18 17:26:19 +11:00
Scott Shawcroft 4603c6ddd7
Merge pull request #2711 from jepler/update-ulab
update ulab
2020-03-17 15:33:08 -07:00
Scott Shawcroft 6db11cf68b
Fix up Spresense build. It doesn't sleep. 2020-03-17 14:21:45 -07:00
Scott Shawcroft d9e68156b2
fix up SAMD21 sleep 2020-03-17 12:10:35 -07:00
Jeff Epler d6342af980 ulab: rename enable macro so it appears in the support matrix 2020-03-17 09:33:03 -05:00
jgillick 24d1fd2bf1 PR Cleanup. 2020-03-17 00:48:19 -07:00
jgillick d41ef45a9b Update clock. 2020-03-17 00:36:18 -07:00
jgillick cbc0e0344d Revert changes to system_stm32f4xx.c 2020-03-17 00:36:12 -07:00
jgillick 07549b7fd9 Bring back trimmed spaces. 2020-03-17 00:27:04 -07:00
Scott Shawcroft c8d9edd939
Merge pull request #2705 from NightSkySK/UARTlogger2
add UARTLogger2 board support for CircuitPython
2020-03-16 16:28:42 -07:00
Lucian Copeland bb3ed3a827 Merge branch 'master' into stm32x7-setup 2020-03-16 12:37:53 -04:00
jgillick 8a93a81a26 Chip specific code. 2020-03-15 22:31:36 -07:00
jgillick 5dbdf72472 Fix LED port. 2020-03-15 19:36:16 -07:00
jgillick f884c2b9b6 Incremental update 2020-03-15 19:34:41 -07:00
jgillick 6f153804da Add initial thunderpack port files. 2020-03-14 00:03:14 -07:00
Scott Shawcroft 76ca13b6ed
Fix SAMD51 pulsein 2020-03-13 17:21:15 -07:00
Scott Shawcroft 7100d5e485
Fix autoreload and ticks in general 2020-03-13 16:13:24 -07:00
Scott Shawcroft df5be65423
Update FrequencyIn for new clock API. 2020-03-13 16:12:52 -07:00
Szymon Klause c9aa50817c add UARTLogger2 board support for CircuitPython 2020-03-13 21:39:17 +01:00
Scott Shawcroft 4fba4eb133
Switch from 1k RTC input to 32k output 2020-03-13 11:16:41 -07:00
Scott Shawcroft 48b5f2a384
Initial work on SAMD 2020-03-13 11:16:41 -07:00
Scott Shawcroft affd3fcc2a
Clear the pending IRQ in the NVIC as well. 2020-03-13 11:16:38 -07:00
Scott Shawcroft 00d5f63e7c
Hopefully fix PulseIn 2020-03-13 11:12:31 -07:00
Scott Shawcroft ed5cdd7e09
Hopefully fix flash flush and hopefully audio as well. 2020-03-13 11:12:31 -07:00
Scott Shawcroft 418333979a
Fix autoreload, neopixel, monotonic_ns and sleep w/o SD 2020-03-13 11:12:31 -07:00
Scott Shawcroft 6f60afe8c5
First try at lowering the power consumption 2020-03-13 11:12:30 -07:00
Scott Shawcroft 3a5f79acef
Merge pull request #2701 from hierophect/stm32-submodule-swap
STM32: Change ST drivers submodule to match TinyUSB
2020-03-13 10:47:54 -07:00
Scott Shawcroft 85f44e20cb
Merge pull request #2695 from TG-Techie/master
Add new TG-Watch02A to the nrf boards directory
2020-03-13 10:46:48 -07:00
Lucian Copeland ef7370d023 Change ST drivers submodule to match TinyUSB 2020-03-12 17:14:09 -04:00
Lucian Copeland 18442c5b00 Merge remote-tracking branch 'upstream/master' into stm32-port-namechange 2020-03-12 15:40:44 -04:00
Lucian Copeland 0155fab356 Revise style on interrupt handler functions 2020-03-12 15:03:47 -04:00
Lucian Copeland bb167f04fa WIP 2020-03-12 14:54:43 -04:00
Lucian Copeland ead32ea6e6 Comment change for CI 2020-03-12 11:21:32 -04:00
TG-Techie 197dc344af fix requested changes 2020-03-12 02:31:13 -04:00
Damien George eae495a714 stm32/main: Fix bug mounting 3rd SD partition.
Fixes issue #5753.
2020-03-12 12:34:31 +11:00
Lucian Copeland 127e531271 remove old directory 2020-03-11 18:16:52 -04:00
Lucian Copeland be7def128a submodule move and sync 2020-03-11 18:16:16 -04:00
Lucian Copeland 53b1544f41 create copy 2020-03-11 18:13:06 -04:00
Lucian Copeland 38064750f9 Merge remote-tracking branch 'upstream/master' into stm32-pulsein 2020-03-11 16:39:11 -04:00
Lucian Copeland 2b161d37df stm32: add PulseIn module 2020-03-11 16:37:40 -04:00
Maureen Helm 110a610f70 zephyr: Execute main.py file if it exists.
Adds support in the zephyr port to execute main.py if the file system is
enabled and the file exists. Existing support for executing a main.py
frozen module is preserved, since pyexec_file_if_exists() works just
like pyexec_frozen_module() if there's no vfs.
2020-03-11 08:30:42 -05:00
Maureen Helm 78c7e4a859 zephyr: Enable usb mass storage class on mimxrt1050_evk.
Enables the zephyr usb device stack and mass storage class on the
mimxrt1050_evk board. The mass storage class is backed by the sdhc disk
access driver, so it's now possible to browse and modify the contents of
the SD card from a USB host (your PC). This is in preparation to support
writing a main.py script to the SD card, and then executing it after the
next reset.
2020-03-11 07:46:41 -05:00
Maureen Helm 5feb54afbb zephyr: Mount a file system during init.
Adds support in the zephyr port to mount a file system if a block device
(sdhc disk access or flash area) is available. The mount point is either
"/sd" or "/flash" depending on the type of block device.

Tested with an sdhc disk access block device and fatfs on the
mimxrt1050_evk board.

Tested with a flash area block device and littlefs on the reel_board.
2020-03-11 07:46:41 -05:00
Damien George 359213fbe1 unix/Makefile: Detect and pass thru mpy-cross flags when running tests. 2020-03-11 20:20:18 +11:00
Andrew Leech 86bfabec11 py/modmicropython: Add heap_locked function to test state of heap.
This commit adds micropython.heap_locked() which returns the current
lock-depth of the heap, and can be used by Python code to check if the heap
is locked or not.  This new function is configured via
MICROPY_PY_MICROPYTHON_HEAP_LOCKED and is disabled by default.

This commit also changes the return value of micropython.heap_unlock() so
it returns the current lock-depth as well.
2020-03-11 16:54:16 +11:00
Jim Mussared 7eea0d8b6c mimxrt: Add MIMXRT1010 board. 2020-03-11 15:36:27 +11:00
Jim Mussared f46782dde9 mimxrt: Add new, minimal port to NXP i.MX RT series CPUs.
This is an extremely minimal port to the NXP i.MX RT, in the style of the
SAMD port  It's largely based on the TinyUSB mimxrt implementation, using
the NXP SDK.  It currently supports the Teensy 4.0 board with a REPL over
the USB-VCP interface.

This commit also adds the NXP SDK submodule (also from TinyUSB) to
lib/nxp_driver.

Note: if you already have the tinyusb submodule initialized recursively you
will need to run the following as the tinyusb sub-submodules have been
rearranged (upstream):

    git submodule deinit lib/tinyusb
    rm -rf .git/modules/lib/tinyusb
    git submodule update --init lib/tinyusb
2020-03-11 15:34:13 +11:00
Jim Mussared 211032a5c9 samd: Fix to build with latest tinyusb. 2020-03-11 15:34:10 +11:00
Damien George ed848553b4 extmod/vfs: Factor out vfs mount-and-chdir helper from stm32. 2020-03-11 14:24:26 +11:00
TG-Techie b967a2071f changed TG-Watch02A HW_BOARD_NAME 2020-03-10 23:07:25 -04:00
TG-Techie 50b451ae0c add TG-Watch02A board def 2020-03-10 22:40:55 -04:00
Thomas Friebel bd746a4630 esp32: Deinitialize Bluetooth on soft reset.
This fixes a crash, caused by NimBLE continuing to call the Python BLE
interrupt handler after soft reboot.
2020-03-11 13:02:00 +11:00
Dan Halbert 6363b5ad06
Merge pull request #2693 from jepler/ulab-enable
ulab: enable on most builds
2020-03-10 09:48:46 -04:00
Damien George a017576706 esp8266/machine_pin: Disable ets_loop_iter during hard IRQ handler.
Otherwise ets_loop_iter may be reentered.  Related to issue #5714.
2020-03-10 16:48:34 +11:00
Jeff Epler 03a2b2faf1 ulab: don't enable on m0 boards 2020-03-09 23:00:21 -05:00
Jeff Epler 66aa0dec60 stm32: enable ulab
This is needed because stm32 defines CIRCUITPY_MINIMAL_BUILD "for early
port".
2020-03-09 15:54:40 -05:00
Jeff Epler e128d770f1 cdx56: prepare to enable ulab
This involves fixing support for SRC_MOD and enabling INTERNAL_LIBM
including adding support for SRC_LIBM.
2020-03-09 15:54:40 -05:00
Damien George e965363b6b stm32: Refactor Bluetooth HCI RX to be independent of transport layer.
Now all HCI specific code (eg UART vs WB55 internal messaging) is confined
to modbluetooth_hci.c.
2020-03-10 01:53:42 +11:00
Damien George 0674917bc5 extmod/btstack: Implement advertising.
Work done in collaboration with Jim Mussared aka @jimmo.
2020-03-10 01:53:42 +11:00
Damien George 51f8591097 stm32/boards/PYBD: Allow building with BTstack (via make command line).
Work done in collaboration with Jim Mussared aka @jimmo.
2020-03-10 01:53:42 +11:00
Damien George 0e95815bfb stm32: Add bindings for BTstack implementation.
Work done in collaboration with Jim Mussared aka @jimmo.
2020-03-10 01:53:42 +11:00
Damien George 894c550c86 stm32: Refactor bluetooth stack/hci/driver bindings.
This makes a cleaner separation between the: driver, HCI UART and BT stack.
Also updated the naming to be more consistent (mp_bluetooth_hci_*).

Work done in collaboration with Jim Mussared aka @jimmo.
2020-03-10 01:53:42 +11:00
TG-Techie fec84054d9 ah 2020-03-06 15:03:37 -05:00
TG-Techie 7198056bc3
Merge pull request #2 from adafruit/5.0.x
5.0.x
2020-03-06 13:57:31 -05:00
TG-Techie 03dfd28121 trying to pull 5.0.x 2020-03-06 13:52:47 -05:00
Damien George c44d52f33e extmod/modbluetooth_nimble: Move nimble specific code, factor nimble.mk.
Move extmod/modbluetooth_nimble.* to extmod/nimble.  And move common
Makefile lines to extmod/nimble/nimble.mk (which was previously only used
by stm32).  This allows (upcoming) btstack to follow a similar structure.

Work done in collaboration with Jim Mussared aka @jimmo.
2020-03-06 12:35:20 +11:00
Damien George 44aa5b2200 stm32/modnetwork: Remove redundant call to nimble_poll in lwip poll.
The bluetooth stack has its own dedicated polling function, see
mod_bluetooth_nimble_poll_wrapper().
2020-03-06 12:35:20 +11:00
Dan Halbert 210c3274e5 Merge remote-tracking branch 'adafruit/master' into assert_pin-and-mp_const_none-cleanup 2020-03-05 17:47:01 -05:00
Thea Flowers 409a4a9490 Disable the HID USB descriptor for Sol
It's not used and ends up being confusing for folks.
2020-03-04 23:22:46 -08:00
Scott Shawcroft b4e1955526
Merge pull request #2583 from jepler/ulab
Add 'ulab' as an extmod; enable on nrf and most samd51 boards
2020-03-04 11:46:17 -08:00
Scott Shawcroft 4aec5d1e83
Merge pull request #2680 from hierophect/stm32-clock-hotfix
STM32: Fix restriction on GPIO clock enables for F407 Discovery board
2020-03-04 11:43:33 -08:00
Jeff Epler da31acfcc4 Merge remote-tracking branch 'origin/master' into ulab 2020-03-03 20:13:53 -06:00
Damien George 3e0b46b9af unix/file: Don't raise OSError(EINVAL) on sys.stdin/out/err.flush().
sys.stdout.flush() is needed on CPython to flush the output, and the change
in this commit makes such an expression also work on MicroPython (although
MicroPython doesn't actual need to do any flushing).
2020-03-04 12:39:55 +11:00
Lucian Copeland 55e13715a9 Expand GPIO clock enables for F405 and F407 2020-03-03 17:21:47 -05:00
hierophect 3178462218
Merge branch 'master' into stm32-pulseout 2020-03-03 15:03:19 -05:00
Scott Shawcroft 2fea811c30
Merge pull request #2672 from jepler/fuzz
Makefiles: add targets to build unix port, mpy-cross for fuzzing
2020-03-03 11:36:53 -08:00
Scott Shawcroft 17458ad81a
Merge pull request #2662 from jepler/issue2332
Fix unaligned disk reads properly
2020-03-03 11:27:50 -08:00
Lucian Copeland eb71bfe9d3 Exclude SoCs without basic timers 2020-03-02 11:22:40 -05:00
Jeff Epler 74bf17bb0d Makefiles: add targets to build unix port, mpy-cross for fuzzing
This assumes you have properly install afl-fuzz with afl-clang-fast.
Tested with AFLplusplus 2.60c-75-g2c6847b.
2020-03-01 11:48:33 -06:00
Jeff Epler dc64857a7d
Merge branch 'master' into ulab 2020-02-29 21:54:39 -06:00
Dan Halbert 8435935429 update uses of assert_pin_free; remove redundant checks 2020-02-29 15:37:32 -05:00
Lucian Copeland 611ef27ac2 stm32: Add PulseOut support
Matches the implementations of the NRF and Atmel ports. TIM7 is used as it does not have a tied pin. Contains some register micromanagement since HAL support for the TIM7 timer is limited.
2020-02-29 14:47:47 -05:00
Dan Halbert b6206406de new pin validation routines; don't use mp_const_none if NULL will do 2020-02-28 23:43:04 -05:00
arturo182 0af00cf914 Freeze adafruit_requests and adafruit_esp32spi into feather_m7_1011 2020-02-29 00:39:22 +01:00
arturo182 3f26a0b06b Freeze adafruit_requests and adafruit_esp32spi into feather_mimxrt1011 2020-02-29 00:26:39 +01:00
Jeff Epler eef742bf45 oofatfs: Remove _FS_DISK_READ_ALIGNED
This workaround is no longer needed, so it can be removed.

Closes: #2332
2020-02-28 10:04:28 -06:00
Jeff Epler 1e6c08fc30 nrf: sqpi_flash: Handle unaligned reads 2020-02-28 10:03:37 -06:00
TG-Techie 527eb2444c added TG-Watch02A pins 2020-02-28 04:11:54 -05:00
TG-Techie 6d4ffc69fd add TG-Watch02A 2020-02-28 02:52:46 -05: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 3f39d18c2b all: Add *FORMAT-OFF* in various places.
This string is recognised by uncrustify, to disable formatting in the
region marked by these comments.  This is necessary in the qstrdef*.h files
to prevent modification of the strings within the Q(...).  In other places
it is used to prevent excessive reformatting that would make the code less
readable.
2020-02-28 10:31:07 +11:00
Damien George 73670ef281 unix/unix_mphal: Adjust #if in mp_hal_stdin_rx_chr to improve format. 2020-02-28 10:30:28 +11:00
Jeff Epler fa3b9eba92 ulab: Incorporate it 2020-02-27 11:03:03 -06:00
Jeff Epler 4c710cf13b unix port: add help(), help('modules') 2020-02-27 08:31:01 -06:00
Dave Marples 09a3153bf4 Fix I2C clock divider 2020-02-27 14:08:39 +00:00
arturo182 1b33cd11fc
Merge pull request #2658 from mubes/spi_fixes
Fix SPI clock speed on mimxrt10xx family & mimxrt1020 pinmux fixups
2020-02-26 16:37:05 +01:00
Dave Marples aadb0bfc1e Fix SPI clock speed on mimxrt10xx family & mimxrt1020 pinmux fixup 2020-02-26 14:28:54 +00:00
ladyada 86e9fd170a move red LED to D13 and make D3 lsm6ds IRQ 2020-02-25 18:00:23 -05:00
jepler f20255813f samd51 thing plus: new port
testing performed:
 * successfully store and retrieve a 500kB file on the flash
 * square wave output on each pin appears on o'scope
 * board.SPI(), board.SERIAL(), board.I2C() all construct
2020-02-25 11:52:23 -06:00
Scott Shawcroft 28c7a1e9c3
Fix crash after empty REPL session
We were trying to reset bluetooth when it was off and then trying
to raise an exception without the heap.
2020-02-24 16:11:17 -08:00
Dan Halbert dcc8abf74e
Merge pull request #2638 from fgallaire/master
Arduino Nano 33 IoT support
2020-02-22 00:12:06 -05:00
Florent Gallaire 96db16a7a2 Last NINA pins 2020-02-22 04:30:18 +01:00
Dan Halbert f63b2c0d0c use realloc instead 2020-02-21 17:36:15 -05:00
Dan Halbert 9cf46ec947 put neopixel_write buffer in root pointers 2020-02-21 08:44:25 -05:00
hahmadi b169904254 stm32/mpconfigport.h: Add option to have custom help text.
Define MICROPY_PY_BUILTINS_HELP_TEXT in <yourboard>/mpconfigboard.h for a
custom help text.
2020-02-21 15:02:19 +11:00
Dan Halbert 23d6a3dc1f merge from upstream 2020-02-20 22:27:16 -05:00
Florent Gallaire 39ec5d0e51 Add NINA pins 2020-02-21 01:34:52 +01:00
Dan Halbert 634d246910 relicense nrf SPI.c to MIT 2020-02-20 16:00:21 -05:00
Scott Shawcroft 1e7ec1b952
Merge pull request #2641 from arturo182/feather_m7_1011
mimxrt10xx: Add Feather M7 1011 board config
2020-02-20 10:15:57 -08:00
arturo182 feac87901a mimxrt10xx: Enable displayio
Closes #2466
2020-02-19 22:26:00 +01:00
arturo182 aa0cf38084 mimxrt10xx: Add Feather M7 1011 board config 2020-02-19 22:08:08 +01:00
Scott Shawcroft 4552aff125
Merge pull request #2629 from mubes/rtsctsrs485
Addition of RTS/CTS/RS485 capability
2020-02-19 10:35:57 -08:00
Damien George 410757f4f4 unix/mphalport.h: Fix build when MICROPY_USE_READLINE=0.
If the built-in input() is enabled (which it is by default) then it needs
some form of readline, so supply it with one when MICROPY_USE_READLINE=0.

Fixes issue #5658.
2020-02-20 00:45:58 +11:00
Jim Mussared a9ce8dfdaa esp32: Move to IDF 4.0 release version. 2020-02-20 00:34:31 +11:00
David Lechner 4adcaa4423 unix/mpthreadport: Fix Mac build by using SIGUSR1 if SIGRTMIN not avail.
Some platforms, like Apple, don't define SIGRTMIN, so fall back to SIGUSR1
in such a case.

Fixes #5659.
2020-02-20 00:30:08 +11:00
Florent Gallaire fba0b302ff Add Arduino Nano 33 IoT support 2020-02-19 08:56:06 +01:00
Florent Gallaire 63bcd52a5a Add Arduino Nano 33 IoT documentation 2020-02-19 08:50:27 +01:00
Dan Halbert 1f148242db
Merge pull request #2605 from maholli/master
New board: PyCubed + updates to SAM32 board
2020-02-18 22:01:41 -05:00
Dave Marples 24405cabaf Edits as a result of review 2020-02-19 00:07:01 +00:00
Dave Marples 490a808bf6 Addition of stubs for rs485/CTS/RTS handling on non-implemented chips 2020-02-18 23:16:40 +00:00
Dave Marples f0e5341b0f Addition of support for imxt1010, 1050 and 1060 families 2020-02-18 23:16:40 +00:00
Dave Marples d388899985 Addition of RS485 support 2020-02-18 23:16:40 +00:00
Dave Marples 84ad3d8393 Addition of RTS/CTS/RS485 UART functionality 2020-02-18 23:16:40 +00:00
Max Holliday 2b79d8ffe9 adding PWM to board.c for external WDT 2020-02-18 14:16:54 -08:00
Scott Shawcroft 2063867899
Merge pull request #2618 from mubes/alignment-warning
Fix alignment warning
2020-02-18 13:54:24 -08:00
Andrew Leech 3fe83e4318 stm32/sdram: Fix compile issue from unused sdram startup test flag. 2020-02-18 14:22:03 +11:00
David Lechner 3bd2ae1a36 unix/mpthreadport: Use SIGRTMIN+5 instead of SIGUSR1 for thread-GC.
This changes the signal used to trigger garbage collection from SIGUSR1 to
SIGRTMIN + 5.  SIGUSR1 is quite common compared to SIGRTMIN (measured by
google search results) and is more likely to conflict with libraries that
may use the same signal.

POSIX specifies that there are at least 8 real-time signal so 5 was chosen
as a "random" number to further avoid potential conflict with libraries
that may use SIGRTMIN or SIGRTMAX.

Also, if we ever have a `usignal` module, it would be nice to leave SIGUSR1
and SIGUSR2 free for user programs.
2020-02-18 13:32:42 +11:00
Damien George ac8383a95d nrf: Use MICROPY_HW_ENABLE_RNG instead of MICROPY_PY_RANDOM_HW_RNG.
The "random" module no longer uses the hardware RNG (the extmod version of
this module has a pseudo-random number generator), so the config option
MICROPY_PY_RANDOM_HW_RNG is no longer meaningful.  This commit replaces it
with MICROPY_HW_ENABLE_RNG, which controls whether the hardware RNG is
included in the build.
2020-02-18 12:43:16 +11:00
Damien George 6ad3bb1e12 nrf: Remove custom "random" module and use extmod version instead.
Hardware RNG code is moved to drivers/rng.[ch].
2020-02-18 12:43:16 +11:00
Max Holliday 93760042fa no current need for NVM 2020-02-16 11:43:19 -08:00
cccc 4f3e5ea934 nrf/drivers/bluetooth: Fix variable initialisation error with older gcc.
Without this change, arm-none-eabi-gcc version 4.9.3 (at least) would give
a "missing braces around initializer" error.
2020-02-16 23:46:27 +11:00
David Lechner 4af79e7694 unix/Makefile: Allow to install all variants of the executable.
The install target is current broken when PROG is used to override the
default executable name.  This fixes it by removing the redundant TARGET
variable and uses PROG directly instead.

The install and uninstall targets are also moved to the common unix
Makefile so that all variants can be installed in the same way.
2020-02-16 23:37:40 +11:00
David Lechner c5f4268c99 unix/variants/standard: Fix role of PREFIX when used to install.
Currently it is not possible to override PREFIX when installing micropython
using the makefile.  It is common practice to be able to run something like
this:

    $ make install PREFIX=/usr DESTDIR=/tmp/staging

This fixes such usage.
2020-02-16 23:35:52 +11:00
Dave Marples 77ad9aff3c Formatting updates 2020-02-16 00:40:04 +00:00
Damien George baf11f237b unix/Makefile: Remove old variant targets that are no longer needed.
To eliminate confusion about what targets to use when building.
2020-02-16 00:15:57 +11:00
Dave Marples d13f04f953 Updated formatting 2020-02-14 23:02:02 +00:00
Dan Halbert dc97b0d844 correct chec^Cfor flash erase boundaries 2020-02-13 17:41:05 -05:00
Scott Shawcroft e97b0cfc61
Merge pull request #2581 from jamesbowman/master
First draft of eveL, the low-level module of the Gameduino bindings
2020-02-13 11:21:32 -08:00
Scott Shawcroft a0760206c6
Merge pull request #2597 from hierophect/stm32-espruino-wifi
STM32: Espruino Wifi
2020-02-13 11:17:59 -08:00
Dan Halbert a65ca3ab19
Merge pull request #2617 from dhalbert/nrf-large-spi-transactions
use properly-sized SPI transactions
2020-02-12 23:29:29 -05:00
Damien George ad7213d3c3 py: Add mp_raise_msg_varg helper and use it where appropriate.
This commit adds mp_raise_msg_varg(type, fmt, ...) as a helper for
nlr_raise(mp_obj_new_exception_msg_varg(type, fmt, ...)).  It makes the
C-level API for raising exceptions more consistent, and reduces code size
on most ports:

   bare-arm:   +28 +0.042%
minimal x86:  +100 +0.067%
   unix x64:   -56 -0.011%
unix nanbox:  -300 -0.068%
      stm32:  -204 -0.054% PYBV10
     cc3200:    +0 +0.000%
    esp8266:   -64 -0.010% GENERIC
      esp32:  -104 -0.007% GENERIC
        nrf:  -136 -0.094% pca10040
       samd:    +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
2020-02-13 11:52:40 +11:00
Damien George 97eca38c4f py: Add mp_raise_type helper macro and use it where appropriate.
This provides a more consistent C-level API to raise exceptions, ie moving
away from nlr_raise towards mp_raise_XXX.  It also reduces code size by a
small amount on some ports.
2020-02-13 11:03:37 +11:00
Dave Marples 4de2a1eb62 Fix alignment warning 2020-02-12 22:36:34 +00:00
Lucian Copeland afc1c88046 remove bad define 2020-02-12 15:56:24 -05:00
Lucian Copeland fd2982f5c9 revert cross-board flag strategy 2020-02-12 15:12:05 -05:00
Dan Halbert e00b3269fe use properly-sized SPI transactions 2020-02-12 15:04:19 -05:00
Lucian Copeland 6d91ed2156 move defaults to avoid conflict 2020-02-12 14:38:27 -05:00
Lucian Copeland b248486c3b cleanup flag changes 2020-02-12 14:32:50 -05:00
Lucian Copeland b7bb85a4da Merge remote-tracking branch 'upstream/master' into stm32-espruino-wifi 2020-02-12 14:31:08 -05:00
Lucian Copeland 7831c475b9 change flag styling 2020-02-12 14:30:29 -05:00
Scott Shawcroft 35abc48a65
Merge pull request #2589 from hierophect/stm32-temperature-us
STM32: Core temperature and voltage
2020-02-12 10:55:00 -08:00
Scott Shawcroft 01507a91db
Merge pull request #2612 from mubes/loadable-binary
Add directly loadable binary target for imxrt family
2020-02-12 10:41:59 -08:00
hierophect 4bc093675c
Merge branch 'master' into stm32-temperature-us 2020-02-12 12:13:56 -05:00
Dave Marples d0870ce484 Update main .bin output file to be bootable artefact 2020-02-12 09:03:11 +00:00
Dan Halbert 2e029d55fc nrf: add SPIM3 support 2020-02-11 19:22:14 -05:00
Dave Marples f3e4fbd7ba Add directly loadable binary target 2020-02-11 23:01:08 +00:00
Damien George 5a755ac30a esp32/modsocket: Convert EADDRINUSE error code from lwip return value. 2020-02-11 13:59:09 +11:00
stijn 5f91933e54 windows: Improve default search path.
The default value for MICROPYPATH used in unix/main.c is
"~/.micropython/lib:/usr/lib/micropython" which has 2 problems when used in
the Windows port:
- it has a ':' as path separator but the port uses ';' so the entire string
  is effectively discarded since it gets interpreted as a single path which
  doesn't exist
- /usr/lib/micropython is not a valid path in a standard Windows
  environment

Override the value with a suitable default.
2020-02-11 13:34:35 +11:00
stijn 8b6e6008c7 unix/main: Use OS-dependent path separator when searching path. 2020-02-11 13:33:56 +11:00
Scott Shawcroft 8364c60eb2
Merge pull request #2570 from hierophect/stm32-f407-disco
STM32: Add STM32F4Discovery support
2020-02-10 17:19:00 -08:00
Damien George 580fd636c0 nrf/drivers: Use mp_raise_msg where appropriate, and shorten exc msgs.
If the exception doesn't need printf-style formatting then calling
mp_raise_msg is more efficient.  Also shorten exception messages to match
style in core and other ports.
2020-02-11 11:45:14 +11:00
Lucian Copeland c4436910c3 create F407 specific files 2020-02-10 12:44:23 -05:00
Max Holliday 80ba4c8661
Merge pull request #2 from adafruit/master
merging from upstream
2020-02-10 09:41:16 -08:00
Lucian Copeland 3f700e7e68 fix missing parameter 2020-02-10 12:16:00 -05:00
Lucian Copeland b4c60c3355 Merge remote-tracking branch 'upstream/master' into stm32-espruino-wifi 2020-02-10 11:52:32 -05:00
Lucian Copeland baf8d9ef5f Merge remote-tracking branch 'upstream/master' into stm32-temperature-us 2020-02-10 11:45:49 -05:00
Drew Fustini 3bf4b42e2e change OH20 badge pin defs to use SWn for buttons
Rather than use A, B, C and D

Use the buttons according to silkscreen references:
SW1
SW2
SW3
SW4
2020-02-10 00:49:13 +01:00
Drew Fustini 0a54f88751 add pin defs for buttons on the OHS2020 badge 2020-02-10 00:32:16 +01:00
Max Holliday b91c4e66cb adding Adafruit_CircuitPython_Register to frozen + updating SAM32 2020-02-08 16:09:47 -08:00
Max Holliday 84fa0c187e adding new board - PyCubed
open source and radiation tested hardware + software platform for small satellites called CubeSats. See pycubed.org for more info. See quickstart.pycubed.org for lots of circuitpython examples
2020-02-08 15:33:25 -08:00
hierophect b93d6e861b
Merge pull request #2596 from hierophect/stm32-espruino-pico
STM32: Espruino Pico
2020-02-07 14:14:49 -05:00
Scott Shawcroft 51004f8336
Merge pull request #2601 from dhalbert/monotonic_ns-improvement
Monotonic ns improvement; time.sleep rounds to nearest msec
2020-02-07 11:03:37 -08:00
Limor "Ladyada" Fried 71672fd244
Merge pull request #2599 from ladyada/master
update rotation so 0 is the default, for much faster ondiskbitmaps
2020-02-07 12:59:30 -05:00
Dan Halbert b245f9ca5b
Merge pull request #2591 from neubauek/master
Added CircuitBrains Basic and Deluxe Boards
2020-02-07 12:47:20 -05:00
Dan Halbert 005c4caf8c fix function defs for compiler 2020-02-07 10:32:37 -05:00
Dan Halbert 857d8ab40a improve time.monotonic_ns() accuracy from ms to us 2020-02-07 10:02:50 -05:00
Damien George ce40abcf21 stm32/usbd_cdc_interface: Remove "interrupt_char != -1" check.
It's not needed.  The C integer implicit promotion rules mean that the
uint8_t of the incoming character is promoted to a (signed) int, matching
the type of interrupt_char.  Thus the uint8_t incoming character can never
be equal to -1 (the value of interrupt_char that indicate that interruption
is disabled).
2020-02-07 16:08:37 +11:00
Damien George 046ae80bdf unix, windows: Use mp_keyboard_interrupt instead of custom code.
The mp_keyboard_interrupt() function does exactly what is needed here, and
using it gets ctrl-C working when MICROPY_ENABLE_SCHEDULER is enabled on
these ports (and MICROPY_ASYNC_KBD_INTR is disabled).
2020-02-07 16:08:33 +11:00
Damien George abe2caf6df py/scheduler: Move clearing of kbd traceback to mp_keyboard_interrupt.
This is a more logical place to clear the KeyboardInterrupt traceback,
right before it is set as a pending exception.  The clearing is also
optimised from a function call to a simple store of NULL.
2020-02-07 16:08:31 +11:00
Damien George f4641b2378 esp32/uart: Use core-provided mp_keyboard_interrupt, placed in IRAM. 2020-02-07 16:08:31 +11:00
Damien George 8d0421c3cf esp8266: Put mp_keyboard_interrupt in IRAM.
It was originally in IRAM due to the linker script specification, but
since the function moved from lib/utils/interrupt_char.c to py/scheduler.c
it needs to be put back in IRAM.
2020-02-07 16:08:31 +11:00
Damien George eaf30c516a tests/unix: Add coverage tests for kbd-intr and scheduler. 2020-02-07 16:08:29 +11:00
Damien George 9efb36bfa6 py/scheduler: Move mp_keyboard_interrupt from lib/utils to py core.
This function is tightly coupled to the state and behaviour of the
scheduler, and is a core part of the runtime: to schedule a pending
exception.  So move it there.
2020-02-07 16:08:26 +11:00
Damien George 5a91cd9ff3 lib/utils/pyexec: Handle pending exceptions after disabling kbd intrs.
Pending exceptions would otherwise be handled later on where there may not
be an NLR handler in place.

A similar fix is also made to the unix port's REPL handler.

Fixes issues #4921 and #5488.
2020-02-07 16:08:26 +11:00
Damien George 98a3911c43 py/scheduler: Add "raise_exc" argument to mp_handle_pending.
Previous behaviour is when this argument is set to "true", in which case
the function will raise any pending exception.  Setting it to "false" will
cancel any pending exception.
2020-02-07 16:08:20 +11:00
Maureen Helm 7a5752a748 zephyr: Enable littlefs.
Enables the littlefs (v1 and v2) filesystems in the zephyr port.

Example usage with the internal flash on the reel_board or the
rv32m1_vega_ri5cy board:

import os
from zephyr import FlashArea
bdev = FlashArea(FlashArea.STORAGE, 4096)
os.VfsLfs2.mkfs(bdev)
os.mount(bdev, '/flash')
with open('/flash/hello.txt','w') as f:
    f.write('Hello world')
print(open('/flash/hello.txt').read())

Things get a little trickier with the frdm_k64f due to the micropython
application spilling into the default flash storage partition defined
for this board. The zephyr build system doesn't enforce the flash
partitioning when mcuboot is not enabled (which it is not for
micropython). For now we can demonstrate that the littlefs filesystem
works on frdm_k64f by constructing the FlashArea block device on the
mcuboot scratch partition instead of the storage partition. Do this by
replacing the FlashArea.STORAGE constant above with the value 4.
2020-02-07 11:24:06 +11:00
Maureen Helm 86a66960f9 zephyr: Implement block device protocol via zephyr flash map api.
Introduces a new zephyr.FlashArea class that uses the zephyr flash map
api to implement the uos.AbstractBlockDev protocol. The flash driver is
enabled on the frdm_k64f board, reel_board, and rv32m1_vega_ri5cy board.

The standard and extended block device protocols are both supported,
therefore this class can be used with file systems like littlefs which
require the extended interface.
2020-02-07 11:24:06 +11:00
Maureen Helm 2d7ec8e704 zephyr: Enable fatfs.
Enables the fatfs filesystem in the zephyr port.

Example usage with an SD card on the mimxrt1050_evk board:

import zephyr, os
bdev = zephyr.DiskAccess('SDHC')
os.VfsFat.mkfs(bdev)
os.mount(bdev, '/sd')
with open('/sd/hello.txt','w') as f:
    f.write('Hello world')
print(open('/sd/hello.txt').read())
2020-02-07 11:24:06 +11:00
Maureen Helm a0440b01ea zephyr: Enable virtual file system and uos module.
Enables the virtual file system and uos module in the zephyr port.
No concrete file system implementations are enabled yet.
2020-02-07 11:24:06 +11:00
Maureen Helm cc19cf2549 zephyr: Implement block device protocol via zephyr disk access api.
Introduces a new zephyr.DiskAccess class that uses the zephyr disk
access api to implement the uos.AbstractBlockDev protocol. This can be
used with any type of zephyr disk access driver, which currently
includes SDHC, RAM, and FLASH implementations. The SDHC driver is
enabled on the mimxrt1050_evk board.

Only the standard block device protocol (without the offset parameter)
can be supported with the zephyr disk access api, therefore this class
cannot be used with file systems like littlefs which require the
extended interface. In the future it may be possible to implement the
extended interface in a new class using the zephyr flash api.
2020-02-07 11:24:06 +11:00
Lucian Copeland 41b5f73785 revert mixed up linkers 2020-02-06 18:47:06 -05:00
Lady Ada 789e311b63 update rotation so 0 is the default, for much faster ondiskbitmaps 2020-02-06 16:28:02 -05:00
neubauek d93d491a61 Cleaned up CircuitBrains Basic and Deluxe board definitions 2020-02-06 14:47:22 -06:00
Lucian Copeland 848577e830 Update PID 2020-02-06 12:55:36 -05:00
Lucian Copeland aee26b1c79 Add proper PID 2020-02-06 12:25:17 -05:00
Lucian Copeland 4122f85888 Create board definitions, add to board list 2020-02-06 12:19:19 -05:00
Lucian Copeland 383854ac50 Add espruino pico to board list 2020-02-06 11:25:07 -05:00
Lucian Copeland 08cf152aa8 Document flashing process 2020-02-06 11:11:51 -05:00
Lucian Copeland 698ad745f6 Fix oscillator issue, add button and LED pins 2020-02-06 10:49:03 -05:00
Dan Halbert a63f49cb83
Merge pull request #2592 from tannewt/add_extra_ble_error
Add another error message to BLE
2020-02-05 23:39:17 -05:00
James Bowman acef93a253 Rename eveL to _eve, EVEL to _EVE 2020-02-05 18:17:58 -08:00
Scott Shawcroft 72a1bdab30
Add another error message for extended advertisements at the same
time as scan response. The SD can't do it.
2020-02-05 15:56:17 -08:00
Lucian Copeland cdd1622350 Fix oscillator oversight in clocks.c 2020-02-05 18:12:48 -05:00
Lucian Copeland e28d244a0d Add espruino pico pinout 2020-02-05 18:03:54 -05:00
neubauek f3188669e4 Added CircuitBrains Basic and Deluxe Boards 2020-02-05 14:52:47 -06:00
Lucian Copeland 788464a594 board uses VBUS 2020-02-05 15:45:27 -05:00
Lucian Copeland cedf6489f7 Add voltage ADC, standardize mphalport 2020-02-05 12:39:12 -05:00
Dan Halbert b6da2fa173 nrf: fix i2c frequency setting 2020-02-05 11:25:31 -05:00
Lucian Copeland 4ba050d46d Add ADC for temp sensor 2020-02-04 16:26:24 -05:00
Scott Shawcroft 65045eb3bc
Merge pull request #2568 from hierophect/stm32-loader-linkers
STM32: UF2 build option for STM32F405
2020-02-04 12:21:45 -08:00
Lucian Copeland 6f73126756 add correct PID 2020-02-04 10:46:44 -05:00
Lucian Copeland c1fded5062 Merge branch 'stm32-loader-linkers' into stm32-f407-disco 2020-02-04 10:40:19 -05:00
Lucian Copeland 3ce6fc89a4 Implement new linker for external flash only 2020-02-04 10:38:45 -05:00
Damien George d6a1e45caa stm32/usbd_conf: Allow boards to configure USB HS ULPI NXT/DIR pins. 2020-02-04 23:15:55 +11:00
Andrew Leech ff9a61b5a8 stm32/sdram: Expose the result of sdram startup test in stm32_main.
This means boards can choose to only use it for gc heap if the test passes.
2020-02-04 18:18:41 +11:00
Jim Mussared 0645478475 esp32/Makefile: Reorder includes to build with latest toolchain.
Tested on:
- IDF3.3.1 (old toolchain)
- IDF4.0-beta1 (old toolchain)
- IDF4.0-beta1 (new toolchain from install.sh / export.sh)
2020-02-04 18:06:14 +11:00
David Lechner f1b6e6bb15 unix/modos: Implement putenv and unsetenv to complement getenv.
CPython also has os.environ, which should be used instead of os.getenv()
due to caching in the os.environ mapping.  But for MicroPython it makes
sense to only implement the basic underlying methods, ie getenv/putenv/
unsetenv.
2020-02-04 17:54:31 +11:00
David Lechner 83439e38fc unix/main: Add command-line -h option for printing help text.
This adds a -h option to print the usage help text and adds a new, shorter
error message that is printed when invalid arguments are given.  This
behaviour follows CPython (and other tools) more closely.
2020-02-04 17:54:31 +11:00
David Lechner 5a63bc5a44 unix/main: Add #if guard around -v option usage and document -i/-m opts.
This commit modifies the usage() function to only print the -v option help
text when MICROPY_DEBUG_PRINTERS is enabled.  The -v option requires this
build option to be enabled for it to have any effect.

The usage text is also modified to show the -i and -m options, and also
show that running a command, module or file are mutually exclusive.
2020-02-04 17:53:35 +11:00
David Lechner 122baa6787 unix/main: Add support for MICROPYINSPECT environment variable.
This adds support for a MICROPYINSPECT environment variable that works
exactly like PYTHONINSPECT; per CPython docs:

    If this is set to a non-empty string it is equivalent to specifying the
    -i option.

    This variable can also be modified by Python code using os.environ to
    force inspect mode on program termination.
2020-02-04 17:52:58 +11:00
Maureen Helm bc3ce86a5a zephyr: Remove reference to syscall_macros_h_target.
Zephyr removed the build target syscall_macros_h_target in commit
f4adf107f31674eb20881531900ff092cc40c07f.  Removes reference from
MicroPython to fix build errors in the zephyr port.

This change is not compatible with zephyr v2.1 or earlier.  It will be
compatible with Zephyr v2.2 when released.
2020-02-04 17:10:24 +11:00
Maureen Helm a7663b862e zephyr: Replace deprecated time conversion macro.
The SYS_CLOCK_HW_CYCLES_TO_NS macro was deprecated in zephyr commit
8892406c1de21bd5de5877f39099e3663a5f3af1.  This commit updates MicroPython
to use the new k_cyc_to_ns_floor64 api and fix build warnings in the zephyr
port.

This change is compatible with Zephyr v2.1 and later.
2020-02-04 17:09:59 +11:00
Maureen Helm c25e12d0dd zephyr: Update include paths for Zephyr v2.0.
Zephyr restructured its includes in v2.0 and removed compatibility shims
after two releases in commit 1342dadc365ee22199e51779185899ddf7478686.
Updates include paths in MicroPython accordingly to fix build errors in
the zephyr port.

These changes are compatible with Zephyr v2.0 and later.
2020-02-04 17:09:19 +11:00
Dan Halbert a4ebd2f7c1 allow tuple or list for Palette color 2020-02-03 22:09:53 -05:00
James Bowman 7fd30e7d20 First draft of eveL, the low-level module of the Gameduino (and BridgeTek EVE) bindings.
[adafruit/circuitpython#2578]
2020-02-03 16:46:14 -08:00
Lady Ada 5a29b222eb add bluefruit sense - tested 2020-02-03 13:52:30 -05:00
Michael Welling 64cafe82bc Adjust OHS2020 madctl for default rotation
Make to go faster I guess.

Signed-off-by: Michael Welling <mwelling@ieee.org>
2020-02-02 22:14:10 -08:00
Michael Welling 6804b2a7fd Add I2C pin definitions for interoperability with Adafruit libraries
Signed-off-by: Michael Welling <mwelling@ieee.org>
2020-02-02 22:13:39 -08:00
Michael Welling 33dcdd7c03 Updates to enable working SPI TFT
The backlight enable is active low on our board so the driver doesn't like it.
Toggling to GPIO manually for now.

As fixed the improper SPI bus pins definitions and it works!

Signed-off-by: Michael Welling <mwelling@ieee.org>
2020-02-02 22:13:03 -08:00
Michael Welling d99c2ffe4f QSPI flash fixes
We had the pin names swapped on the schematic and a different flash was populated.

Signed-off-by: Michael Welling <mwelling@ieee.org>
2020-02-02 22:11:12 -08:00
David Lechner 4ab8bee82f unix/main: Print usage and NLR errors to stderr instead of stdout.
When stdout is redirected it is useful to have errors printed to stderr
instead of being redirected.

mp_stderr_print() can't be used in these two instances since the
MicroPython runtime is not running so we use fprintf(stderr) instead.
2020-02-01 22:44:08 +11:00
Lady Ada dc964b346c adjust CLUE madctl so rotation 0 is 'right' 2020-01-31 20:17:39 -05:00
Dan Halbert be4e681d07 fix UICR check; do not use NULL for no MISO 2020-01-31 18:57:41 -05:00
Lucian Copeland fa11912b9b New configuration values 2020-01-31 17:28:42 -05:00
Lucian Copeland 61944ef08e Merge branch 'stm32-loader-linkers' into stm32-f407-disco 2020-01-31 16:38:17 -05:00
Dan Halbert 8258cb851e
Merge pull request #2569 from dhalbert/nrf-increase-connections
increase max BLE connections from 2 to 5
2020-01-31 15:59:27 -05:00
Dan Halbert 4abd5f1f7b increase max connections from 2 to 5 2020-01-31 14:58:23 -05:00
Lucian Copeland cabc3aa90e Merge branch 'stm32-loader-linkers' of https://github.com/hierophect/circuitpython into stm32-loader-linkers 2020-01-31 14:36:03 -05:00
Lucian Copeland 41aefc819b Fix pyboard 2020-01-31 14:35:54 -05:00
Lucian Copeland 19553b8f7c WIP 2020-01-31 14:33:10 -05:00
Lucian Copeland c1cf80180d Merge branch 'stm32-loader-linkers' into stm32-f407-disco 2020-01-31 14:10:21 -05:00
Lucian Copeland ab031bc25f Create basic board profile 2020-01-31 14:04:54 -05:00
hierophect f38e12f0ab
Update ports/stm32f4/boards/STM32F405_boot.ld
Co-Authored-By: Scott Shawcroft <scott@tannewt.org>
2020-01-31 13:56:08 -05:00
Lucian Copeland a10e5d1da2 text fixes 2020-01-31 13:17:43 -05:00
Lucian Copeland 7085d91278 dangling edit 2020-01-31 13:13:51 -05:00
Lucian Copeland b4dcecb266 Add build option for UF2 flash offset 2020-01-31 13:12:58 -05:00
Lucian Copeland d8016bd52b Merge branch 'master' into stm32-loader-linkers 2020-01-31 12:21:46 -05:00
caochaowu 61f64c78a6 nrf/boards/common.ld: Add ENTRY(Reset_Handler) in linker script.
It's not strictly needed but can be helpful when using a debugger.
2020-02-01 00:09:44 +11:00
Damien George e3ff52863b esp8266/modules/ntptime.py: Add comment about configuring NTP host.
The ability to change the host is a frequently requested feature, so
explicitly document how it can be achieved using the existing code.

See issues #2121, #4385, #4622, #5122, #5536.
2020-01-31 23:54:11 +11:00
Damien George af88e70414 stm32/powerctrl: Reenable PLL3 on H7 MCUs when waking from stop mode.
So that USB can work.
2020-01-31 23:25:18 +11:00
Damien George 2c8c2b935e stm32/powerctrl: Improve support for changing system freq on H7 MCUs.
This commit improves pllvalues.py to generate PLL values for H7 MCUs that
are valid (VCO in and out are in range) and extend for the entire range of
SYSCLK values up to 400MHz (up to 480MHz is currently unsupported).
2020-01-31 23:25:18 +11:00
Damien George 03b73ce329 stm32/stm32_it: Don't call __HAL_USB_HS_EXTI_CLEAR_FLAG on H7 MCUs.
It doesn't exist on these MCUs.
2020-01-31 23:25:18 +11:00
Damien George 257b17ec10 stm32/sdio: Add support for H7 MCUs.
The cyw43 driver on stm32 will now work with H7 MCUs.
2020-01-31 23:25:18 +11:00
Dan Halbert 3b95d7c16a add gamepad to specialty cpx builds; update frozen libs 2020-01-30 21:00:47 -05:00
Dan Halbert b6358182d3 Update CLUE to Rev C 2020-01-30 15:22:26 -05:00
Scott Shawcroft 55eb1730b8
Merge remote-tracking branch 'adafruit/master' into tweak_pixelbuf 2020-01-30 10:59:21 -08:00
Scott Shawcroft 298bca3fdd
Merge pull request #2562 from dhalbert/ble-fixes
nrf: track vm_used_ble better
2020-01-30 10:33:19 -08:00
Dan Halbert 87f73e2729 track vm_used_ble better 2020-01-30 09:52:06 -05:00
Damien George 31ba06ce84 stm32/boards/stm32f746_af.csv: Add ADC alt functions to correct pins. 2020-01-30 16:31:11 +11:00
Damien George 68db7e01d8 stm32/powerctrl: Enable overdrive on F7 when waking from stop mode.
Because if the SYSCLK is set to 180MHz or higher it will require this to be
on already.
2020-01-30 16:30:03 +11:00
Damien George 29b84ea798 stm32/powerctrl: Disable HSI if not needed to save a bit of power. 2020-01-30 16:29:45 +11:00
Damien George 96a4435be1 stm32/boards/STM32F769DISC: Add config to use external SPI as filesys.
This board now has the following 3 build configurations:
- mboot + external QSPI in XIP mode + internal filesystem
- mboot + external QSPI with filesystem (the default)
- no mboot + external QSPI with filesystem
2020-01-30 14:40:38 +11:00
Damien George 7bb2bf965e stm32/Makefile: Allow a board's .mk file to add things to CFLAGS. 2020-01-30 14:39:46 +11:00
Andrew Leech 30501d3f54 drivers, stm32: Support SPI/QSPI flash chips over 16MB.
With a SPI flash that has more than 16MB, 32-bit addressing is required
rather than the standard 24-bit.  This commit adds support for 32-bit
addressing so that the SPI flash commands (read/write/erase) are selected
automatically depending on the size of the address being used at each
operation.
2020-01-30 13:18:38 +11:00
Scott Shawcroft 5d24ade5c9
Tweak error messages to reduce code size. 2020-01-29 17:32:07 -08:00
Lucian Copeland 1a25d3ca83 fix merge issue 2020-01-29 18:46:14 -05:00
hierophect 898f4e1f72
Merge branch 'master' into stm32-meowbit 2020-01-29 16:32:08 -05:00
Lucian Copeland 100409961a Move board_init to main.c 2020-01-29 16:29:43 -05:00
Lucian Copeland b9bed98538 Merge stm32-meowbit 2020-01-29 16:05:19 -05:00
Lucian Copeland 8a9c3097e3 Add port-specific requested changes 2020-01-29 16:00:38 -05:00
Lucian Copeland 947c2243bd add feather bootloader settings, cleanup 2020-01-29 15:30:35 -05:00
David Lechner b72cb0ca1b py/mpthread.h: Use strong type for mp_thread_set_state() argument.
This modifies the signature of mp_thread_set_state() to use
mp_state_thread_t* instead of void*.  This matches the return type of
mp_thread_get_state(), which returns the same value.

`struct _mp_state_thread_t;` had to be moved before
`#include <mpthreadport.h>` since the stm32 port uses it in its
mpthreadport.h file.
2020-01-29 17:10:32 +11:00
Damien George a542c6d7e0 stm32/powerctrl: For F7, allow PLLM!=HSE when setting PLLSAI to 48MHz.
PLLM is shared among all PLL blocks on F7 MCUs, and this calculation to
configure PLLSAI to have 48MHz on the P output previously assumed that PLLM
is equal to HSE (eg PLLM=25 for HSE=25MHz).  This commit relaxes this
assumption to allow other values of PLLM.
2020-01-29 16:49:13 +11:00
Lucian Copeland 3c86005546 Implement requested changes 2020-01-28 17:11:25 -05:00
Lucian Copeland ab9483b7fb Add internal display definitions, fails at startup 2020-01-28 16:00:34 -05:00
Wojtek Siudzinski df5e58fc6e Add support for the Particle Ethernet FeatherWing 2020-01-28 10:53:50 +01:00
Scott Shawcroft eb0ef3726f
Merge pull request #2552 from jepler/samd-stereo-single-dma
samd: When possible, use one DMA channel for stereo AudioOut
2020-01-27 14:15:26 -08:00
Scott Shawcroft b36b2493bc
Merge pull request #2532 from tannewt/teensy4-dev
Refine iMX RT memory layout and add three boards
2020-01-27 14:11:08 -08:00
Jeff Epler c8f969feb5 samd: audio-dma: avoid memory allocations
With the previous change, stereo mp3 playback changed from needing
4 2304-byte allocations to needing 2 4604-byte allocations.  This was
enough to cause MemoryErrors with regularity.

By using m_realloc() here, the existing memory region can be used.
m_realloc() also works on the first invocation, because m_realloc(NULL, sz)
just calls m_malloc of sz.
2020-01-27 08:49:41 -06:00
Lady Ada f2dfcee042 add missing displayref 2020-01-26 20:10:20 -05:00
Jeff Epler cb6193bbc7 samd: When possible, use one DMA channel for stereo AudioOut
.. the documentation doesn't make this clear, but in practice it works
to write both of the DATABUF registers at the same time.  This should
also reduce the amount of wear and tear DMA puts on the system, as the
number of transfers is cut in half.  (the number of bytes transferred
remains the same, though)

In principle, this could cover all stereo cases if audio_dma_convert_signed
also learned to 16-bit extend and swap values.  However, this is the
case that matters for stereo mp3 playback on PyGamer.

Testing performed: Listened to some tracks with good stereo separation.
2020-01-26 15:36:24 -06:00
David Lechner d89ed3e62b unix/unix_mphal: Add compile check for incompatible GIL+ASYNC_KBD_INTR.
It is not safe to enable MICROPY_ASYNC_KBD_INTR and MICROPY_PY_THREAD_GIL
at the same time.  This will trigger a compiler error to ensure that it
is not possible to make this mistake.
2020-01-26 23:31:27 +11:00
David Lechner bc3499f010 windows/windows_mphal: Release GIL during system calls.
This releases the GIL during syscalls that could block.
2020-01-26 23:27:40 +11:00
David Lechner fee7e5617f unix: Release GIL during all system calls.
Addition of GIL EXIT/ENTER pairs are:

- modos: release the GIL during system calls.  CPython does this as well.

- moduselect: release the GIL during the poll() syscall.  This call can be
  blocking, so it is important to allow other threads to run at this time.

- modusocket: release the GIL during system calls.  Many of these calls can
  be blocking, so it is important to allow other threads to run.

- unix_mphal: release the GIL during the read and write syscalls in
  mp_hal_stdin_rx_chr and mp_hal_stdout_tx_strn.  If we don't do this
  threads are blocked when the REPL or the builtin input function are used.

- file, main, mpconfigport.h: release GIL during syscalls in built-in
  functions that could block.
2020-01-26 23:21:29 +11:00
Lucian Copeland b5b94b72c1 Return to bootloader options 2020-01-24 14:47:13 -05:00
Lucian Copeland 70932cab42 Simplify the flash-display conflict fix 2020-01-24 14:33:28 -05:00
Lucian Copeland 2afca4e942 Fix flash-display conflict error 2020-01-24 14:25:36 -05:00
Dan Halbert 6f13979c9b pygamer and pybadge boards were not resetting neopixels 2020-01-24 09:32:28 -05:00
Dan Halbert 68f9aee992 reset NeoPixels on CPB on soft reload 2020-01-23 20:16:31 -05:00
Damien George 96716b46e1 unix/Makefile: Reserve CFLAGS_EXTRA/LDFLAGS_EXTRA for external use.
When CFLAGS_EXTRA/LDFLAGS_EXTRA (or anything) is set on the command line of
a make invocation then it will completely override any setting or appending
of these variables in the makefile(s).  This means builds like the coverage
variant will have their mpconfigvariant.mk settings overridden.  Fix this
by using CFLAGS/LDFLAGS exclusively in the makefile(s), reserving the
CFLAGS_EXTRA/LDFLAGS_EXTRA variables for external command-line use only.
2020-01-24 11:51:21 +11:00
Yonatan Goldschmidt 35e664d779 tests/unix: Add coverage tests for mp_obj_is_type() and variants. 2020-01-24 10:57:17 +11:00
Lucian Copeland d8bc57c1dc Flash and display control 2020-01-23 17:17:02 -05:00
Limor "Ladyada" Fried fe70072d68
Merge branch 'master' into ndbit6 2020-01-23 12:32:19 -05:00
ndgarage 4675783545 change-name-to-ndgarage_ndbit6 2020-01-23 09:55:17 -07:00
Damien George 27f41e624c tests/unix: Add coverage test for mp_obj_new_exception_args.
Because it's no longer called anywhere in the code.
2020-01-23 13:37:25 +11:00
Sabas 41a85b71fc init nfc copy 2020-01-22 20:30:33 -06:00
Lucian Copeland e9f9cee4d6 Invert duty cycle intensity 2020-01-22 18:47:41 -05:00
Lucian Copeland 36792926d2 Revert dangling pointer issue in PWMOut 2020-01-22 14:41:37 -05:00
Lucian Copeland b326ee0a3d fix microcontroller pin ommission 2020-01-22 12:12:27 -05:00
Damien George dccace6f3f tests/unix: Add coverage tests for pairheap data structure. 2020-01-22 17:31:18 +11:00
Damien George f70373c7b2 stm32/softtimer: Change linear linked list to a pairing heap. 2020-01-22 17:31:18 +11:00
stijn 599371b133 windows: Support word-based move/delete key sequences for REPL.
Translate common Ctrl-Left/Right/Delete/Backspace to the EMACS-style
sequences (i.e. Alt key based) for forward-word, backward-word, forwad-kill
and backward-kill.  Requires MICROPY_REPL_EMACS_WORDS_MOVE to be defined so
the readline implementation interprets these.
2020-01-22 16:54:19 +11:00
adzierzanowski a55c17dc69 esp32/modnetwork: Add max_clients kw-arg to WLAN.config for AP setting.
This allows the user to configure the maximum number of clients that are
connected to the access point.  Resolves #5125.
2020-01-22 16:43:25 +11:00
Scott Shawcroft 085242bf5c
Use new USB PIDs that aren't used yet. 2020-01-21 18:45:00 -08:00
Scott Shawcroft 87344ff53a
Disable the DCache when USB is initialized. There are still issues enabling it. 2020-01-21 18:32:19 -08:00
Dan Halbert 4923caf85e Increase CPX stack size by 256 2020-01-21 18:53:55 -05:00
Chris Osterwood 97420994e8 Merge remote-tracking branch 'origin/master' into capablerobot-usbhub 2020-01-20 13:11:57 -05:00
Scott Shawcroft 1c39606345
Fix other builds missing new heap bounds functions 2020-01-18 18:06:56 -08:00
Scott Shawcroft 9d5742ebd1
Fix start on power up by providing Reset_Handler ourselves.
On power up the FlexRAM banks are in an unknown config so we can't
rely on the stack until after we configure FlexRAM.
2020-01-18 11:54:01 -08:00
Scott Shawcroft 9f4ea2122a
teensy fixes 2020-01-17 18:35:09 -08:00
Scott Shawcroft 7d8dac9211
Refine iMX RT memory layout and add three boards
Introduces a way to place CircuitPython code and data into
tightly coupled memory (TCM) which is accessible by the CPU in a
single cycle. It also frees up room in the corresponding cache for
intermittent data. Loading from external flash is slow!

The data cache is also now enabled.

Adds support for the iMX RT 1021 chip. Adds three new boards:
* iMX RT 1020 EVK
* iMX RT 1060 EVK
* Teensy 4.0

Related to #2492, #2472 and #2477. Fixes #2475.
2020-01-17 17:36:08 -08:00
Hierophect 3f43155b63 Meowbit bus conflict WIP 2020-01-17 13:31:12 -05:00
arturo182 69785cccfe
mimxrt1011: Fix pin definition 2020-01-17 14:45:29 +01:00
Michael Welling cc77e86408 Update the VID and USB company string
Signed-off-by: Michael Welling <mwelling@ieee.org>
2020-01-16 15:43:49 -08:00