Commit Graph

521 Commits

Author SHA1 Message Date
kamtom480
f6e553f89f
Merge branch 'master' into circuitpython-number-endpoint 2019-10-08 09:41:29 +02:00
Kamil Tomaszewski
79096dbacd Add the specific endpoint names 2019-10-08 09:35:04 +02:00
Kamil Tomaszewski
29844db332 Use boolean type for renumber_endpoints 2019-10-08 09:26:02 +02:00
Kamil Tomaszewski
a020f203dc Update usb_descriptor submodule 2019-10-07 13:44:05 +02:00
Kamil Tomaszewski
badf32e88d Add HID OUT 2019-10-07 13:40:44 +02:00
Kamil Tomaszewski
1205d3e305 Add validation 2019-10-07 12:31:42 +02:00
Kamil Tomaszewski
7aefcc449a Add an alternative way to number the USB endpoints
Two options available:
- relative numbering (USB_RELATIVE_EP_NUM = 1) - default
- absolute numbering (USB_RELATIVE_EP_NUM = 0) - new!
2019-10-07 12:31:42 +02:00
Kamil Tomaszewski
ef42abb818 Add a way to change max packet size for MSC 2019-10-04 13:49:33 +02:00
Dan Halbert
05038ea1e5 Update tinyusb to fix gamepad;add HID OUT interface descriptor 2019-10-01 15:57:16 -04:00
Scott Shawcroft
3ff53a64cb
Merge pull request #2181 from tannewt/update_frozen
Update frozen modules.
2019-09-30 14:23:05 -07:00
Scott Shawcroft
c12c837abd
Improve frozen prep to skip example subdirectories 2019-09-30 13:37:58 -07:00
Scott Shawcroft
060e81ded0
Fail when boards are missing too 2019-09-30 12:09:29 -07:00
Scott Shawcroft
54b03a7476
When uploading release assets, ignore those already uploaded. 2019-09-14 13:05:52 -07:00
Dan Halbert
8f6267115c Renumber only chosen USB interfaces; fix HID report ids 2019-09-09 15:12:06 -04:00
Scott Shawcroft
5e754f1694
Merge pull request #2121 from tannewt/markdown_autolink
Add support for converting autolinks to BBCode
2019-09-05 11:28:24 -07:00
Hierophect
96d1711296 Merge remote-tracking branch 'upstream/master' into stm32-ci-workflow 2019-09-05 13:36:23 -04:00
Dan Halbert
f3af2a6fb7 Merge remote-tracking branch 'adafruit/master' into choose-usb-devices-xac 2019-09-04 21:56:13 -04:00
Dan Halbert
195de97c67 use only one endpoint pair for MSC except on SAMD21 2019-09-04 21:45:16 -04:00
Scott Shawcroft
dab345ce58
Add support for converting autolinks to BBCode 2019-09-04 17:15:30 -07:00
Scott Shawcroft
ff3d04f4d1
Fix website updater for other users.
It broke with adafruit-blinka but works now.
2019-09-04 16:50:13 -07:00
Hierophect
e92a21cb0a minor text fixes 2019-09-04 18:40:44 -04:00
Hierophect
0cd5f4c12b remove redundant exclusion inclusion 2019-09-04 18:28:27 -04:00
Hierophect
e6f8ad65c1 add stm32 port to workflow 2019-09-04 18:10:37 -04:00
Dan Halbert
95a5a57f94 Merge remote-tracking branch 'adafruit/master' into choose-usb-devices-xac 2019-09-04 00:12:09 -04:00
Dan Halbert
94ba027544 simpler generation of HID device tables 2019-09-03 21:16:14 -04:00
Scott Shawcroft
949f8761b8
Add .hidden to TileGrid and Group
This allows for one to preserve ordering within a Group while
hiding something temporarily.

Fixes #1688
2019-09-03 16:15:27 -07:00
Dan Halbert
42f5edbd33 WIP 2019-09-03 14:44:46 -04:00
Scott Shawcroft
6106909c10
Swap the CI to GitHub Actions from Travis 2019-08-27 19:53:54 -07:00
Scott Shawcroft
70680d5b22
EPaper displays work mostly. 2019-08-22 14:08:33 -07:00
Dan Halbert
1a818c60cb make translate again; make check-translate passes 2019-08-19 10:25:36 -04:00
Scott Shawcroft
26f64dd8ec
Merge remote-tracking branch 'adafruit/4.1.x' into merge_in_410 2019-08-05 17:53:08 -07:00
sommersoft
8eab946c5b
Merge pull request #2003 from C47D/travis_check_new_boards
Add check to travis to make sure new boards are built, fix #1886
2019-07-28 22:41:59 -05:00
C47D
7e4d7a5373 [travis check new boards] Fail in case of any missing boards 2019-07-25 16:11:45 -05:00
C47D
8864cefba6 [travis check new boards] missing_boards as set 2019-07-23 13:03:29 -05:00
C47D
c316231dd2 [travis check new boards] Do not end test if there are missing boards 2019-07-23 13:02:07 -05:00
sommersoft
b630e561a7
exclude aliased boards from 'get_board_mapping()' 2019-07-21 12:13:13 -05:00
Carlos
d1fecf5025 Fix missing module sh and remove unused module re 2019-07-20 01:08:22 -05:00
Scott Shawcroft
6797ec6ed3
Add support for grayscale displays that are < 8 bit depth.
This also improves Palette so it stores the original RGB888 colors.

Lastly, it adds I2CDisplay as a display bus to talk over I2C. Particularly
useful for the SSD1306.

