Frequently Asked Questions
As with all FAQs - this is an ever-growing list of your questions.
Q: My program occasionally hangs. Background tasks like hardware PWM and interrupts continue to function but everything else dies. Why?
A: There is a known issue (thank you Admin at SoR) if you have defined I2C devices but they are not physically connected. It is recommended that any unused sensors are removed from your code in order to avoid this sort of issue. This will prevent the 'hanging' and, as important, stop your program from responding to 'fictitious' responses from the sensors.
Q: The compiler generates the error 'region text is full'. What does this mean?
A: Your program is too big to fit on the processor. You will either need to make your program smaller, experiment with optimisation settings, or upgrade to a larger processor.
Q: The compiler generates the error 'multiple definition of `__floatunsisf' '. What does this mean?
A: There is a problem in your Library Configuration. You either haven't specified the required libraries or they are not listed in the correct order. See the section: Getting started with AVRStudio
Q: I've seen references to a Writer but I just don't understand what they are or what they are for?
A: A Writer is a 'place' that you can send text to. If you've used other programming languages and are familiar with the concept of an output stream then 'that' is a Writer. If not then imagine that you have 4 UARTs. Each of these are capable of writing stuff out to other devices such as a terminal emulation program running on your PC. But the bare bones of a Writer is to say 'output this byte'. Complex text formatting commands, such as those in rprintf.h, end up sending out each character to the Writer last set by rprintfInit. This command completes the 'plumbing' from rprintf to the 'Writer' All of these destinations have a 'GetWriter' function. So all the UARTs, Displays, (and anything else you may want to direct output to) support this function.