Skip to content
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

Fix infinite recursion issue in SERCOM::startTransmissionWIRE #535

Open
wants to merge 2 commits into
base: master
from

Conversation

@acicuc
Copy link

@acicuc acicuc commented Jun 24, 2020

  • If a significant hardware issue is struck startTransmissionWIRE
    calls itself to restart sending the address+r/w byte. The stack
    can be blown very quickly in the event of a prolonged hardware
    issue that warrants transmission restarts. A restart limit has
    been added (currently set at 5) to fix this issue.

  • This fixes issue #476 and it builds on work by @jrowberg in which
    a timeout was added addressing issue #439.

  • Some code simplification and tidying has followed from #439 and #476
    being resolved.

acicuc added 2 commits Jun 24, 2020
* If a significant hardware issue is struck startTransmissionWIRE
  calls itself to restart sending the address+r/w byte. The stack
  can be blown very quickly in the event of a prolonged hardware
  issue that warrants transmission restarts. A restart limit has
  been added (currently set at 5) to fix this issue.

* This fixes issue #476 and it builds on work by @jrowberg in which
  a timeout was added addressing issue #439.

* Some code simplification and tidying has followed from #439 and #476
  being resolved.
* TwoWire::endTransmission layout changed to be more inline with
  TwoWire::requestFrom because they are essentially functioning in
  a similar way.

* Sending of stop condition moved to within block of successful start.
  Apon successful start but unsuccessful read/write, stop condition is
  also sent - regardless of whether stop has been requested at that time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant
You can’t perform that action at this time.