Fixes #1828. Fixes #1956
2019-07-19 16:06:11 -07:00
C47D
22c265b170 [travis check new boards] Reduce code logic to exit with failure 2019-07-19 16:54:42 -05:00
C47D
fc1594104b [travis new boards check] Exit with failure if a board in info isn't in travis 2019-07-19 12:59:04 -05:00
C47D
ae41bb369f [travis new boards check] sort both lists of boards 2019-07-19 12:36:13 -05:00
C47D
b279d6b335 [travis new boards check] We now have two lists that contain the boards based on board_info and TRAVIS_BOARDS 2019-07-19 12:11:16 -05:00
C47D
a1db6c4379 [Draft] Add check to travis to make sure new boards are built, fix #1886 2019-07-19 10:01:35 -05:00
Scott Shawcroft
4a6bdb6fe4
Track a dirty area for in-memory bitmaps
This fixes the bug that bitmap changes do not cause screen updates
and optimizes the refresh when the bitmap is simply shown on the
screen. If the bitmap is used in tiles, then changing it will
cause all TileGrids using it to do a full refresh.

Fixes #1981
2019-07-18 16:47:28 -07:00
Tavish Naruka
7f97cc1940 Generate .hex for Blip. 2019-07-08 14:16:31 +05:30
Radomir Dopieralski
7c908b08ee Use FONTBOUNDINGBOX for font metrics
Instead of iterating over all the glyphs and calculating the maximum
width and height, use the FONTBOUNDINGBOX to determine the size of a
tile for terminalio.

This works better with fonts such as generated by FontForge, that don't
include the empty space in the glyph bitmap itself. It also lets the
font author specify vertical spacing they want.

I only tested this with the default font and with one I generated with
FontForge.
2019-06-30 01:10:47 +02:00
Scott Shawcroft
eb21fc3e31
Add partial display update support.
Different operations to the display tree have different costs. Be
aware of these costs when optimizing your code.
* Changing tiles indices in a TileGrid will update an area
covering them all.
* Changing a palette will refresh every object that references it.
* Moving a TileGrid will update both where it was and where it moved to.
* Adding something to a Group will refresh each individual area it
covers.
* Removing things from a Group will refresh one area that covers all
previous locations. (Not separate areas like add.)
* Setting a new top level Group will refresh the entire display.

Only TileGrid moves are optimized for overlap. All other overlaps
cause sending of duplicate pixels.

This also adds flip_x, flip_y and transpose_xy to TileGrid. They
change the direction of the pixels but not the location.

Fixes #1169. Fixes #1705. Fixes #1923.
2019-06-12 11:32:39 -07:00
Dan Halbert
4fc189b60c Merge latest 4.0.x fixes into master 2019-06-11 16:16:29 -04:00
Dan Halbert
5164a6eb26 forgot tools/git-checkout-latest-tag.sh in PR #1909 2019-06-11 15:22:32 -04:00
Dan Halbert
4e85c1ef91 Implement forced clean builds for boards so designated.
Mark boards that set CFLAGS_INLINE_LIMIT for particular langauges as needing clean builds.

