How To Configure APM Debugging

VisualMicroDebugAPMFastSerial.png

Visual Studio is currently the only IDE capable of debugging any Arduino project and is also aware of the special APM Serial communications system called FastSerial.

Debugging a drone project requires functionality that exceeds what a normal windows/linux debugger can provide. For example, setting a debug trace and reporting message in a fast loop would normally produce too many messages to be of any use.

The Arduino debugger in Visual Studio allows TracePoints (or BreakPoints) to be conditional based upon any arduino code (as would be expected by any serious debugger) but it also goes one step further by allowing messages to be limited to any specified rate such as 1 per second.

Another important feature of the Visual Studio debugger for drone projects is the ability to allow variables to be altered without the need for the program being debugged to stop execution (break). The VS debugger has a powerful feature that automatically queues requests to alter variables allowing the request to be processed when the code reaches the specified execution point.

ArduPlaneFastSerialDebug.png

Below we can see multiple "intelligent" messages have been configured to display execution information from an Arduino while the Arduino program is running. The text of these messages do not reside on the Arduino and therefore do not consume vast amounts of limited Arduino memory

DebugSetVariableRunningExample2.pngRead more here

Arduino for Visual Studio Professional is the only 100% compatible Arduino plugin. Visual Studio Pro can be obtained free for 3+ years

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • I just love this debugger!

  • Yip, this is brilliant. Will download the plug-in and give it a go - thanks for the info. It is not easy to debug real time programs - when you start looking at multi threaded apps that adjust global variables then it becomes a formula for disaster if you have a debugger stopping the process(not that using globals is a good idea). Log files seems like the most feasable way for real time apps, but it is sssssooooo painfull to work through a debug log. Do arduino use multiple threads or is it strictly bound to the calls from the main loop and subloops befined in that.

    Does this tool have  profiler/performance monitor?

  • Looks like a great product with a great potential for improving the quality of complex Arduino-based s/w such as ACM!

This reply was deleted.