-
Notifications
You must be signed in to change notification settings - Fork 9
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
Serial output is blocked by M_UDREx not resetting #11
Comments
I wonder if something is up with the handoff from the bootloader. I did some experimenting and if I force to write to the second serial port I can get output and no bootloop.
|
@vintagepc Did you push the required changes for the emulated serial port (primary)? |
I pushed up an updated source but not an updated firmware as my local build has some other crap in it for debugging. (114 in MarlinSerial.h)
You should be able to just rebuilt it now with |
Note -the changes make it write to the first serial port. By default it outputs to the console you run the program in. To make it a real "port" you can talk to with pronterface, uncomment the |
I made some progress on this. MarlinSerial::Begin clobbers the value of UDRE0. Presumably, on the hardware, this is reset to true automatically, but in simAVR it is left in this state. As a result, it will spinlock waiting for it to be true in the first MarlinSerial::write() call. |
Stock firmware does not boot, it waitspins in MarlinSerial::Write() because it appears M_UDREx is not getting reset. I'm not sure whether this is a quirk of Marlin serial or the emulator since the bootloader can talk over PTY and flash firmware.
The text was updated successfully, but these errors were encountered: