10. Quick Start for Dialog DA148xx

10.1. Supported Environments

Operating System

Windows: Windows 10 / Windows 11

Linux: Ubuntu 22.04 / Ubuntu 24.04

macOS: macOS 14 Sonoma (Apple silicon) / macOS 15 Sequoia (Apple silicon)

VS Code version

1.102.0 (minimum)

VS Code can be downloaded and installed from this page https://code.visualstudio.com/.

10.2. Installation

For the Dialog Family, Renesas Platform provides a straightforward installation wizard to install CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family. To set up your environment:

  1. Open VS Code.

  2. Navigate to the “Renesas” tab in VS Code. Then, click “Renesas Quick Install” in the “Environment” view.

    _images/renesas-quick-install.png
  3. Click the “Install” button for the “Dialog” device family. The Renesas Platform will now check the dependencies required by the Dialog Device Family. The Renesas Platform extension will check the local environment and CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family, then create an installation plan for them if necessary.

    _images/dialog-install.png
  4. When your selection is ready, click the “Start Installations” button. The download and installation process will start automatically.

    _images/dialog-start-installation.png

Most of the installations will be performed automatically, some installations may require manual interaction.

  • During the SEGGER J-Link installation, the setup wizard will appear for manual installation, please follow the steps to complete the SEGGER J-Link installation.

    _images/ra-installation-attention.png

Getting the Dialog Audio Development Platform:

For Dialog projects, it is recommended to use the “Dialog Audio Development Platform” during project development. Customers can access the Audio Development Platform (ADP) software upon request.

For the Dialog Family, Renesas Platform provides a straightforward installation wizard to install CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family. To set up your environment:

  1. Open VS Code.

  2. Navigate to the “Renesas” tab in VS Code. Then, click “Renesas Quick Install” in the “Environment” view.

    _images/renesas-quick-install.png
  3. Click the “Install” button for the “Dialog” device family. The Renesas Platform will now check the dependencies required by the Dialog Device Family. The Renesas Platform extension will check the local environment and CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family, then create an installation plan for them if necessary.

    _images/dialog-install.png
  4. When your selection is ready, click the “Start Installations” button. The download and installation process will start automatically.

    _images/dialog-start-installation.png

Most of the installations will be performed automatically, some installations may require manual interaction.

  • During the “Python 3.10” installation, the terminal wizard will appear for manual interaction. The terminal will show the execution plan and ask for confirmation before continuing. During the installation, it requires administrative rights to execute the installation, thus a password could be needed during the installation. Please make sure that the current user has “sudo” permissions and enter the password.

    _images/common-installation-terminal-attention.png

Getting the Dialog Audio Development Platform:

For Dialog projects, it is recommended to use the “Dialog Audio Development Platform” during project development. Customers can access the Audio Development Platform (ADP) software upon request.

For the Dialog Family, Renesas Platform provides a straightforward installation wizard to install CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family. To set up your environment:

  1. Open VS Code.

  2. Navigate to the “Renesas” tab in VS Code. Then, click “Renesas Quick Install” in the “Environment” view.

    _images/renesas-quick-install.png
  3. Click the “Install” button for the “Dialog” device family. The Renesas Platform will now check the dependencies required by the Dialog Device Family. The Renesas Platform extension will check the local environment and CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family, then create an installation plan for them if necessary.

    _images/dialog-install.png
  4. When your selection is ready, click the “Start Installations” button. The download and installation process will start automatically.

    _images/dialog-start-installation.png

Most of the installations will be performed automatically, some installations may require manual interaction.

  • During the “Python 3.10” installation, the terminal wizard will appear for manual interaction. The terminal will show the execution plan and ask for confirmation before continuing. During the installation, it requires administrative rights to execute the installation, thus a password could be needed during the installation. Please make sure that the current user has “sudo” permissions and enter the password.

    _images/common-installation-terminal-attention.png

Getting the Dialog Audio Development Platform:

For Dialog projects, it is recommended to use the “Dialog Audio Development Platform” during project development. Customers can access the Audio Development Platform (ADP) software upon request.

To utilise the Renesas extensions on macOS, it’s necessary to install:

  • Homebrew

  • XZ Archive Utilities

First, install Homebrew (brew), which is an open-source software package management system that manages the installation of software for macOS. For installation and more information about Homebrew, please refer to https://brew.sh/.

After installing the Homebrew, install the “XZ Archive Utilities” by using brew install xz command.

$ brew install xz

For the Dialog Family, Renesas Platform provides a straightforward installation wizard to install CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family. To set up your environment:

  1. Open VS Code.

  2. Navigate to the “Renesas” tab in VS Code. Then, click “Renesas Quick Install” in the “Environment” view.

    _images/renesas-quick-install.png
  3. Click the “Install” button for the “Dialog” device family. The Renesas Platform will now check the dependencies required by the Dialog Device Family. The Renesas Platform extension will check the local environment and CMake, Ninja Build, Python 3.10, ARM GNU Toolchain, SEGGER J-Link and Support Files for Dialog Family, then create an installation plan for them if necessary.

    _images/dialog-install.png
  4. When your selection is ready, click the “Start Installations” button. The download and installation process will start automatically.

    _images/dialog-start-installation.png

Most of the installations will be performed automatically, some installations may require manual interaction.

  • During the “Python 3.10” installation, the terminal wizard will appear for manual interaction. The terminal will show the execution plan and ask for confirmation before continuing. During the installation, it requires administrative rights to execute the installation, thus a password could be needed during the installation. Please make sure that the current user has “sudo” permissions and enter the password.

    _images/common-installation-terminal-attention.png

Getting the Dialog Audio Development Platform:

For Dialog projects, it is recommended to use the “Dialog Audio Development Platform” during project development. Customers can access the Audio Development Platform (ADP) software upon request.

10.3. Using Audio Development Platform (ADP) for Dialog DA148xx device family

Renesas VS Code extensions support project development for DA148xx family of integrated audio processors. Customers can have access to the Audio Development Platform software upon request and start their Dialog project development by using Dialog Audio Development Platform (ADP). The ADP comes with ready to start, predefined project samples inside the package. Please follow the instructions below to start developing a Dialog device project:

  1. From the ADP sample projects, open a desired start up project in VSCode.

    Note

    Sample projects in the ADP can be found inside the following directories:

    • <ADP_ROOT>/Software/Source/projects/bare_metal

    • <ADP_ROOT>/Software/Source/projects/freertos

  2. After your project is opened in VSCode, open the settings file of the project in .vscode/settings.json path and check the cmake.configureSettings configuration. Make sure the BOARD, BOOT and DEVICE settings are correct for the targeted development. Configure them if necessary.

    _images/dialog-project-settings.png
  3. Then, open “Command Palette” (by using “View”” => “Command Palette” menu), and run the “CMake: Select a Kit” command.

  4. From the list, select the CMake Kit “Renesas Platform: ARM GNU Toolchain - 9-2019-q4-major” toolchain (you can search for search and look for “Renesas Platform” to filter the list).

    _images/dialog-cmake-select-kit.png
  5. In the VS Code Command Palette, run “CMake: Delete Cache and Reconfigure” command.

    _images/dialog-cmake-reconfigure.png
  6. Then, run the “CMake: Build” command.

    _images/dialog-cmake-build.png
  7. By default, the executable file (<project name>.elf) is generated into the “build/syscpu” folder.

10.4. Debugging the Project

A debug session can be started by selecting the created configuration and clicking the [Start Debugging] button in the [Run and Debug] tab, or pressing [F5] from the keyboard.

_images/vscode-debug-start5.png

When VS Code starts the debug session, common debug control flow functions like resume, suspend, step into, step over, step out, restart, terminate debug session can be performed via the debug flow control buttons. Also, the [Debug Console] view will contain useful messages during the debug session.

_images/vscode-debug-start6.png

During the debug session, details about the local variables, device registers, call stack, watched variables, states of the peripherals can be accessed at the primary sidebar of VS Code in the [Run and Debug] tab.

