Release Notes

What's new in Hexagon SDK v3.3.2?

Hexagon SDK 3.3.2 introduces support for SDM845. This release build upon the Hexagon SDK 3.2 and adds features, capabilities and improvements listed below.

  • Hexagon architectures supported by this release: v60, v60-HVX, v61, v62, v62-HVX, v65, v65-HVX.
  • Snapdragon devices supported by this release: Simulator, SDM630, SDM660 (CDSP), SDM820, SDM835, SDM845 (ADSP and CDSP), SDM670 (ADSP and CDSP).
  • sysMon DSP Profiler allows collection of DSP metrics & statistics that help in analyzing performance of the SW running on the DSP - things like, MPPS used, DDR/AXI BW usage, various clock speeds while running the SW, cache hits/misses, etc.
  • Support for LLDB is included allowing users, via USB connection between development workstation and reference board, perform common debugging operations such as single-stepping through the code, using breakpoints, and inspecting register or memory contents. The debugger is accessible from the SDK IDE (Eclipse) or from the command line.
  • Incorporates LLVM Tools release 8.1.04 - see tools release notes for detailed info:
    • Link time optimizations (LTO) - better performance and code size by giving compiler a larger scope for optimization. Compiler works one file at the time, but with LTO it optimizes across all the files in the build. Observed 25% code size reduction but your mileage can vary.
    • Thread Local Storage (TLS) - declare a variable with 1 instance per thread.
    • Integrated assembler speeds up compilation time.
  • QuRT Secure Resource Manager will allows system resources (drivers) to be used in both the normal and secure context (DRM for example) without having to explicitly enforce separation between contexts.
  • QuRT HVX Preemption enables saving and restoring of HVX registers when context switch takes place due to process preemption.
  • We are including support for Halide, which is a is a programming language for vision processing. Halide is designed as a dialect of C++. This allows programmers who are familiar with C++ to start authoring Halide programs. The Halide toolset - available as part of the Hexagon SDK and the Hexagon LLVM toolset - contains a Halide compiler that targets the Hexagon DSP and Hexagon Vector eXtensions (HVX) architecture.
  • Enablement for Machine Learning - this release, paired up with Hexagon Neural Network Libraries available here provide a starting point for sophisticated Machine Learning use cases with ops optimized for Hexagon architecture.
  • New Libraries:
    • qmath library - offers non-IEEE-compliant HVX-vectorized floating point arithmetic, conversion to/from arrays of float or double, utility library for helping to convert a floating point implementation to a fixed point implementation.
    • qdebug library - utility library for printing out scalar and HVX register contents from C and assembly.
    • Asynchronous communication APIs - we are introducing a library that can enable asynchronous communication between CPU and DSP. The asynchronous message queue is included in the Hexagon SDK as “asyncdspq” as a user space library and does not require system-level changes on SDM845 or later. More details, including API descriptions, are included in the “Asynchronous DSP Message Queue” document accompanying the Hexagon SDK.
  • Documentation improvements.

Known Issues:

  • Inspecting the contents of a scalar register with qdebug might on occasions corrupt the contents of vector registers. This bug will be corrected in the next SDK release.

Troubleshooting Installer Issues:

  • java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
    The PS1 environment variable is responsible for the appearance of the command prompt in the console. The letter 'u' represents the user that is logged-in. When the PS1 environment variable includes a 'u', the installer confuses it with a Unicode character and the installation fails.   You can change PS1 value as follows and re run the installer: export PS1=“>”

What's new in Hexagon SDK v3.2?

Hexagon SDK 3.2 is primarily meant for SDM660 support.

  • Support for SDM660
  • Updated camera streaming example
  • Updated benchmark example to support v60
  • Updated makefiles to support flags to off-load to different DSPs
  • Updated sysmon
    • Support for SDM660

What's new in Hexagon SDK v3.1?

Hexagon SDK 3.1 is mainly meant to support C++ 11/14. Hexagon toolset, qurt and other libraries have been updated to support this feature. An example to showcase this feature has also been added.

New features:

  • Support for SDM835 (MSM8998)
  • Updated Hexagon toolset (version 8.0.08), which supports C++ 11/14
  • Updated qurt libs
  • Support to 8.0 variants
  • Support to LE targets (Note: LE toolset is not released as part of this SDK. You will need to install it separately)
  • Added an example for computation domains support
  • CV
    • Added new Computer Vision HVX example ‘benchmark’ for MSM8998
      • Added new Computer Vision HVX examples 'dilate5x5_v60', 'gemm' for MSM8996 and MSM8998
  • Added rpcperf epplication to measure the overhead associated with FastRPC with various buffer sizes
  • Bug fixes mini-dm (Windows)
  • Multiple device support in mini-dm (Linux)
  • Document updates and fixes
  • Hexagon IDE bug fixes

Features not supported:

  • Remote debugger support is not available for 8996/8998 in this version of SDK

Installer updates:

  • Minimal NDK support. This SDK can be used if you are using the standard build system options provided in the SDK and variants. If you need anything more, you might have to install full NDK from Google
  • Installer_Dependencies.py script helps in installing SDK dependencies in case the installer fails to download

What's new in Hexagon SDK v3.0?

  • Support for Qualcomm® Snadragon™ 820 (8096) (Note: For previous generation chipsets, please use SDK 2.x)
  • Support of 7.2 and 7.4 Hexagon toolsets
  • Support for v62 and v64 Hexagon architectures
  • Audio/Voice
    • CAPI V2 Voice wakeup example, CAPI V2 Speaker Protection example, Dummy ECSN example, Voice IMC example
    • Updates to Audio/Voice unit test frameworks
  • Added Machine learning examples (k-means, linear regression)
  • Added new Computer Vision examples for integral image and histogram computation
  • Updates to camera streaming examples. Added simulation example for HVX_add_constant
  • First release of Hexagon Profiler (sysmon) in SDK
  • First release of unit test profiling library
  • Features not supported
    • Remote debugger support is not available for 8996/8998 in this version of SDK
    • Audio/Voice integration support on simulator is no longer supported
  • Installer updates
    • Selectable SDK components Installation
    • Reduced installation time
    • Error logging

What's new in Hexagon SDK v2.0?

  • Support for the Snapdragon 810 (8094)
  • Computational offload to a 2nd DSP (Use the modem DSP for non-modem functions)
  • Audio calibration (Set/Get parameters) from Android Java application
  • Audio CAPI_V2 support
  • APPI to CAPI_V2 migration guide
  • Framework to support heterogeneous computing for image processing
  • Lots more free memory to load bigger dynamic modules
  • Support for the LLVM compiler
  • Android Position Independent Executable (PIE) support
  • 64 bit native Android application support
  • Get your serial number from the Android UI
  • Discover com ports connected to Qualcomm HS-HSB devices
  • Auto-discover ION heap, used by calculator examples
  • Extract pcm samples from a mini-dm log
  • Support for run-time message logging (Runtime FARF)
  • Simulated test framework for Snapdragon 810 (8094)
  • Memory architecture documentation
  • QuRT example projects
  • Support for running QuRT in simulation for unit testing
  • Added Voice workflow recommendation for static integration and dynamic loading

Hexagon SDK v2.0 Add-On for HVX

  • LLVM Ver. 7.2.X Hexagon Tools
  • Hexagon Series 600 DSP processor Simulation Environment
  • Camera Streaming, videpost processing
  • DSP FastCV libraries upgraded tsupport HVX Functionality
  • Debugger verification script
  • RTOS update tsupport V60 architecture