Commit Graph

10692 Commits

Author SHA1 Message Date
Dan Halbert
1768057e87
add HalloWing 2018-08-20 10:52:24 -07:00
Scott Shawcroft
cac760aa6f
Merge pull request #1080 from jepler/uart-ll
UART: Always allocate UART objects in the long-lived pool
2018-08-08 21:36:33 -07:00
Jeff Epler
b0e33f6a11 atmel-samd: UART: allocate rx buffer in long-lived region
This is not strictly needed in order for #1056 to be resolved,
because the "make long-lived" machinery is unaware of this pointer.

However, as UARTs are assumed to be long-lived, this change is
beneficial because it moves the long-lived buffer into the upper
memory area with other long-lived objects, instead of remaining in
the low heap.
2018-08-08 19:21:57 -05:00
Jeff Epler
e1b4e9b7c7 UART: Always allocate UART objects in the long-lived pool
Particularly when they have buffers that are written via IRQ or DMA,
UART objects do not relocate gracefully.  If such an object is
relocated to the long-lived pool after its original creation, the
IRQ or DMA will write to an unexpected location within the Python
heap, leading to a variety of symptoms.  The most frequent symptom
is inability to read from the UART.

Consider the particular case of atmel-samd: usart_uart_obj_t
contains a usart_async_descriptor contains a _usart_async_device.
In _sercom_init_irq_param the address of this contained
_usart_async_device is assigned to a global array
sercom_to_sercom_dev which is later used from the interrupt context
_sercom_usart_interrupt_handler to store the received data in the
right ring buffer.

When the UART object is relocated to the long-lived heap, there's no
mechanism to re-point these internal pointers, so instead take the
cowardly way and allocate the UART object as long-lived.

Happily, almost all UART objects are likely to be long-lived, so
this is unlikely to have a negative effect on memory usage or heap
fragmentation.

