Skip to content

Only define Serial ISRs when used #100

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

Open
matthijskooijman opened this issue Jan 21, 2020 · 0 comments
Open

Only define Serial ISRs when used #100

matthijskooijman opened this issue Jan 21, 2020 · 0 comments

Comments

@matthijskooijman
Copy link
Collaborator

matthijskooijman commented Jan 21, 2020

(There is an identical issue for sam here)

Currently, I think that the Serial interrupt handlers are always included in the link (or maybe always included if any serial object is used). Ideally, none of these would be included by default, and only the ISRs for serial objects that are actually used are included. This would leave the way open for libraries or sketches to define their own serial ISR for any otherwise unused serial ports.

This behaviour is already implemented on AVR, by putting the definition of each serial object and its corresponding ISR in a separate .cpp file, and separating all serial objects from each other. Due to the way linking works wrt .a files, this should have the desired effect (when care is taken not to include any stray references to these serial objects). See arduino/Arduino#1711 (comment) for the analysis I did on the original implementation on AVR.

I created this issue after suggesting this as an alternative for #95 (and see also arduino/ArduinoCore-avr#299).

I will not have time to actually implement this, but I'm happy to support anyone that wants to give a stab at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant