Release Notes

What's new in Hexagon SDK v3.5.4?

This release builds upon the Hexagon SDK 3.5.3 and includes:

  • Adds CFI fix in QAIC to resolve stack overflow issue
  • Resolves lsb_release error from QAIC Makefile
  • Includes the fix for thread-safety issues in rpcmem init and deinit calls
  • General bug fixes

What's new in Hexagon SDK v3.5.2?

This release builds upon the Hexagon SDK 3.5.1 and includes:

  • Introduces support for Bitra target
  • Removes the need to strip out Cygwin from the system PATH when setting up SDK environment
  • Includes security fixes in QAIC generated code
  • General bug fixes

What's new in Hexagon SDK v3.5.1?

This release builds upon the Hexagon SDK 3.5.0 and includes:

  • Introduces support for SM8250, SAIPAN, RENNEL, CYPRESS targets
  • Incorporates Hexagon Tools release 8.3.07
  • Incorporates Halide Tools release 2.2.03
  • Incorporates Hexagon NN release 2.10.1
  • Incorporated new Qurt Kernel release 3.2.06
  • Added Support Qualcomm Hexagon Libraries (QHL)
  • Introduces CMake based libraries cross compile support for Hexagon Platform
  • Added image_dspq library for enqueuing image processing tasks through asyncdspq on DSP
  • Add unsupported variants info in capi_v2_gain_cpp example
  • Add mini-dm support for both Ubuntu16 and Ubuntu18
  • Enable remote debugger on SM7250 and SM6250
  • Add simulator support for HAP_mem API
  • Added 64bit variants of sysMonApp and sysMonAppLE executables
  • Converted all the SDK examples and libs to glue free
  • General bug fixes

What's new in Hexagon SDK v3.5.0?

This release builds upon the Hexagon SDK 3.4.3 and includes:

  • Introduces support for SM8250 target
  • Incorporates Hexagon Tools release 8.3.04
  • Introduces Android NDK r19c tools support
  • Incorporates Halide Tools release 2.2.02
  • Incorporates Hexagon NN release 2.9.5
  • Updates Eclipse CDT to Photon
  • Introduces CMake support in Benchmark_v65 example
  • Introduces Remote debugger support on SM8250
  • Updates syMon_DSP_Profiler_V2.apk with SM8250 support
  • Updates HTML based sysmon_parser utilities with SM8250 support
  • Updates sysMonApp with Android Q support - need to run from /data/local/tmp/
  • Introduces build support for hard-float and soft-float ABI in UbuntuARM 32 bit variants
  • Updates all example and dependencies to remove /glue folder dependency
  • Stack size of Run_main_on_hexagon target version is configurable now similar to run_main_on_hexagon of simulator
  • Exposes new HAP_power_destroy API
  • Introduces support for PD dump
  • General bug fixes
  • Known Issues with Hexagon IDE CDT upgrade

What's new in Hexagon SDK v3.4.3?

This release builds upon the Hexagon SDK 3.4.2 and includes:

  • Introduces support for SM6125 and QCS403 targets
  • Incorporates Hexagon NN release 2.6
  • Removes adsp_ps dependency on libstdc++ and updates install_adsp_ps.py for Android-P builds
    • adsp_ps is an android application that allows the caller to query the DSP for a list of running FastRPC processes, please see /docs/adsp_ps.html for more details about adsp_ps
  • Exposes apps_mem_share_map() and apps_mem_share_munmap() in apps_mem.h located at /incs
    • Updated apps_mem.h located at /incs with apps_mem_share_map() and apps_mem_share_unmap() to map the buffers on DSP using an APPS fd
  • Introduces a new capiV2 example (capi_v2_gain_cpp) for C++11/14 support
  • Updates capiV2 audio events
  • Updates voice IMC module config file
  • General bug fixes
    • Fixes Hexagon IDE bug related to compilation of Hexagon projects created with Hexagon Project wizard for arch v62 and above

What's new in Hexagon SDK v3.4.2?

This release builds upon the Hexagon SDK 3.4.1 and includes:

  • Support for SM7150
  • Halide Tools release 2.2
  • Hexagon Tools release 8.3.02 which introduces automatic vectorization support for HVX
  • Hexagon NN release 2.5
  • Hexagon Trace analyzer to process Hexagon ETM Traces
  • General bug fixes/Documentation updates

What's new in Hexagon SDK v3.4.1?

This release builds upon the Hexagon SDK 3.3.3 and includes:

  • Support for SM8150, SM6150, QCS405
  • Halide version 2.1.04
  • Hexagon LLVM version 8.2.07
  • Support for Signature-free compute processing
  • Hexagon NN library and examples allowing to run Neural Networks on the Hexagon DSP
  • Audio H2XML tool
  • Qprintf library that extends printf support to assembly language and HVX register types
  • Simplified command-line on-target debugging

Snapdragon devices supported by this release include Simulator, SDM630, SDM660 (CDSP), SDM820, SDM835, SDM845 (ADSP and CDSP), SDM670 (ADSP and CDSP), SDM710, QCS605, SM8150, SM6150, QCS405.

What's new in Hexagon SDK v3.3.3?

This release builds upon the Hexagon SDK 3.3.2 and includes:

  • Signer update for the OpenSSL 1.1.0
  • Android NDK full installation + scripts
  • Bug fixes

Snapdragon devices supported by this release include Simulator, SDM630, SDM660 (CDSP), SDM820, SDM835, SDM845 (ADSP and CDSP), SDM670 (ADSP and CDSP).

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