VS Code Extension¶
IPRO SDK Extension 3.3.0 (identifier ipro.ipro-sdk-extension) brings FreeRTOS project browsing, CMake builds, IntelProCube flashing, a serial console and memory analysis into VS Code 1.102 or later. It is not part of the SDK package and is versioned separately from the SDK and from IPRO SDK Online Setup, which installs it; installation is in Windows Setup & VS Code.
At a glance
- Online Setup 3.6.0 installs SDK V2.2.0, the Extension and the tools in one go; an environment installed with Full environment builds as it is.
- On Windows the toolchain is the GCC 13.1.1 Online Setup installs, and the SDK is prepared for it; check with Diagnostics that the Extension uses the compiler of the same installation.
- On the IPRO7AI Reef EVK, flash with chip variant
IPRO7AIand the partition table the application uses; boot2 images and themfgpayload are written with the IntelProCube command line. - The console baud rate (
ipro.monitorBaudRate) is separate from the flashing baud rate (ipro.baudRate). - No source-level (F5) debugging: installing OpenOCD does not set up a GDB debug adapter.
Features¶
| Feature | What it does |
|---|---|
| Projects | Browse the applications by category, pin them and switch the active project (IPRO: Go to Project…, IPRO: Select Project) |
| Build / Batch Build | CMake configuration with Make or Ninja (ipro.generator), debug / release / size profiles, jump from Problems to source |
| Configuration | IPRO Config: Menuconfig, IPRO Config: Open .config, IPRO Config: Load Defconfig |
| Flash / Monitor | Flash with IntelProCube; built-in serial console with its own baud rate |
| Analysis / Debug | Memory Map, Decode Crash Report, Pin Function Lookup; Register Explorer needs a compatible CCI connection |
The SDK build reads .config as it is and does not resolve Kconfig select or depends on. After editing in Menuconfig, check that dependent options are written into .config; see Build System & Configuration.
Using SDK V2.2.0¶
- Install with Online Setup: choose Full environment for a new environment, as in Windows Setup & VS Code; to add SDK V2.2.0 to an environment you already have, choose SDK only, as in Install an SDK or a toolchain on its own.
- Open
<install dir>\sdk\IPRO-SDK-V2.2.0with File → Open Folder… (it containsCMakeLists.txt,appsandbsp). If you did not tick the settings task during installation, runIPRO Setup: Set SDK Rooton it. - Run
IPRO Setup: Run Diagnosticsand check that the SDK root, the compiler, CMake, Ninja, Python and the flash tool all point into the same installation; the compiler is the GCC 13.1.1 in<install dir>\toolchain\riscv_ipro7_win32. To use another toolchain, setipro.toolchainPath(the compiler prefix, ending inriscv64-unknown-elf-).
- Keep the previous SDK directory until V2.2.0 has been built and run on the board. Do not copy an old
build/directory, CMake cache or.vscodefolder into the new SDK. - Workspace settings (
.vscode/settings.json) can override user settings; the path Diagnostics reports is the one in use.
Control Center¶
Press F1 and run IPRO: Open Control Center for the current SDK, project and connection with the common actions in one panel, then IPRO Setup: Run Diagnostics to check the tool paths. Settings can also be searched for ipro in VS Code's Settings.
First build¶
- Run
IPRO: Go to Project…and pickipro7ai_reef_demoin the platform category. - Run
IPRO Config: Select Build Profileand choose debug, release or size. - Run
IPRO: Buildand watch the Terminal; errors in Problems jump to the source. A build has succeeded when it exits with code 0 and the image exists, not when CMake printsConfiguring done. - Check that
apps/platform/ipro7ai_reef_demo/build/build_out/ipro7ai_reef_demo_IPRO7.binwas produced.
IPRO: Batch Build builds several selected projects in one go. After changing the SDK or tool paths, run IPRO: Clean and build again so no stale cache is reused.
Most Reef applications ship their Reef configuration as a separate file (defconfig_reef, defconfig_reef_ov5640 and so on); only ipro7ai_reef_demo, ipro_reef_teach and ipro_agora_sentino are Reef builds as they stand. The command-line form, make -C <app> DEFCONFIG=<file>, and the list of Reef configurations are in Build System & Configuration.
Flashing and the console¶
- Choose IntelProCube with
IPRO Setup: Select Flash Tool, or setipro.flashToolPathto its folder. - Connect the board (SW7 on CAM, SW8 on PWR, console cable on U6, USB-C), run
IPRO: Select Serial Portand pick the console port. With the IPRO Debug Probe, pick its UART port; the CCI port is for register access and cannot be used for the console or flashing. - In
IPRO Config: Configure Flash…set the chip variant toIPRO7AIand the partition table to the one the application uses:partition_cfg_2M.tomlforipro7ai_reef_demoand theipro7_uvc_camwebcam. Applications with their own table are listed in Flashing & Serial Console. - Put the Reef in download mode: hold SW1 (BOOT), press and release SW2 (RESET), release SW1. Then run
IPRO: Flashand check the tool's result. Close any other program that holds the port first. - Press SW2 to start the firmware. Check that
ipro.monitorBaudRatematches the firmware (IPRO Config: Set Monitor Baud Rate), then runIPRO: Serial Monitor. To change the rate, runIPRO: Close Serial Monitorfirst, set the rate, and open the monitor again.
| Setting | Meaning |
|---|---|
ipro.baudRate |
Flashing baud rate, default 921600 |
ipro.monitorBaudRate |
Console baud rate, default 115200; must match the firmware |
ipro.chipVariant |
--chip-variant for the flash tool: IPRO7AI on the Reef |
ipro.partitionTable |
--pt for the flash tool; set it per application on the Reef |
ipro.flashTargets, ipro.activeFlashTarget |
Named flash configurations, to switch between settings without editing them each time |
Every Reef configuration has a 115200-baud console except ipro7_jpeg_decode (defconfig_reef), which uses 921600; the application's CONFIG_PLATFORM_UART_BAUDRATE is authoritative. The first flash of ipro_ble_remote (boot2 and the A/B table) and of ipro_reef_teach (the mfg payload) use the IntelProCube command line; see Flashing & Serial Console and Flash the Edge AI Firmware.
Memory and debug tools¶
IPRO Analyse: Memory Map: after a build, shows each memory region and the usage per component. Whether an image fits is still decided by the linker output and the partition table you flash with.IPRO Analyse: Decode Crash Report: turns an exception backtrace into source locations.IPRO Debug: Pin Function Lookup: looks up pin functions.IPRO Debug: Register Explorer: needs a compatible probe, a working CCI connection and the right board settings. A probe that enumerates over USB does not prove that the CCI link to the board works.
Installing OpenOCD does not give you F5 source-level debugging: the Extension sets up no GDB debug adapter or launch configuration. Console logs and crash decoding are covered in Debugging & Troubleshooting.
Hands-on on the Reef¶
The edit–build–flash loop in VS Code, on the out-of-box firmware.
-
Check the console setting. The firmware's console rate is set in its
.config;ipro.monitorBaudRatemust be the same: -
Change the code. Open
apps/platform/ipro7ai_reef_demo/main.cand change the banner line inmain(): -
Build with
IPRO: Build. The image isapps/platform/ipro7ai_reef_demo/build/build_out/ipro7ai_reef_demo_IPRO7.bin. -
Flash as in Flashing and the console: download mode with SW1 + SW2,
IPRO: Flashwith chip variantIPRO7AIandpartition_cfg_2M.toml, then SW2. -
Check the console with
IPRO: Serial Monitorat 115200. Among the first lines (log prefixes left out):The
Build:line shows the time of your build, and the banner shows your change.reef selftestchecks the board blocks.
Restore the line, or flash the out-of-box image again, when you are done. Next: Create Your First Application and Test Your Application.
Component updates¶
Updates go through IPRO SDK Online Setup, which installs components into a new directory or adds an SDK or a toolchain to an existing environment, and never overwrites the one in use:
| Online Setup mode | Installs | Settings it can switch |
|---|---|---|
| Full environment | SDK, toolchain, build tools (CMake, Ninja, Python), IntelProCube, OpenOCD, Extension | all of them |
| SDK only | SDK | ipro.sdkRoot |
| Toolchain only | RISC-V toolchain | ipro.toolchainPath |
| Build tools only | CMake, Ninja, Python | their paths |
| IntelProCube only | IntelProCube | ipro.flashToolPath |
| OpenOCD only | OpenOCD | — |
| Extension only | the Extension VSIX | — |
SDK only and Toolchain only can add to an existing environment; see Install an SDK or a toolchain on its own. After an update, reopen VS Code and run Diagnostics. To go back, point the settings at the directory you kept, or install the older VSIX with Install from VSIX….
Commands¶
F1 or Ctrl+Shift+P opens the command palette. The Extension declares no default key bindings; bind your own if you like.
| Command | Purpose |
|---|---|
IPRO: Open Control Center |
Open the Control Center |
IPRO Setup: Set SDK Root |
Set the SDK root |
IPRO Setup: Run Diagnostics |
Check SDK and tool paths |
IPRO Setup: Select Flash Tool |
Choose the IntelProCube folder |
IPRO: Go to Project…, IPRO: Select Project |
Find and switch projects |
IPRO Config: Select Build Profile |
Choose debug, release or size |
IPRO: Build |
Build the current project |
IPRO: Clean |
Remove the current project's build output |
IPRO: Batch Build |
Build several projects |
IPRO Config: Menuconfig, IPRO Config: Open .config |
Edit or open the configuration |
IPRO Config: Select Flash Target, IPRO Config: Configure Flash… |
Choose the flash target; set the chip variant, partition table and baud rate |
IPRO: Select Serial Port |
Choose the console / flashing port |
IPRO Config: Set Monitor Baud Rate |
Set the console baud rate |
IPRO: Flash |
Flash the firmware |
IPRO: Serial Monitor, IPRO: Close Serial Monitor |
Open the console; close it and release the port |
IPRO: Build, Flash & Monitor |
Build, flash and open the console in sequence |
IPRO Analyse: Memory Map |
Analyze memory usage |
IPRO Analyse: Decode Crash Report |
Decode exceptions and backtraces |
IPRO Debug: Pin Function Lookup |
Look up pin functions |
IPRO Debug: Register Explorer |
Inspect registers over CCI |
FAQ¶
| Symptom | What to do |
|---|---|
| IPRO commands are missing | Check the Extension version, the VS Code profile, Workspace Trust and the SDK root, then reload the window |
| Diagnostics still shows the old SDK | Workspace and folder settings can override user settings; run IPRO Setup: Set SDK Root again on the V2.2.0 directory |
| Build fails to compile or link | Check with Diagnostics that the compiler is the toolchain of the same installation (on Windows, the GCC 13.1.1 Online Setup installs; on macOS / Linux, GCC 14) |
| Garbled console or the old baud rate | Check the firmware's console rate and ipro.monitorBaudRate, then close and reopen the monitor |
flash jedec id: 00000000 while flashing the Reef |
Set the chip variant to IPRO7AI |
No [All Success] from the flash tool |
The board is not in download mode, or another program holds the port |
| The probe is detected but CCI does not respond | USB enumeration does not mean the board-side CCI link works; check the wiring and board settings |
Versions¶
The SDK, the Extension and Online Setup are separate packages with their own version numbers. The current Extension is 3.3.0, installed by Online Setup 3.6.0; an installer version does not imply the same Extension version. The Extensions view shows the version installed.
Related documents¶
- Windows Setup & VS Code: install the tools and the Extension, add SDK V2.2.0.
- Flashing & Serial Console: the IntelProCube command line, partition tables, boot2 and
mfg. - Build System & Configuration:
.config, alternate configurations and the Reef build list. - Create Your First Application: your own Reef application.