-
Notifications
You must be signed in to change notification settings - Fork 12
Description
The ir_reprogramming branch is in a somewhat unfinished state. The revised python script and the new file reprogram.c need to be modified in tandem so as to correctly identify, format, and send; then receive, unformat, and use the relevant data. I was in the middle of doing this when I hit a deeper issue with our use of the linker script to separate user code in to its own section.
In its current state, just reprogramming everything with the Atmel Studio as normal, everything works fine. But the specification of the .usrdat, .usrbss, and .usrnoinit sections are currently commented out. If you move the comment marker down so that just the .usrdat section is included again and recompile, there is an error.
Specifically, printf is broken. More specifically, just printf's in user code. I'm pretty sure this has to do with a discrepancy between where printf thinks the address of the passed string is, and where it actually is. I suspect that this has to do with the code for printf being on the opposite side of the 2^16 address size boundary as our user code, but haven't tested that notion thoroughly. More to the point, I'm not sure what we can do about it. Unfortunately, I don't have more time in the short term to work on this.
Note: this is also separate from the next step, which is to add some smart handling for lost packets to the code to make sure all of the Droplets get the code before they reboot.