_images/vscode-debug-start7.png

10.5. GDB Server launch parameters for Dialog devices

Reference for common parameters: All common server parameters, including default settings and options applicable to Renesas device families, are documented in the GDB Server Parameters section. The specific parameters of the Dialog devices are described below.

10.5.1. Connection Settings

10.5.1.2. Interface

Option

Details

-uInteface=

Description: Specify the connection type to be used by the emulator when communicating with the CPU on target system.
Default Values: JTAG
Emulator: J-Link
Available Values: SWD: Type SWD, JTAG: Type JTAG
Example: "serverParameters": { "-uInteface=": "SWD" }

-uIfSpeed=

Description: Specify the interface speed in kHz.
Default Values: auto
Emulator: J-Link
Available Values: auto (Selects the appropriate JTAG speed handled by the emulator), adaptive (If the target provides the RTCK signal, select the adaptive clocking function to synchronize the clock to the processor clock outside the core), From 1 to 100000 (Specify value for interface speed in kHz)
Example: "serverParameters": { "-uIfSpeed=": 4000 }
Note: “adaptive” option is just available for J-Link

10.5.1.3. JTAG Scan Chain

Option

Details

-uscIrPre=

Description: Specify the number of IR-bits of all devices which are closer to TDO than the one we want to communicate with.
Default Values: 0
Emulator: J-Link
Available Values: Valid integer number of IR-bits
Example: "serverParameters": { "-uscIrPre=": 0 }

-uscDrPre=

Description: Specify the number of devices which are closer to TDO than the one we want to communicate with.
Default Values: 0
Emulator: J-Link
Available Values: Valid integer number
Example: "serverParameters": { "-uscDrPre=": 0 }

10.5.1.4. Connection

Option

Details

-uResetCon=

Description: Specify whether to hold reset during the connection progress.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uResetCon=": 1 }

-uResetBeginConnection=

Description: Specify whether the CPU should be reset at the beginning of connection.
Default Values: 1
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uResetBeginConnection=": 1 }

-uNoReset=

Description: Specify whether the CPU should not be reset at the end of connection.
Default Values: 1
Emulator: J-Link
Available Values: 0: Reset, 1: No Reset
Example: "serverParameters": { "-uNoReset=": 1 }

-uIdCodeBytes=

Description: Specify the ID code to unlock the device (if one has been set previously to protect connection).
Default Values: None
Emulator: J-Link
Available Values: 32 hex digits
Example: "serverParameters": { "-uIdCodeBytes=": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }

-uLowPower=

Description: Specify if the program uses low power consumption mode or not.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uLowPower=": 0 }

-uInitRegisters=

Description: Specify if registers should be initialized on connection.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uInitRegisters=": 0 }

-uResetPreRun=

Description: Specify if an additional reset should be applied before the downloaded module is run.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uResetPreRun=": 0 }

-uResetBefDownload=

Description: Specify if an additional reset should be applied before the module is downloaded.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uResetBefDownload=": 0 }

-uSetArmModeAfterDownload=

Description: Specify if CPSR(5 bit) should be set to ARM mode after the module is downloaded.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uSetArmModeAfterDownload=": 0 }

-uReleaseCM3=

Description: Specify whether prevent run away at launching a debug session for Cortex-M3 core.
Default Values: 1
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uReleaseCM3=": 0 }

-uSecureVectorAddress=

Description: Specify the Secure Vector address.
Default Values: None
Emulator: J-Link
Available Values: The valid hex address.
Example: "serverParameters": { "-uSecureVectorAddress=": "0x10010110" }

-uNonSecureVectorAddress=

Description: Specify the Non Secure Vector address.
Default Values: None
Emulator: J-Link
Available Values: The valid hex address.
Example: "serverParameters": { "-uNonSecureVectorAddress=": "0x10010110" }

-uHotPlug=

Description: Specify if connecting to an already running target system.
Default Values: 0
Emulator: J-Link
Available Values: 0: Disabled, 1: Enabled
Example: "serverParameters": { "-uHotPlug=": 1 }

