Commit graph

125 commits

Author SHA1 Message Date
55b0f157c7 Mark functions as NORETURN
Surprisingly this leads to some code size savings on itsybitsym4,
even though LTO optimization should have let the compiler deduce
(almost) all of this.

When a compiler knows a call can never return, it is possibly able
to avoid emitting code, such as saving caller-saved registers to the
stack, or doing _ANYTHING_ affter the function returns, explaining
why code size savings is possible with this attribute.

With the exception of raise_deinited_error, these were found by checking
the functions found by `-Wmissing-noreturn` and making a case by case
decision. However, this dignostic can't be enabled unconditionally as it
has false positives, functions we do NOT want to mark as noreturn.

Testing performed: built itsybitsy m4, flash size savings 128 bytes.
didn't test on hardware as none came on this trip with me.
2025-04-16 16:57:09 +02:00
Scott Shawcroft
e277540f7a
Switch to ruff like MicroPython 2025-02-05 11:09:15 -08:00
Tobias Schmale
b8c65427f8 update docs 2024-06-26 13:35:05 +00:00
Dan Halbert
3f4d9310ff CircuitPython files: replace STATIC with static 2024-05-20 11:02:17 -04:00
Dan Halbert
950b5d09d2 guard2once -s ... 2024-05-19 20:40:44 -04:00
Dan Halbert
747b7619ea update headers of most CircuitPython-only files 2024-05-17 14:56:28 -04:00
774f6ac6ab
Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
Scott Shawcroft
e62db5adcd
Fix native property setting from subclass 2023-10-24 16:20:51 -07:00
Dan Halbert
c0a4abc03c Fix merge bugs; remove shared/tinyusb/* 2023-10-19 16:02:42 -04:00
Dan Halbert
4d175ab41a convert to MP_DEFINED_CONST_OBJ_TYPE() 2023-09-19 21:09:29 -04:00
Dan Halbert
2c0fa0f7dc initial merge from v1.20.0; just satisifying conflicts 2023-09-19 11:10:12 -04:00
Dan Halbert
0d2c3c3f08 wip: continuing compilation fixes; mp_obj_alloc everywhere 2023-08-07 20:45:57 -04:00
Scott Shawcroft
0f9fb33371
Merge branch 'main' into rp2040_cpu_frequency 2023-04-19 17:05:58 -07:00
Scott Shawcroft
e2ab7a4751
Change voltage. Refine docs 2023-04-19 17:04:54 -07:00
hathach
fecc1bdedb
fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
Dan Halbert
d8231f1588 Implement safemode.py 2023-02-13 18:26:38 -05:00
MicroDev
d9d94eacca
run updated pre-commit 2023-02-01 13:38:41 +05:30
Colin B
bfba1e4100 Change common_hal_mcu_processor_set_frequency to void
* Add warning about setting RP2040 frequency
2023-01-16 21:26:13 -08:00
Scott Shawcroft
987d9a31c8
Fix pin_or_none 2023-01-12 16:03:45 -08:00
Dan Halbert
a974402542 Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
Colin B
a84a8855ed Add frequency setting for RP2040 boards. 2023-01-07 17:41:37 -08:00
Dan Halbert
03b43b7b3f complete rework for microcontroller.cpu.frequency and wifi.radio MAC addresses 2023-01-02 11:45:58 -05:00
Dan Halbert
a3adcf0e1a clarify read-only mac address; reuse translate msgs 2023-01-02 10:13:20 -05:00
8658e7a954
re-use length validator 2022-11-30 12:06:18 -06:00
Dan Halbert
fed77e918a Fix formatting of "Limitations:" in a couple of modules
When "Limitations:" is in the class docstring, it is sometimes taken
as a class attribute name because of the colon. When exactly is not clear, but
changing embedded colons or various indentations fixes the problem.
2022-10-26 12:33:16 -04:00
Dan Halbert
01c15a1d1b catalog implementation limitations in documentation 2022-10-21 13:58:34 -04:00
Dan Halbert
ead03cd96f add caveat in documentation 2022-10-13 11:47:10 -04:00
907c5d387f
Tweak black_bindings
Originally, black_bindings found each contiguous "//|" block and sent
it to black independently. This was slower than it needed to be.

Instead, swap the comment prefix: when running black, take off
"//|" prefixes and put "##|" prefixes on all un-prefixed lines.
Then, after black is run, do the opposite operation

This more than doubles the overall speed of "pre-commit run --all",
from 3m20s to 55s CPU time on my local machine (32.5s to under 10s
"elapsed" time)

It also causes a small amount of churn in the bindings, because
black now sees enough context to know whether one 'def' follows another
or ends the 'def's in a 'class'. In the latter case, it adds an extra
newline, which becomes a "//|" line.

I'm less sure why a trailing comma was omitted before down in
rp2pio/StateMachine.c but let's roll with it.
2022-09-30 11:18:13 -05:00
Dan Halbert
db065a299f
Merge pull request #6933 from jepler/🥧🐮
Implement a useful subset of `wifi` and `socketpool` modules on 🥧🐮
2022-09-28 18:09:24 -04:00
346fff2e7c
cyw43 basic gpio support, hwaddr in boot_out 2022-09-28 10:06:33 -05:00
b2cc8d2aad
run black_bindings across all bindings 2022-09-27 15:21:42 -05:00
Scott Shawcroft
9d10a3da66
Conditionalize LTO 2022-05-27 12:59:54 -07:00
Dan Halbert
f63b26c534 address jepler's comments and further squeezes 2022-05-20 10:10:55 -04:00
Dan Halbert
a01dec1df9 message consolidation and more use of validators 2022-05-19 15:38:37 -04:00
Alec Delaney
b035277e15
Mention other hardware in microcontroller module 2022-05-12 15:33:11 -04:00
Dan Halbert
5edc59f070
Merge pull request #6337 from jepler/property-storage
Optimize flash storage of properties
2022-05-06 09:55:18 -04:00
Dan Halbert
68acd14342 use generic hash routine where possible 2022-05-03 19:11:54 -04:00
Dan Halbert
9717fd235d make Pin hashable 2022-05-03 15:28:42 -04:00
78cf0a90af
Make MP_PROPERTY_GETTER / _GETSET fully declare the property
This will enable setting data attributes, namely, the section of the
symbol.
2022-05-03 08:48:53 -05:00
31da335cac
Introduce, use MP_PROPERTY_GETTER, _GETSET
Later, these can be changed in cunning ways to save flash storage.
2022-05-03 08:48:52 -05:00
mjs513
2e9e29bf1b Delete Left Over Comments 2022-04-20 04:10:16 -04:00
mjs513
fd41c1ac5b Update based on PR Comments 2022-04-14 06:45:16 -04:00
mjs513
7a30176b49 Fix Build Errors for Other Boards 2022-04-13 13:44:22 -04:00
root
716497c132 corrected pre-commit errors 2022-04-13 12:04:28 -04:00
root
60e330fb0d Added Settable Clock for MIMXRT BOARDS 2022-04-13 09:47:55 -04:00
Timon
a1052d5f73
Initial broadcom port for Raspberry Pi
This targets the 64-bit CPU Raspberry Pis. The BCM2711 on the Pi 4
and the BCM2837 on the Pi 3 and Zero 2W. There are 64-bit fixes
outside of the ports directory for it.

There are a couple other cleanups that were incidental:
* Use const mcu_pin_obj_t instead of omitting the const. The structs
  themselves are const because they are in ROM.
* Use PTR <-> OBJ conversions in more places. They were found when
  mp_obj_t was set to an integer type rather than pointer.
* Optimize submodule checkout because the Pi submodules are heavy
  and unnecessary for the vast majority of builds.

Fixes #4314
2021-11-22 14:54:44 -08:00
Robert Pafford
65f8804816
Implement reset_reason for raspberrypi port 2021-09-08 18:34:34 -04:00
Rob Capellini
b8f2799609 Convert more modules to use MP_REGISTER_MODULE
Convert bitbangio, bitmaptools, _bleio, board, busio, countio, digitalio, framebufferio, frequencyio, gamepadshift, getpass, keypad, math, microcontroller, and msgpack modules to use MP_REGISTER_MODULE.

Related to #5183.
2021-08-26 21:35:02 -04:00
gamblor21
47db00f0af Made error message clear and reduce calls 2021-08-19 20:03:49 -05:00
gamblor21
e5dc722176 Fix for int type and pin validation 2021-08-17 19:16:26 -05:00