Fixes #1910.
2019-05-24 15:32:24 -04:00
Scott Shawcroft
3fad7de8db
Rework the pixel computation to use areas
This changes the displayio pixel computation from per-pixel to
per-area. This is precursor work to updating portions of the screen
(#1169). It should provide mild speedups because bounds checks are
done once per area rather than once per pixel. Filling by area also
allows TileGrid to maintain a row-associative fill pattern even when
the display's refresh is orthogonal to it.
2019-05-21 17:41:06 -07:00
Scott Shawcroft
796fc3f5ab
Update font location and shrink a bunch of builds 2019-04-12 15:25:48 -07:00
hexthat
f36572f322
Rename tools/new-ter-u12n.bdf to tools/default-font/new-ter-u12n.bdf 2019-04-12 12:55:13 -07:00
hexthat
b4509362ef
Add files via upload 2019-04-12 12:55:13 -07:00
Scott Shawcroft
1eb1430d82
Add alias support for unique board revs
This way we can list different board styles and track their
downloads without a completely new binary.

Fixes #1673
2019-04-11 11:25:04 -07:00
Dan Halbert
7798eb983d updated usb_descriptor submodule per @hathach 2019-04-05 11:52:38 -04:00
Scott Shawcroft
6fcda1dec4
Support multi-byte values with Bitmap
It also corrects the behavior of single byte values.

Fixes #1744
2019-04-04 12:50:35 -07:00
Scott Shawcroft
bbed7b813b
Add script to convert release notes from Markdown 2019-03-30 23:31:11 -07:00
Scott Shawcroft
5e2fec714c
Move Glyph and BuiltinFont into fontio
It was confusing in displayio.

Fixes #1662
2019-03-19 16:22:09 -07:00
Scott Shawcroft
cac9da37f9
Update board info build to handle top level list. 2019-03-11 17:07:15 -07:00
Dan Halbert
b1d194505e Build both BIN and UF2 for RFM boards 2019-03-05 13:11:10 -05:00
Scott Shawcroft
785edf719e
Update translations based on git history 2019-02-22 15:28:29 -08:00
Scott Shawcroft
2a5a735d94
Add utility to remerge translations 2019-02-22 13:06:40 -08:00
Scott Shawcroft
c17f147be9
A variety of displayio improvements
This changes a number of things in displayio:
* Introduces BuiltinFont and Glyph so the built in font can be used by libraries. For boards with
  a font it is available as board.TERMINAL_FONT. Fixes #1172
* Remove _load_row from Bitmap in favor of bitmap[] access. Index can be x/y tuple or overall index. Fixes #1191
* Add width and height properties to Bitmap.
* Add insert and [] access to Group. Fixes #1518
* Add index param to pop on Group.
* Terminal no longer takes unicode character info. It takes a BuiltinFont instead.
* Fix Terminal's handling of [###D vt100 commands used when up arrowing into repl history.
* Add x and y positions to Group plus scale as well.
* Add bitmap accessor for BuiltinFont
2019-02-11 20:55:05 -08:00
Scott Shawcroft
3af57f3e92
Fix up heap analysis for dynamic heap location 2019-02-01 16:03:37 -08:00
Scott Shawcroft
ec03887040
Fix hallowing and nrf builds 2019-01-31 11:42:15 -08:00
Scott Shawcroft
1a1dbef992
Hook up the terminal based on the first display. 2019-01-31 11:42:14 -08:00
Scott Shawcroft
590e029198
Begin font parsing and packing for terminal 2019-01-31 11:42:13 -08:00
Scott Shawcroft
d30bdd4cb3
Fix board info script to skip removed boards. 2019-01-24 10:22:14 -08:00
Gregory P. Smith
7296b647ef Add MDK nRF52840 MDK USB Dongle support.
Adds support for https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle/.

A cheap nRF52840 USB stick with optional headers, very Trinket and Itsy like.
2019-01-15 01:37:22 -08:00
vgoodwinv
c1cfe5f5f0
Update build_release_files.py 2019-01-14 21:35:21 -05:00
vgoodwinv
d1204c7cf3
Update build_release_files.py 2019-01-14 21:27:14 -05:00
vgoodwinv
6962c04f66
Update build_release_files.py
added language directories under exist board directories for #1441
2019-01-14 21:21:48 -05:00
Scott Shawcroft
b5f35b82e1
Remove from build info too 2019-01-14 13:30:09 -08:00
Dan Halbert
50ee5ef24c merge translations; add bleio comments; fix minor sphinx issues in midi 2019-01-10 21:12:17 -05:00
Dan Halbert
516d7da641
Merge pull request #1449 from tannewt/midi
Add USB MIDI support for SAMD and nRF.
2019-01-10 19:49:33 -05:00
Scott Shawcroft
3dd59c3d5f
Polish thanks to Dan's feedback 2019-01-10 11:00:40 -08:00
Scott Shawcroft
b5e40f52c2
Add USB MIDI support for SAMD and nRF.
The API should be identical to using a UART for MIDI.

Fixes #672
2019-01-09 14:02:11 -08:00
Dan Halbert
d41ed768dc Fix sphinx build issues; add better travis fold reporting; update author info 2019-01-09 16:22:19 -05:00
Dan Halbert
e47decbdc5 improve travis fold status reporting; fix sphinx build; fix sphinx errors 2019-01-09 13:32:45 -05:00
Dan Halbert
b6b5ed9c89 Remove nRF52832 support 2018-12-30 22:49:20 -05:00
Carl Karsten
5f3a259827 Sync with micropython. closes #1414 2018-12-20 18:44:39 -06:00
Scott Shawcroft
b1c882a26b
Default nrf boards to UF2 2018-12-11 11:51:07 -08:00
Scott Shawcroft
96e65fa641
Fix build board info for python3.5 2018-12-10 13:17:05 -08:00
Scott Shawcroft
7da85f5a4f
Strip a newline from the version tag. 2018-12-10 10:13:09 -08:00
Scott Shawcroft
06c4938120
Build UF2s for the particle boards 2018-12-07 17:37:25 -08:00
Dan Halbert
58f230d632 make sure travis sees some output in time 2018-12-05 15:01:58 -05:00
Scott Shawcroft
b0da9ac780
Don't capture output 2018-12-04 18:20:51 -08:00
Scott Shawcroft
15c1fc873c
Add particle boards, fix cp32 and try to speed up atmel build 2018-12-04 18:20:48 -08:00
Scott Shawcroft
df18d22a93
Capture stderr as well and work on nRF build 2018-11-30 12:59:05 -08:00
Scott Shawcroft
cf70dc4f1c
Fix BLE build 2018-11-30 11:53:33 -08:00
Scott Shawcroft
56345ff997
A few tweaks based on review feedback 2018-11-30 10:58:27 -08:00
Scott Shawcroft
9d07e95351
Add support for adding release info into adafruit/circuitpython-org
This also changes the build script to python with better output.
2018-11-30 00:30:57 -08:00
Scott Shawcroft
913b513929
Merge pull request #1357 from ElectronicCats/add-electroniccats-catwan-usbstick
Added board Electronic Cats CatWAN USB Stick
2018-11-27 11:58:26 -08:00
sabas1080
a053eb2205 auto-built and documentation 2018-11-26 14:51:04 -06:00
Scott Shawcroft
0c55ddf0fc
Update to Xenial on Travis 2018-11-26 11:53:03 -08:00
Scott Shawcroft
43f7ca7985
Incorporate feedback:
* Clean up board defines.
* Add flush on eject and stay ejected.
* Swith back to NONE protocol for CDC.
2018-11-09 11:33:56 -08:00
Scott Shawcroft
9d91111b1b
Move atmel-samd to tinyusb and support nRF flash.
This started while adding USB MIDI support (and descriptor support is
in this change.) When seeing that I'd have to implement the MIDI class
logic twice, once for atmel-samd and once for nrf, I decided to refactor
the USB stack so its shared across ports. This has led to a number of
changes that remove items from the ports folder and move them into
supervisor.

Furthermore, we had external SPI flash support for nrf pending so I
factored out the connection between the usb stack and the flash API as
well. This PR also includes the QSPI support for nRF.
2018-11-08 17:25:30 -08:00
Dan Halbert
bd79c0c0de
Merge pull request #1295 from ElectronicCats/mkr1300
Add board MKR1300 by Arduino
2018-10-26 20:15:20 -04:00
sabas1080
ba98d4ce9c minor changes in auto-built 2018-10-25 16:11:49 -05:00
Dan Halbert
09c44743b0
Merge pull request #1282 from tannewt/frozen_debug
Add debug info to the generated frozen_mpy.c
2018-10-23 12:32:45 -04:00
Scott Shawcroft
554f82fe9b
Merge pull request #1286 from klardotsh/topic-nrf52840-mdk
Add support for MakerDiary nRF52840 MDK board
2018-10-22 17:47:14 -07:00
sabas1080
37d784bcdc add auto-built by Travis mkr1300 2018-10-22 19:42:40 -05:00
Josh Klar
4a40919228
Make sure port is built as an NRF hex correctly 2018-10-20 03:36:55 -07:00
Scott Shawcroft
b4dcbb79b2
Add back printing out code info. Whoops! 2018-10-18 14:23:17 -07:00
Scott Shawcroft
4f9c8b7361
Add debug info to the generated frozen_mpy.c
It adds size info and uses macros for byte code to make it more
readable.
2018-10-17 17:45:47 -07:00
sabas1080
6a1a2c7c7b add auto-built by Travis 2018-10-16 13:51:37 -05:00
Scott Shawcroft
623f8d3b8c
Don't freeze the tests directory 2018-10-05 15:14:34 -07:00
Dan Halbert
cf3b40207e add pca10059 properly to build_adafruit_bins.sh; modernize that script; update translations (again) 2018-09-18 22:21:29 -04:00
Dan Halbert
bc510e714f merge 3.0.2 to master 2018-09-18 15:38:12 -04:00
ladyada
14ad7d31db automate builds 2018-09-14 10:38:06 -04:00
Scott Shawcroft
e29cbf694b
Auto-build grandcentral 2018-09-07 10:52:30 -07:00
Dan Halbert
de9f9e8504 upload .uf2 for nrf52840 boards 2018-08-29 15:38:33 -04:00
Dan Halbert
85df32907f rename nrf boards to feather_nrf52832 and feather_nrf52840_express 2018-08-21 18:45:37 -04:00
Dan Halbert
1768057e87
add HalloWing 2018-08-20 10:52:24 -07:00
Scott Shawcroft
de5a9d72dc
Compress all translated strings with Huffman coding.
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.

Builds without LTO work as well but include both untranslated
strings and compressed strings.

This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531.
2018-08-16 17:40:57 -07:00
Scott Shawcroft
94c5ceab36
Initial SAMR board revision. 2018-08-09 05:36:46 -07:00
Scott Shawcroft
933add6cd8
Support internationalisation. 2018-08-07 14:58:57 -07:00
Scott Shawcroft
a6d94b6845
Merge pull request #1068 from dhalbert/micropython-25ae98f-merge
Micropython 25ae98f merge
2018-07-30 12:33:44 -07:00
Dan Halbert
fbe98ff9a9
Merge pull request #1071 from dhalbert/3.x-hallowing
add HalloWing
2018-07-29 20:24:47 -04:00
Dan Halbert
680597547c add HalloWing 2018-07-29 19:22:16 -04:00
Dan Halbert
2e260a0eab Merge remote-tracking branch 'adafruit/master' into micropython-25ae98f-merge 2018-07-28 14:13:54 -04:00
Scott Shawcroft
70df242f72
Update uf2 tools to support python3. 2018-07-25 09:39:46 -07:00
Dan Halbert
2809b4f9dd Merge branch 'master' into micropython-25ae98f-merge 2018-07-16 19:36:40 -04:00
Dan Halbert
7c219600a2 WIP: after merge; before testing 2018-07-11 16:45:30 -04:00
hathach
0e819599e7 Merge branch 'master' into nrf52840_usbboot 2018-07-10 02:02:52 +07:00
Scott Shawcroft
f3f8e13b88
analyze everything 2018-07-03 05:45:51 -07:00
Scott Shawcroft
252aacdddf
Analysis fixes and long lived tweaks. 2018-07-03 05:45:50 -07:00
hathach
36e2f38933 update tools/uf2 to have family support 2018-07-03 17:49:59 +07:00
hathach
4d45565663 update tools/uf2 to support hex input for uf2conv.py 2018-06-25 23:27:37 +07:00
Damien George
92667dc2e5 tools/pydfu.py: Add support for multiple memory segments.
Segments are separated by / and begin with the memory address.  This
follows how the ST DFU tool works.
2018-06-22 15:32:32 +10: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
Scott Shawcroft
b4338921de Add auto-build for nrf52840 development kit, PCA10056 2018-06-15 16:34:26 -07:00
Jeff Epler
bbba3e505f build_adafruit_bins: feather_huzzah need not be a special case 2018-06-10 14:56:55 -05:00
Scott Shawcroft
66b79723b6 Add code size analysis tool and shrink samd.clock a smidge. 2018-06-08 12:56:32 -07:00
Damien George
8fb95d6520 tools/pydfu.py: Increase download packet size to full 2048 bytes.
The ST DFU bootloader supports a transfer size up to 2048 bytes, so send
that much data on each download (to device) packet.  This almost halves
total download time.
2018-06-08 15:32:49 +10:00
Dan Halbert
9ba6990228 Feather M0 Express build with Crickit libraries 2018-06-05 18:21:47 -04:00
Noralf Trønnes
e37d5622fe tools: Add cpboard.py
This is a variant of pyboard.py aimed at Circuit Python boards.
It can emulate pyboard.py enough so it works with tests/run-tests.
2018-06-02 19:09:44 +02:00
Dan Halbert
5680933483 refactor longint settings; make crickit cpx build 2018-05-21 23:58:03 -04:00
Keith Wiley
3ea0862a6e tools/pydfu.py: Fix typo in comments. 2018-05-18 23:33:19 +10:00
Karin Hawley
f9ae1ee172 Cleaning up and fixing the docs generation Makefile and README instructions
- moving Makefile to parent folder.  This resolves some of the weird path/build issues
- remove trace references to cpydiff and original file (no longer used anywhere)
- converting SOURCEDIR to a changeable variable, passed through all sphinx-build calls
- adding path to conf.py, in case it moves again
- making `-v` default with VERBOSE
- making `-E` default with FORCE
- creating BASEOPTS to store all the dirs, paths, and settings, passing them to sphinx-build in one long chain, instead of individually
- updating README to use the make command as default.  Also added text explaining some of the customization you can add into a make command
2018-05-14 11:02:25 -07:00
Dan Halbert
9daa1a68d8 HID gamepad support 2018-04-23 23:51:23 -04:00
Damien George
f7be5f9bfa tools/upip: Upgrade upip to 1.2.4.
Uses new pypi.org URL, and now creates a socket with the address parameters
returned by getaddrinfo().
2018-04-23 16:11:27 +10:00
Scott Shawcroft
2a26dac2bc Add initial ItsyBitsy M4 support 2018-04-12 11:16:52 -07:00
Scott Shawcroft
619b0ec164 Fix rom qstr pool length. 2018-04-09 15:59:52 -07:00
Dan Halbert
e7305ce15f update usb_descriptor again 2018-04-08 10:15:47 -04:00
Dan Halbert
a159b85340 Reorder composite device interfaces; fix report length bug 2018-04-08 09:33:02 -04:00
Dan Halbert
beb6ad2e40 Add USB HID support, including Consumer Control 2018-04-02 21:37:44 -04:00
Dan Halbert
435e894fa0 Merge branch 'master' into 3.0_hid 2018-04-02 19:19:43 -04:00
Dan Halbert
d005b12326 WIP: seems to be done 2018-04-02 19:08:18 -04:00
Dan Halbert
df91878d2e WIP: works with just keyboard but not complex report descriptor 2018-03-30 23:24:00 -04:00
Scott Shawcroft
fd7dcff4e9 Add Feather M4 Express support.
* Also fixed detection of SPI flash chip to correct look in the 2+
spots.
* Added support for using QSPI in dual read mode.
2018-03-23 00:00:13 -07:00
Scott Shawcroft
bf05183158 Merge remote-tracking branch 'adafruit/2.x' into merge_2x 2018-02-27 15:24:16 -08:00
Dan Halbert
b001c0711b Correct _etext location; clean up .ld files
1. Make _extext and _sidata coincide. Old _etext location did not include
.ARM.exidx sections, which were usually absent but not always. So flash
data was copied to RAM in wrong place.
2. Use decimal constants with "K" and "M" suffixes in .ld files instead
of hex constants, to make them easier to read and check for accuracy.
2018-02-09 11:31:18 -05:00
Scott Shawcroft
737178e0d2 Ignore docs directory when freezing as well.
conf.py for Sphinx will be moved here.
2018-01-31 11:10:50 -08:00
Scott Shawcroft
da330f0cab Polish up the heap analysis script and make it more CLI friendly.
It can now render the heap layout over a sequence of ram dumps.

The mpy analysis is also better at parsing mpy files.
2018-01-24 10:33:46 -08:00
Tony DiCola
3b946f667e Add missing Feather M0 RadioFruit boards: RFM69, RFM9x. (#538) 2018-01-19 11:55:39 -08:00
Tony DiCola
4bd1d09d74 Add missing Feather M0 RadioFruit boards: RFM69, RFM9x (#539) 2018-01-19 11:53:47 -08:00
Scott Shawcroft
d16af1fbb2 Heap analysis tool (#529)
* random heap stuff

* Fix dicts

* Less hand coding. Now reads .map file for memory locations of stuff.

* Display qstr chunk contents.
2018-01-18 18:53:52 -08:00
Kevin Townsend
17ff1b2b46 Fixed build folder for travis 2018-01-18 11:32:47 -08:00
Dan Halbert
065e82015f merge from 2.2.0 + fix up board defs 2018-01-02 21:25:41 -05:00
microbuilder
5da455e398 Added feather52 to travis build list 2017-12-28 22:35:03 +01:00
microbuilder
f1e1699c9f Added feather52 to travis build 2017-12-27 13:54:16 +01:00
Dan Halbert
31be20744d preprocess_frozen_modules.py: yet more Python 3.4 compatibility changes 2017-12-24 14:29:03 -05:00
Dan Halbert
644ad74ea1 preprocess_frozen_modules.py: make compatible with Python 3.4. 2017-12-24 13:49:58 -05:00
Dan Halbert
2dcb2f06cb Add git version info to frozen modules. 2017-12-23 23:46:19 -05:00
Paul Sokolovsky
4475f32420 tools/tinytest-codegen: Ignore system locale, write output in UTF-8.
Way to reproduce a UnicodeEncodeError without this patch:

    LC_ALL=C tinytest-codegen.py ...
2017-12-15 12:04:10 +02:00
Paul Sokolovsky
325d0fc74b tools/tinytest-codegen: Add --stdin switch instead of recently added --target.
Instead of passing thru more and more options from tinytest-codegen to
run-tests --list-tests, pipe output of run-tests --list-tests into
tinytest-codegen.
2017-12-14 12:26:59 +02:00
Damien George
bb516af1eb tools/pydfu.py: Call set_configuration() on fresh USB device object.
This call is required before using the device (some operating systems don't
need it but others do).  Fixes issue #3476.
2017-12-14 10:08:37 +11:00
Paul Sokolovsky
43141ddb55 tools/tinytest-codegen: Take --target= option for test set selection.
Gets passed to run-tests --list-tests to get actual list of tests to use.
If --target= is not given, legacy set hardcoded in tinytest-codegen itself
is used.

Also, get rid of tinytest test groups - they aren't really used for
anything, and only complicate processing. Besides, one of the next
step is to limit number of tests per a generated file to control
the binary size, which also will require "flat" list of tests.
2017-12-13 18:35:37 +02:00
Paul Sokolovsky
e6f0d547ab tools/tinytest-codegen: More excludes after enabling expected output match. 2017-12-13 09:07:51 +02:00
Paul Sokolovsky
4db6a7adbe tools/tinytest-codegen: Wrap lines of exclude_tests.
So it was manageable and extensible.
2017-12-13 09:07:51 +02:00
Paul Sokolovsky
48e931e1d3 tools/tinytest-codegen.py: Generate code for upytesthelper.
The way tinytest was used in qemu-arm test target is that it didn't test
much. MicroPython tests are based on matching the test output against
reference output, but qemu-arm's implementation didn't do that, it
effectively tested just that there was no exception during test
execution. "upytesthelper" wrapper was introduce to fix it, and so
test generator is now switched to generate test code for it.

Also, fix PEP8 and other codestyle issues.
2017-12-13 09:07:51 +02:00
Paul Sokolovsky
e9d29c9ba9 lib/tinytest: Move from tools/tinytest.
Tinytest library was misplaced under tools/. By convention, any target
libraries belong to lib/, while tools/ contains host-side tools.
2017-12-08 19:26:15 +02:00
Damien George
7cf446f3da tools/gen-cpydiff.py: Update executable paths to point to new ports dir. 2017-11-28 10:50:32 +11:00
Limor "Ladyada" Fried
27d5f27831 Add ItsyBitsy M0 support with 1MB flash support (#445) 2017-11-17 09:25:36 -08:00
Scott Shawcroft
b1998cb0b1 Speed up the Travis build.
This does two major things:

1. It stores the arm gcc in the repo. The download from the PPA was taking between 2 and 7 minutes.
2. It splits each board into a separate job so they are built in parallel.
2017-11-15 21:31:21 -08:00
Damien George
9ba3de6ea1 tools/mpy-tool.py: Implement freezing of Ellipsis const object. 2017-11-15 12:46:08 +11:00
Scott Shawcroft
a49200d5cb tools: Switch to using separate usb_descriptor repo. 2017-11-02 13:00:50 -07:00
Scott Shawcroft
7b393bc406 Merge tag 'v1.9.3'
Introduction of ports subdirectory where all ports are moved to

The main change in this release is the introduction of a "ports/"
subdirectory at the top-level of the repository, and all of the ports are
moved here.  In the process the "stmhal" port is renamed to "stm32" to
better reflect the MCU that it targets.  In addition, the STM32 CMSIS and
HAL sources are moved to a new submodule called "stm32lib".

The bytecode has changed in this release, compared to the previous release,
and as a consequence the .mpy version number has increased to version 3.
This means that scripts compiled with the previous mpy-cross must be
recompiled to work with this new version.

There have also been various enhancements and optimisations, such as:
check for valid UTF-8 when creating str objects, support for reverse
special binary operations like __radd__, full domain checking in the math
module, support for floor-division and modulo in the viper emitter,
and addition of stack overflow checking when executing a regex.

The stm32 port sees improved support for F7 MCUs, addition of a new board
B_L475E_IOT01A based on the STM32L475, and support for the Wiznet W5500
chipset along with improved socket behaviour.

A detailed list of changes follows.

py core:
- objstr: startswith, endswith: check arg to be a string
- nlrx86,x64: replace #define of defined() with portable macro usage
- objtype: handle NotImplemented return from binary special methods
- objtype: mp_obj_class_lookup: improve debug logging
- map: remove unused new/free functions
- make m_malloc_fail() have void return type, since it doesn't return
- modstruct: in struct.pack, stop converting if there are no args left
- modstruct: check and prevent buffer-read overflow in struct unpacking
- modstruct: check and prevent buffer-write overflow in struct packing
- nlrthumb: get working again on standard Thumb arch (ie not Thumb2)
- objfloat: fix binary ops with incompatible objects
- obj: fix comparison of float/complex NaN with itself
- objtype: implement fallback for instance inplace special methods
- objtuple: properly implement comparison with incompatible types
- objstr: add check for valid UTF-8 when making a str from bytes
- objlist: properly implement comparison with incompatible types
- runtime0.h: move relational ops to the beginning of mp_binary_op_t
- runtime0.h: move MP_BINARY_OP_DIVMOD to the end of mp_binary_op_t
- objtype: make sure mp_binary_op_method_name has full size again
- runtime0.h: put inplace arith ops in front of normal operations
- builtinhelp: simplify code slightly by extracting object type
- runtime: implement dispatch for "reverse op" special methods
- nlrx86: fix building for Android/x86
- builtinhelp: change signature of help text var from pointer to array
- runtime.h: change empty mp_warning macro so var-args are non empty
- modbuiltins: implement abs() by dispatching to MP_UNARY_OP_ABS
- {objfloat,objcomplex}: optimise MP_UNARY_OP_ABS by reusing variables
- mpconfig.h: add note that using computed gotos in VM is not C99
- objstr: strip: don't strip "\0" by default
- objexcept: prevent infinite recursion when allocating exceptions
- stream: remove unnecessary checks for NULL return from vstr_add_len
- vstr: raise a RuntimeError if fixed vstr buffer overflows
- vm: use lowercase letter at start of exception message
- persistentcode: define mp_raw_code_save_file() for any unix target
- add config option to print warnings/errors to stderr
- objfloat: support raising a negative number to a fractional power
- objset: simplify set and frozenset by separating their locals dicts
- objset: check that RHS of a binary op is a set/frozenset
- objset: include the failed key in a KeyError raised from set.remove
- objtype: change type of enum-to-qstr table to uint16_t to save space
- objstr: make empty bytes object have a null-terminating byte
- mpprint: only check for null string printing when NDEBUG not defined
- objtype: clean up unary- and binary-op enum-to-qstr mapping tables
- persistentcode: bump .mpy version number to version 3
- bc: update opcode_format_table to match the bytecode
- modmath: add full checks for math domain errors
- modmath: convert log2 macro into a function
- formatfloat: don't print the negative sign of a NaN value
- formatfloat: use standard isinf, isnan funcs instead of custom ones
- modbuiltins: use existing utf8_get_char helper in builtin ord func
- emitnative: implement floor-division and modulo for viper emitter
- objtype: use CPython compatible method name for sizeof
- objtype: fit qstrs for special methods in byte type
- objtype: define all special methods if requested
- objtype: introduce MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS

extmod:
- modubinascii: only include uzlib/tinf.h when it's really needed
- modussl_mbedtls: allow to compile with MBEDTLS_DEBUG_C disabled
- machine_pinbase: put PinBase singleton in ROM
- re1.5: upgrade to v0.8.2, adds hook for stack overflow checking
- modure: add stack overflow checking when executing a regex
- uos_dupterm: update uos.dupterm() and helper funcs to have index
- uos_dupterm: swallow any errors from dupterm closing the stream
- vfs: replace VLA in proxy func with small, static sized array
- modussl: add finaliser support for ussl objects
- modussl_mbedtls: allow to compile with unix coverage build

lib:
- add new submodule, stm32lib containing STM32 CMSIS and HAL source
- embed/abort_: use mp_raise_msg helper function
- libm: fix tanhf so that it correctly handles +/- infinity args
- libm: remove implementation of log2f, use MP_NEED_LOG2 instead
- axtls: update, support for SSL_EAGAIN return code
- berkeley-db-1.xx: update, allow to override MINCACHE, DEFPSIZE

drivers:
- memory/spiflash: change from hard-coded soft SPI to generic SPI
- display/ssd1306.py: improve performance of graphics methods
- nrf24l01: make nRF24L01 test script more portable
- display/ssd1306: implement SSD1306_I2C poweron method
- display/ssd1306: make poweron() work the same with SSD1306_SPI
- wiznet5k: improve the performance of socket ops with threading
- wiznet5k: get low-level W5500 driver working

tools:
- upip: upgrade to 1.2.2
- pyboard: use repr() when quoting data in error messages
- pyboard: update docstring for additional device support

tests:
- object_new: better messages, check user __new__() method
- class_new: add checks for __init__ being called and other improvements
- class_new: add another testcase for __new__/__init__ interaction
- class_inplace_op: test for inplace op fallback to normal one
- run-bench-tests: update locations of executables, now in ports/
- class_reverse_op: test for reverse arith ops special methods
- run-tests: skip class_inplace_op for minimal profile
- run-tests: fix copy-paste mistake in var name
- cpydiff: add cases for locals() discrepancies
- extmod: add test for ure regexes leading to infinite recursion
- extmod: add test for '-' in character class in regex
- run-tests: close device under test using "finally"
- net_inet: update tls test to work with CPython and incl new site

unix port:
- rename modsocket.c to modusocket.c
- modusocket: remove #if MICROPY_SOCKET_EXTRA code blocks
- enable MICROPY_PY_REVERSE_SPECIAL_METHODS

stm32 port:
- modmachine: make machine.bootloader() work when MPU is enabled
- modmachine: improve support for sleep/deepsleep on F7 MCUs
- compute PLL freq table during build instead of at run time
- modmachine: for F7 MCU, save power by reducing internal volt reg
- boards/pllvalues.py: make script work with both Python 2 and 3
- Makefile: use lib/stm32lib instead of local cmsis and hal files
- remove cmsis and hal files, they are now a submodule
- Makefile: automatically fetch stm32lib submodule if needed
- update to new STM Cube HAL library
- fix clock initialisation of L4 MCUs
- rename stmhal port directory to stm32
- remove unused usbd_msc.c file
- boards: change remaining stm32f4xx_hal_conf.h to unix line ending
- boards: change linker scripts to use "K" instead of hex byte size
- boards: fix I2C1 pin mapping on NUCLEO_F401RE/F411RE boards
- i2c: when scanning for I2C devices only do 1 probe per address
- modnwwiznet5k: release the GIL on blocking network operations
- boards: add new board B_L475E_IOT01A based on STM32L475
- make-stmconst.py: make sure mpz const data lives in ROM
- timer: make pyb.Timer() instances persistent
- mpconfigport.h: add configuration for max periphs on L4 series
- usbdev: make the USBD callback struct const so it can go in ROM
- usbdev: change static function variable to non-static
- usbdev: put all CDC state in a struct
- usbdev: put all HID state in a struct
- usbdev: simplify CDC tx/rx buffer passing
- usbdev: simplify HID tx/rx buffer passing
- usbdev/core: add state parameter to all callback functions
- usbdev: put all state for the USB device driver in a struct
- usbdev: simplify pointers to MSC state and block dev operations
- usbdev: merge all global USB device state into a single struct
- usbdev: make device descriptor callbacks take a state pointer
- usbdev: move all the USB device descriptor state into its struct
- timer: enable ARPE so that timer freq can be changed smoothly
- modnwwiznet5k: get the IP address of an established socket
- boards: fix typos in stm32f767_af.csv table
- usbd_cdc_interface: don't reset CDC output buf on initialisation
- modnwwiznet5k: implement WIZNET5K.isconnected() method
- modusocket: make getaddrinfo() work when passed an IP address
- modusocket: return OSError(-2) if getaddrinfo fails
- mpconfigport.h: add MICROPY_THREAD_YIELD() macro
- modnwwiznet5k: add support for W5500 Ethernet chip
- modnwwiznet5k: increase SPI bus speed to 42MHz
- modnwwiznet5k: implement stream ioctl for the Wiznet driver
- mphalport: improve efficiency of mp_hal_stdout_tx_strn_cooked
- make uos.dupterm() conform to specs by using extmod version

cc3200 port:
- enable micropython.kbd_intr() method
- use standard implementation of keyboard interrupt

esp8266 port:
- rename axtls_helpers.c to posix_helpers.c
- posix_helpers: set ENOMEM on memory alloc failure
- set DEFPSIZE=1024, MINCACHE=3 for "btree" module
- esp_mphal: send data in chunks to mp_uos_dupterm_tx_strn
- modnetwork: add "bssid" keyword arg to WLAN.connect() method
- modules/webrepl_setup: add info about allowed password length

zephyr port:
- Makefile: revamp "test" target after ports were moved to ports/
- use CONFIG_NET_APP_SETTINGS to setup initial network addresses
- switch to interrupt-driven pull-style console

pic16bit port:
- add definition of SEEK_SET to unistd.h

docs:
- pyboard/tutorial: add "timeout=0" to UART in pass-through example
- more xrefs to "MicroPython port" in glossary
- library/network: fix ref to "socket" module (should be "usocket")
- machine.Signal: improve style/grammar and add usage example
- library: add description of "index" parameter to uos.dupterm()
- library/micropython: fix typo in RST formatting
- library/framebuf.rst: generalise constructor to all colour formats
- btree: describe page caching policy of the underlying implementation
- esp8266/tutorial: update neopixel with example of using 4 bbp
- library/network: clarify usage of "bssid" arg in connect() method
- pyboard/quickref: add info for Switch, RTC, CAN, Accel classes
- pyboard/tutorial: update now that yellow LED also supports PWM
- esp8266/quickref: add quickref info for RTC class
- library: add missing cross-ref links for classes in pyb module
- library/network: update docs to state that W5500 is supported
- uselect: document one-shot polling mode
- usocket: elaborate descriptions
- usocket: document inet_ntop(), inet_pton()
- library/network: add dhcp_hostname parameter
- reference/isr_rules: minor typo correction
- ussl: fix module name refs and use "MicroPython port" term
- esp8266/general: add section on TLS limitations
- usocket: document that settimeout() isn't supported by all ports
- ure: add "|" (alternative) to the list of supported operators
- reference/isr_rules.rst: add tutorial on use of micropython.schedule()

travis:
- use --upgrade when pip is installing cpp-coveralls
- update build command now that stm32 Wiznet config has changed

examples:
- hwconfig_console: add .on()/.off() methods

all:
- convert mp_uint_t to mp_unary_op_t/mp_binary_op_t where appropriate
- convert remaining "mp_uint_t n_args" to "size_t n_args"
- make new ports/ sub-directory and move all ports there
- update Makefiles and others to build with new ports/ dir layout
- remove inclusion of internal py header files
- use NULL instead of "" when calling mp_raise exception helpers

README:
- update "Dependencies" section
- add explicit section on contributing
- add gcc and arm-none-eabi-newlib to list of required components

.gitattributes:
- remove obsolete entries for stmhal/hal, stmhal/cmsis
- add entries for files that will move to ports/ dir
2017-11-02 12:41:50 -07:00
Scott Shawcroft
4aeef100f6 atmel-samd: More USB polish
* Introduce a python script to generate the USB descriptor instead of
  a bunch of C macros. In the future, we can use this dynamically in
  CircuitPython.
* Add support for detecting read-only mass storage mounts.

Fixes #377
2017-10-30 18:29:20 -07:00
Scott Shawcroft
60e9b8f70a tools: Correct ports directory name 2017-10-24 23:06:02 -07:00
Scott Shawcroft
73c15dcf8b Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge
This is prep for merging in the NRF5 pull request.
2017-10-24 22:31:16 -07:00
Damien George
933eab46fc py/bc: Update opcode_format_table to match the bytecode. 2017-10-10 10:37:38 +11:00
Paul Sokolovsky
c15be989ee tools/pyboard: Update docstring for additional device support. 2017-10-08 00:04:57 +03:00
Paul Sokolovsky
ea6692a83e tools/pyboard: Use repr() when quoting data in error messages.
As it may contain newlines, etc.
2017-10-05 23:40:19 +03:00
Damien George
ff93fd4f50 py/persistentcode: Bump .mpy version number to version 3.
The binary and unary ops have changed bytecode encoding.
2017-10-05 10:49:44 +11:00
Paul Sokolovsky
2f7827ba8f tools/upip: Upgrade to 1.2.2.
TLS SNI support, fixes after making str.rstrip() behavior compliant.
2017-09-29 18:24:11 -07:00
Scott Shawcroft
6839fff313 Move to ASF4 and introduce SAMD51 support. (#258)
* atmel-samd: Remove ASF3. This will break builds.

* atmel-samd: Add ASF4 for the SAMD21 and SAMD51.

* Introduce the supervisor concept to facilitate porting.

The supervisor is the code which runs individual MicroPython VMs. By
splitting it out we make it more consistent and easier to find.

This also adds very basic SAMD21 and SAMD51 support using the
supervisor. Only the REPL currently works.

This begins the work for #178.
2017-09-22 21:05:51 -04:00
Damien George
4a93801c12 all: Update Makefiles and others to build with new ports/ dir layout.
Also renames "stmhal" to "stm32" in documentation and everywhere else.
2017-09-06 14:09:13 +10:00
Dan Halbert
ef61b5ecb5 Initial merge of micropython v1.9.2 into circuitpython 2.0.0 (in development) master.
cpx build compiles and loads and works in repl; test suite not run yet
esp8266 not tested yet
2017-08-25 22:17:07 -04:00
Scott Shawcroft
774bf0cf0a tools: Always upload to Rosie from Travis. (#200)
This allows Rosie to automatically work for commits to forks.
2017-08-23 12:22:08 -07:00
stijn
e4ab404780 tools/mpy-tool.py: Fix missing argument in dump() function
This makes the -d commandline argument usable again.
Pass empty string as parent name as listing starts from the root.
2017-08-16 10:38:19 +02:00
Scott Shawcroft
e00b3190ed Have the build script upload artifacts to Rosie when travis is building a pull request. (#191) 2017-08-15 18:45:27 -04:00
Damien George
b6a3289564 tools/mpy-tool.py: Don't generate const_table if it's empty. 2017-08-12 22:26:18 +10:00
Scott Shawcroft
fab634e3ee Turn on Rosie CI testing to test new builds on real hardware.
This introduces a skip_if module that can be used by tests to
determine when they should be skipped due to the environment.

Some tests have been split in order to have finer grained skip
control.
2017-08-11 17:16:13 -07:00
Alexander Steffen
55f33240f3 all: Use the name MicroPython consistently in comments
There were several different spellings of MicroPython present in comments,
when there should be only one.
2017-07-31 18:35:40 +10:00
Paul Sokolovsky
a3cd349eaf tools/mpy_bin2res: Tools to convert binary resources to Python module.
Afterwards, they can be access using pkg_resource module from
micropython-lib.
2017-07-27 14:41:27 +03:00
Paul Sokolovsky
7901741bf1 tools/pyboard: Add license header. 2017-07-22 17:12:15 +03:00