-uDisconnectionMode=

Description: Specify the disconnection mode to control the target state after disconnecting.
Default Values: 2
Emulator: J-Link
Available Values: 0: No change mode, 1: Stop mode, 2: Continue mode
Example: "serverParameters": { "-uDisconnectionMode=": 1 }

10.5.1.5. SWV

Option

Details

-uSWOcoreClock=

Description: Specify the core clock speed in Hz.
Default Values: 0
Emulator: J-Link
Available Values: Valid frequency value in Hz
Example: With 8 MHz: "serverParameters": { "-uSWOcoreClock=": 8000000 }

10.5.1.6. TrustZone

Option

Details

-uEnableSciBoot=

Description: Specify whether the boundaries of memory regions need to be set to separate each memory region when a debugging connection is initiated.
Default Values: 0
Emulator: J-Link
Available Values: 0: Disabled, 1: Enabled
Example: "serverParameters": { "-uEnableSciBoot=": 1 }

-uTz=

Description: Specify the debugging type of TrustZone.
Default Values: None
Emulator: J-Link
Available Values: SSD: Secure Software Development, NSECSD: Non Secure Software Development
Example: "serverParameters": { "-uTz=": "NSECSD" }

-uAuthLevel=

Description: Specify the authentication level.
Default Values: 0
Emulator: J-Link
Available Values: 0 (AL0: Ignores the key and connect without authentication), 1 (AL1: Authenticate device with key to AL1), 3 (AL2: Authenticate device with key to AL2), 255 (ALERASE: Initialize device back to AL2)
Example: "serverParameters": { "-uAuthLevel=": 3 }
Note: Use this parameter only with TrustZone devices that support Authentication Level

-uAuthKey=

Description: Specify the Authentication Key.
Default Values: None
Emulator: J-Link
Available Values: Key for Authentication
Example: "serverParameters": { "-uAuthKey=": "ACD6B31BF68FE9AE07AEF6B3C3870730" }
Note: Use this parameter only with TrustZone devices that support Authentication Level

10.5.2. Debug Tool Settings

10.5.2.1. Break

Option

Details

-uFlashBp=

Description: Specify whether to use software breakpoints to flash memory or not.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uFlashBp=": 0 }
Note: This parameter does not need to be specified if -uProgReWriteIRom or -uProgReWriteDFlash is sent with value 1.

-uSimulation=

Description: Specify if Instruction Set simulation will be used or not.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uSimulation=": 0 }
Note: This parameter does not need to be specified if -uProgReWriteIRom or -uProgReWriteDFlash is sent with value 1.

10.5.2.2. Flash

Option

Details

-ueraseRomOnDownload=

Description: Specify whether or not to erase the flash ROM (program ROM) before a download.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-ueraseRomOnDownload=": 0 }

-ueraseDataRomOnDownload=

Description: Specify whether or not to erase the data flash ROM before a download.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-ueraseDataRomOnDownload=": 0 }

-ucfiFlashWorkStart=

Description: Specify the start address of the Working RAM area which is used by JLink during flash programming.
Default Values: 0
Emulator: J-Link
Available Values: Valid address
Example: "serverParameters": { "-ucfiFlashWorkStart=": "0x20001000" }
Note: Start address and end address of Working RAM area have to be set together and start address have to be smaller than end address.

-ucfiFlashWorkEnd=

Description: Specify the end address of the Working RAM area which is used by JLink during flash programming.
Default Values: None
Emulator: J-Link
Available Values: Valid address
Example: "serverParameters": { "-ucfiFlashWorkEnd=": "0x20004000" }
Note: Start address and end address of Working RAM area have to be set together and end address have to be bigger than start address

-ucfiFlashStart=

Description: Specify the start address of CFI Flash Area.
Default Values: 0
Emulator: J-Link
Available Values: Any valid hex address.
Example: "serverParameters": { "-ucfiFlashStart=": "&DebugMon_Handler" }
Note: Start address and end address of CFI flash have to be set together and start address have to be smaller than end address.
The CFI flash address will not be set in Renesas GDB server if Work RAM address is not set before.