Closes: #1056
2018-08-08 19:21:57 -05:00
Dan Halbert
2e80f37709
Merge pull request #1096 from tannewt/tune_neopixel
Retune neopixel timings on SAMD51. They were too slow.
2018-08-07 21:33:12 -04:00
Scott Shawcroft
b0dd645e27
Retune neopixel timings on SAMD51. They were too slow.
Fixes #1083
2018-08-07 16:58:37 -07:00
Scott Shawcroft
08def6b51e
Merge pull request #1052 from dhalbert/speed-up-dict-long-lived
Prevent repetitive recursive scanning of dicts when making them long-…
2018-07-23 18:17:08 -07:00
Dan Halbert
be1d882a8b Prevent repetitive recursive scanning of dicts when making them long-lived 2018-07-19 15:19:21 -04:00
Kattni
85a5276f36
Merge pull request #1006 from dhalbert/3.x-fix-pull
must set pull after setting direction with gpio_set_pin routines
2018-07-09 17:53:47 -04:00
Dan Halbert
8bb363f7c4 must set pull after setting direction with gpio_set_pin routines 2018-07-09 17:18:06 -04:00
Scott Shawcroft
fba2d9fa6c
Merge pull request #993 from dhalbert/update_crickit_libs-3
update Crickit library to fix stepper Drive issues
2018-07-05 17:45:22 -07:00
Dan Halbert
53d821332f update Crickit library to fix stepper Drive issues 2018-07-05 17:35:20 -04:00
Scott Shawcroft
ff0a6f4ec3
Merge pull request #986 from tannewt/include_rtc_fix
include RTC fix for SAMd51 in circuitpython build
2018-07-03 14:16:48 -07:00
Scott Shawcroft
074c5ea144
Merge pull request #977 from dhalbert/update_crickit_libs-2
update crickit-related libs
2018-07-03 12:04:05 -07:00
Dan Halbert
bf9981e8db bring all frozen libraries up to date 2018-07-03 14:39:21 -04:00
mrmcwethy
d9723bb613
include RTC fix for SAMd51 in circuitpython build 2018-07-03 06:52:05 -07:00
Scott Shawcroft
f1248dcdf4
Merge pull request #973 from dhalbert/3.x_onewire_fix
fix OneWire timing and DigitalInOut.switch_to_input()
2018-06-29 13:43:50 -07:00
Dan Halbert
b68cd14391 update crickit-related libs 2018-06-29 16:32:25 -04:00
Dan Halbert
7c9a0e2996 remove unnecessary extern in nrf/mphalport.c 2018-06-29 16:06:51 -04:00
Dan Halbert
7028a399c2 remove previously added esp8266/mphalport.{c,h} 2018-06-29 16:04:18 -04:00
Dan Halbert
2a0b857643 implement mp_hal_delay_us() to not need interrupts, and use it 2018-06-29 16:01:46 -04:00
Dan Halbert
b4fd77bb7c fix nrf and esp8266 builds for OneWire fix 2018-06-29 00:00:05 -04:00
Dan Halbert
52a11547cb fix OneWire timing and DigitalInOut.switch_to_input() 2018-06-28 23:32:20 -04:00
Scott Shawcroft
6908eed7ef
Merge pull request #965 from dhalbert/3.x-crickit-lib
3.x crickit lib
2018-06-28 13:51:35 -07:00
Dan Halbert
d98701c8d1 updates crickit and motor frozn libs with latest changes, including 550-2400 default servo range 2018-06-27 21:27:10 -04:00
Dan Halbert
f5df3d37ea add Crickit library to docs/drivers.rst 2018-06-26 19:56:10 -04:00
Dan Halbert
1f3de5174e Freeze Adafruit_CircuitPython_Crickit into crickit builds 2018-06-26 19:49:55 -04:00
Scott Shawcroft
5ae8094747
Merge pull request #953 from dhalbert/allow-mount-slash
Allow mounting '/' on '/'
2018-06-24 22:59:14 -07:00
Dan Halbert
dbf1a2f7d5 allow '/' to be mounted on '/' from Python code 2018-06-21 09:24:40 -04:00
jerryneedell
de4cd1ee73 add pins D3/D4 to pins.c
fixes  #948
2018-06-20 22:26:59 -04:00
Dan Halbert
f5fab358aa
Merge pull request #945 from tannewt/nrf52832
Switch to Feather52s full name to avoid confusion with the nrf52840 later
2018-06-18 18:11:06 -04:00
Scott Shawcroft
c90abb1370 Fix BLE file download for travis. 2018-06-18 14:28:45 -07:00
Scott Shawcroft
724bd7c17f Correct the tool build 2018-06-18 14:07:21 -07:00
Scott Shawcroft
05547b72ac Switch to Feather52s full name to avoid confusion with the nrf52840 later.
Fixes #940
2018-06-18 10:51:04 -07:00
Dan Halbert
be5eb91df8
Merge pull request #938 from sommersoft/esp_busio_fix
ESP8266: Fix pin locking during busio.SPI.configure
2018-06-16 11:49:20 -04:00
Scott Shawcroft
35ead7bf39
Merge pull request #935 from dhalbert/mount_name_clash_check
do not permit mounting over a directory or file with the same name as the mount point
2018-06-16 08:37:52 -07:00
Dan Halbert
92b531d0c3
Merge pull request #939 from tannewt/travis840
Add auto-build for nrf52840 development kit, PCA10056
2018-06-15 21:10:53 -04:00
Dan Halbert
e475256b38
Merge pull request #937 from tannewt/separate_peripherals_lib
Split out the peripherals library in preparation of sharing with MakeCode
2018-06-15 19:45:14 -04:00
Scott Shawcroft
b4338921de Add auto-build for nrf52840 development kit, PCA10056 2018-06-15 16:34:26 -07:00
Scott Shawcroft
a5e03b76a6 Split out the peripherals library in preparation of sharing with MakeCode. 2018-06-15 16:16:21 -07:00
Dan Halbert
f152889938 do not permit mounting over a directory or file with the same name as the mount point 2018-06-15 13:53:30 -04:00
Scott Shawcroft
5ce1d71206
Merge pull request #932 from dhalbert/listdir_root
fix os.listdir() when current dir is '/'
2018-06-15 09:34:08 -07:00
Dan Halbert
327b0f76da fix os.listdir() when current dir is '/' 2018-06-15 10:51:03 -04:00
sommersoft
23b6d33455 fixes #642; spi_init_gpio() is now bypassed for both construct and configure 2018-06-15 05:03:52 +00:00
Scott Shawcroft
720042f964
Merge pull request #930 from dhalbert/sd_card_audio_play
Fix playing audio from SD card
2018-06-14 18:57:24 -07:00
Dan Halbert
fa814a32ce Make Trinket M0 build fit; make RAMFS in vfs_fat_* tests be compliant with expected API 2018-06-14 21:02:12 -04:00
Dan Halbert
e724bc1c4e Fix playing audio from SD card 2018-06-14 18:47:40 -04:00
Scott Shawcroft
618943d90a
Merge pull request #926 from nickzoic/circuitpython-nickzoic-716-pulseio-esp8266
Implement pulseio.PulseIn and PulseOut for ESP8266 #716
2018-06-12 18:33:16 -07:00
Dan Halbert
144c0597e9
Merge pull request #928 from tannewt/fix_uart_timeout
Correct UART reads to return error on timeout.
2018-06-12 18:41:18 -04:00
Scott Shawcroft
ee817a2fa8 Correct UART reads to return error on timeout.
This causes read to correctly return None instead of b''.

Fixes #874
2018-06-12 14:03:27 -07:00