-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge from micropython v1.22.2 #9469
Merge from micropython v1.22.2 #9469
Conversation
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
This improves (decreases) the latency on stdin, on SoCs with built-in USB and using TinyUSB, like S2 and S3. Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
Signed-off-by: Daniël van de Giessen <daniel@dvdgiessen.nl>
- Add config for [tool.ruff.format] to pyproject.toml. - Update pre-commit to run both ruff and ruff-format (and only check C files when running codeformat.py) - Update CI. - Simplify codeformat.py to remove all the Python-specific logic (just run "ruff format" directly). This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This updates a small number of files that change with ruff-format's (vs black's) rules. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
This prevents each port Makefile from having to add an explicit rule for `build-BOARD/pins_BOARD.c`. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Also remove af-const header, as this is left over from the STM32 version and unused. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Qstrs are picked up from the generated pin source files in the usual qstr processing stage. Similarly for the stm constant qstrs. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
The output pins.c can be processed for qstrs like any other C file. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
The output pins.c can be processed for qstrs like any other C file. Also remove af_const from Makefile (unimplemented in make-pins.py) and fix target dependency on ad_const. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
The output pins.c can be processed for qstrs like any other C file. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
It's not supported on all ports, adds complexity to the build to generate pins_af.py, and can mostly be replicated just by printing the pin objects. Remove support for generating pins_af.py from all ports (nrf, stm32, renesas-ra, mimxrt, rp2). This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
It's unused. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
All ports now use `--board-csv`, `--prefix`, `--output-souce`, `--output-header` and no longer write to stdout. This matches the esp32 implementation. Ports that have an AF input use `--af-csv` (to match `--board-csv`). Any additional output files are now prefixed with `output-` (e.g. `--output-af-const`). Default arguments are removed (all makefiles should always specify all arguments, using default values is likely an error). Replaced the `af-defs-cmp-strings` and `hdr-obj-decls` args for stm32 with just `mboot-mode`. Previously they were set on the regular build, now the logic is reversed so mboot sets it. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This simplifies pin generation. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
For now, this implements the functionality required for esp32 and rp2, including support for numeric pins, rp2 alternate functions, and rp2 extended pins. This also updates the rp2 port to use the same structure for pins.h and pins.csv as for esp32, and moves the pin definitions directly into the table (rather than having a table of pointers), which is a small code size improvement. Support for "hidden" pins in pins.csv is added (matching the stm32 implementation). This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Fixes are: - Comment out lines in pins.csv that do not have valid CPU pins. It's useful to keep these in the file as "documentation" but in order to make make-pins.py stricter they need to be commented out. - Fix some typos (missing P prefix) in pins.csv. This resulted in some missing board pins. - Fix some typos in af.csv files. Some typos of "ADC" and some other that were previously ignored. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Changes are: - Pad all cells to make them easier to read. - Ensure all files have exactly 19 columns (Port,Pin,AF0-15,ADC) This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This is now consistent with other ports. Also renamed `pin_{board/cpu}_pins_locals_dict` to `machine_pin_{board/cpu}_pins_locals_dict`. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Requires additions to tools/boardgen.py for stm32 pin generation. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This fixes the H7 af.csv files to include the dual-pad information, by listing the ADCs supported on the _C pad with a C_ADC prefix. Minimal change to make-pins.py to ignore these entries. This will be implemented later to emit constants (similar to ADC.CORE_TEMP) to access these channels. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This replaces the previous make-pin-table.py with an implementation based on boardgen.py. - MICROPY_PY_MACHINE_PIN_BOARD_CPU macro is removed. This isn't optional on other ports, so no need for it to be optional on SAMD. - pin_af_table is removed, and lookups just search the cpu dict instead (this saves N*wordsize bytes of firmware size to have this extra table). - pins.csv is now BOARD,CPU to match other ports. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Minor change to remove support for using numeric IDs for machine.Pin. This was previously based on the index of the pin in the board csv, but this is different (and incompatible) with other ports. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This removes previously unused functionality to generate pins_ad_const.h, as well as the unused handling of pin AF in machine_pin.c. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
It's not worth the effort to update these ports to use boardgen.py, but put a note just in case anyone uses this as a reference for a new port. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: Damien George <damien@micropython.org>
Set the position of new line tokens as the end of the preceding line instead of the beginning of the next line. This is done by first moving the pointer to the end of the current line to skip any whitespace, record the position for the token, then finaly skip any other line and whitespace. The previous behavior was to skip every new line and whitespace, including the indent of the next line, before recording the token position. (Note that both lex->emit_dent and lex->nested_bracket_level equal 0 if had_physical_newline == true, which allows simplifying the if-logic for MP_TOKEN_NEWLINE.) And update the cmd_parsetree.py test expected output, because the position of the new-line token has changed. Fixes issue micropython#12792. Signed-off-by: Mathieu Serandour <mathieu.serandour@numworks.fr>
This fixes the case where e.g. struct foo_t { mp_obj_t x; uint16_t y; char buf[]; }; will have `sizeof(struct foo_t)==8`, but `offsetof(struct foo_t, buf)==6`. When computing the size to allocate for `m_new_obj_var` we need to use offsetof to avoid over-allocating. This is important especially when it might cause it to spill over into another GC block. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
0dd9698
to
29216d7
Compare
7af89a0
to
aa943b3
Compare
aa943b3
to
b94815c
Compare
Ready for review. There are two builds failing due to space issues. This is a bit surprising, but I don't think this should hold up reviewing the whole thing. I'm thinking there may be some extra math code or something like that. I will look and see what grew. |
[also put in OP] Update: out of draft mode.Everything builds except for two too-large builds, which I will fix soon, either here or in a later PR. Smoke tests work.
|
@tannewt all green now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing this! Just a few minor things. Mostly typos
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thank you!
Merging from
micropython-v1.22-release
branch.mp_event_wait_ms()
andmp_event_wait_indefinite()
.QDEF
is nowQDEF0
andQDEF1
.pyexec.c
is still hard to merge due toatexit
conditionals. Maybe there's some way of formatting them so there are fewer changes.raspberrypi/libm_extra.c
fixes ROM floats to handle infinities correctly, but I did not pick this up yet.As of the initial draft PR, at least one board from each port has been compiled.
atmel-samd
,nordic,
espressif,
rasbperrypihave had some basic testing done, blink for most, BLE for nordic, and wifi for
espressif`. I'm submitting the PR to see how the tests and doc builds work out.Update: out of draft mode.
Everything builds except for two too-large builds, which I will fix soon, either here or in a later PR. Smoke tests work.
CIRCUITPY-CHANGE
annotations. They are more or less complete now.frozen/Adafruit_CircuitPython_asyncio
at the moment. I need to test it against 9.1.1 and see if the changes still work for 9.1.1 before I merge it into main in the library. So anyone usingasyncio
with this build should use that branch for now.