-ucfiFlashEnd=

Description: Specify the end address of CFI Flash Area.
Default Values: 0
Emulator: J-Link
Available Values: Any valid hex address.
Example: "serverParameters": { "-ucfiFlashEnd=": "&PendSV_Handler" }
Note: Start address and end address of CFI flash have to be set together and end address have to be bigger than start address. The CFI flash address will not be set in Renesas GDB server if Work RAM address is not set before.

-uExcludeFlashCacheRange=

Description: Specify whether enable and exclude the Flash Cache for a address range.
Default Values: If this parameter is not sent, this feature will be disabled.
Emulator: J-Link
Available Values: Set of address value with below formats: <Start address>,<End address> or <Start address>-<End address>
Example: "serverParameters": { "-uExcludeFlashCacheRange=": "0x10000000,0x100FFFFF" } or "serverParameters": { "-uExcludeFlashCacheRange=": "0x10000000-0x100FFFFF" }

-uflashMemoryType=

Description: Specify the Flash Memory type.
Default Values: None
Emulator: J-Link
Available Values: SerialFlash, HyperFlash, or OctaFlash
Example: "serverParameters": { "-uflashMemoryType=": "SerialFlash" }

-uflashBusType=

Description: Specify the Flash Bus type.
Default Values: None
Emulator: J-Link
Available Values: SPIBSC, HyperBus, or OctaBus
Example: "serverParameters": { "-uflashBusType=": "SPIBSC" }

10.5.2.3. RTOS

Option

Details

-uOSRestriction=

Description: When debugging a project with a large number of OS threads the Debug View will always check the status of every thread. Selecting Yes will force the view to only check the current thread. This speeds up debugger responsiveness.
Default Values: 0
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uOSRestriction=": 1 }
Note: "-uOSRestriction=": 0: Do not restrict OS thread checking, "-uOSRestriction=": 1: Restrict OS thread checking to the current thread

10.5.2.4. System

Option

Details

-uAllowCachingFlash=

Description: Specify whether the flash contents are cached by J-Link or not.
Default Values: 0
Emulator: J-Link
Available Values: 0: Yes, 1: No
Example: "serverParameters": { "-uAllowCachingFlash=": 0 }
Note: "-uAllowCachingFlash=": 0: Enable caching for the flash contents, "-uAllowCachingFlash=": 1: Disable caching for the flash contents

10.5.2.5. Time Measurement

Option

Details

-uCECycle=

Description: For Renesas RZ targets, this will set the value for bit[3] of the PMCR register to 0.
Default Values: 1
Emulator: J-Link
Available Values: 0: No, 1: Yes
Example: "serverParameters": { "-uCECycle=": 1 }

-uCPUFrequency=

Description: Specify the operating frequency (ICLK) in Hz. It is used to calculate the timestamp of SWO trace.
Default Values: None
Emulator: J-Link
Available Values: The frequency in Hz in range 1000 - 999999000
Example: "serverParameters": { "-uCPUFrequency=": 120000000 }

10.5.2.6. Reset Behaviour

Option

Details

-uResetBehavior=

Description: Specify the behaviour for the reset command.
Default Values: Reset
Emulator: J-Link
Available Values: Reset, ChangePC
Example: "serverParameters": { "-uResetBehavior=": "Reset" }

-uPcOnReset=

Description: Specify the value which is set to PC.
Default Values: None
Emulator: J-Link
Available Values: Any valid address or symbol
Example: "serverParameters": { "-uPcOnReset=": "&main" }
Note: If PC value is not specified, it will be set to the entry point value.

-uSetCpsrOnReset=

Description: Specify the value which is set to CPSR.
Default Values: None
Emulator: J-Link
Available Values: Any valid address
Example: "serverParameters": { "-uSetCpsrOnReset=": 0x1da }
Note: If CPSR value is not specified, it will keep the original value.