Document toolboxDocument toolbox

(8.D.2.7) Debug and Release Build Configurations

About This Guide

This Guide contains strategies to efficiently optimize your Audio Weaver layouts.

Debug and Release Builds

AWE Designer layouts support two Build Configurations: “Debug” and “Release”. In Debug mode, every module in the design is included in the instantiated layout. In Release mode, the user is able to exclude certain modules from being instantiated by marking them as “Debug”. Instantiation is the process by which the user interface objects representing modules in your layout are converted into DSP code.

Some modules are only used for development purposes (debugging), and are not critical to a layout’s overall function. For example, the “Meter” module is often used as a quick visual indicator to confirm that a signal path is indeed sending/receiving a signal. These Meter modules improve the design and tuning process, but will negatively impact memory usage and performance on the target. AWE Designer’s Debug/Release Build Configuration model is a perfect solution for situations like this.

This principle is adopted from the Debug/Release build configurations seen in many C compiler IDEs. For example, an executable/library built for Debug instead of Release will compile all of the code in the file without optimizations, and may include code meant only for debugging or logging purposes.

2.1 Setting a Layout’s Build Configuration

A user can set a layout’s Build Configuration from the Layout->Layout Properties window under the “Build” section.

Every individual layout (.awd file) is saved with its own Build Configuration, meaning a user can have both Debug and Release AWDs open in separate Designer windows at the same time.

Note: The top banner in Designer indicates the layout’s current Build Configuration status. The image below shows the banner after switching to Release.

2.2 Setting an Individual Module’s Debug Status

By default, a module’s Debug Status is set to Release. A module set to Release will always be included in the layout, regardless of the Build Configuration. A module set to Debug will be excluded from the build if the layout is in the Release configuration.

To set a module’s Debug Status, right click on the module and select from the “Debug Status” menu option.

When set to Debug, the module will be grayed out, and “DEBUG” will be appended to the on-canvas name. Note also that the Memory Usage is 0 when a module’s Debug Status and the layout’s Build Configuration are both set to “Debug”.

2.2 Build Configuration Induced Wiring Errors

Because Meter and Sink type modules do not have an output pin, removing them from a layout is unlikely to cause wiring errors. However, Designer allows any module to be marked as Debug, not just Meters and Sinks. Setting an inline module (a module with output pin in the main signal path) to Debug may cause a wiring error. It is up to the user to avoid and resolve these types of Build Configuration induced errors. See the example below. The Scaler module has been marked as debug, causing an unconnected input pin error thrown from the TypeConvert module. However, the Meter module has no issue.

2.3 Generating Target Files

It is important to note that a layout’s Build Configuration affects both building and running on a connected target (via the tuning interface), and generating target files (AWB, AWS, etc). This means that generating an AWB/AWS from a layout in Release configuration will omit the debug modules from the generated files.

If the layout’s Build Configuration is currently set to Debug, the Generate Target Files window will append “_debug” to the preliminary generated file’s “Save Basename” field. The user is free to edit the basenames before generating.