- Reference Applications
- Usage
- Targets used in Demo:
- Visual Studio Code with Arm Keil Studio Pack extensions
- Tools avaialble via vcpkg
- CMSIS-Toolbox
- Arm Compiler for Embedded
- GCC compiler for ARM CPUs
- CMSIS-Toolbox 2.5.0-devint1 (when using STM32CubeMX)
- CMSIS Packs - public pack index
- CMSIS 6.1.0
- CMSIS-Compiler 2.1.0
- CMSIS-RTX 5.9.0
- Target: NXP EVKB-IMXRT1050 Board (Mounted Device: MIMXRT1052DVL6B)
- CMSIS Packs - public repos mapped as software pack
- MDK-Middleware 8.0.0-dev
Install pack:cpackget add <local_path>/Keil.MDK-Middleware.pdsc
- Target: STMicroelectronics B-U585I-IOT02A Board (Mounted Device: STM32U585AIIx)
- B-U585I-IOT02A_BSP 2.0.0-dev
Install pack:cpackget add <local_path>/Keil.B-U585I-IOT02A_BSP.pdsc
- STM32U5xx_DFP 3.0.0-dev
Install pack:cpackget add <local_path>/Keil.STM32U5xx_DFP.pdsc
- CMSIS-Driver_STM32 1.0.0-dev0
Install pack:cpackget add <local_path>/ARM.CMSIS-Driver_STM32.pdsc
- B-U585I-IOT02A_BSP 2.0.0-dev
- Target: NXP EVKB-IMXRT1050 Board (Mounted Device: MIMXRT1052DVL6B)
- IMXRT1050-EVKB_BSP 2.0.0-dev
Install pack:cpackget add <local_path>/Keil.IMXRT1050-EVKB_BSP.pdsc
- CMSIS-Driver 2.9.0-dev
Install pack:cpackget add <local_path>/ARM.CMSIS-Driver.pdsc
- IMXRT1050-EVKB_BSP 2.0.0-dev
- MDK-Middleware 8.0.0-dev
- CMSIS Packs - packs build from public repos and installed localy
- Target: NXP EVKB-IMXRT1050 Board (Mounted Device: MIMXRT1052DVL6B)
- iMXRT105x_MWP 2.0.0-dev
Build pack:gen_pack.sh
Install pack:cpackget add <local_path>/Keil.iMXRT105x_MWP.2.0.0-dev<n>.pack
- iMXRT105x_MWP 2.0.0-dev
- Target: NXP EVKB-IMXRT1050 Board (Mounted Device: MIMXRT1052DVL6B)
MDK-Middleware software pack contains components for IPv4 and IPv6 networking, USB Host and Device communication, as well as file system for data storage.
MDK-Middleware Examples are reference applications that use defined interfaces (APIs) and are therefore hardware agnostic. These project examples show usage of middleware components and require a board layer with drivers for the specific target hardware.
- Open directory
USB Device
in Visual Studio Code (VS Code) - Tools specified in
vcpkg-configuration.json
are automatically installedRemove
cmsis-toolbox
fromvcpkg-configuration.json
to use the2.5.0-devint1
version installed locally (when using STM32CubeMX) - Use bash as command line interface
- Install local packs as described in Demo Prerequisites
- Target: STMicroelectronics B-U585I-IOT02A Board
- Add target under
target-types:
toUSB_Device.csolution.yml
- type: B-U585I-IOT02A board: STMicroelectronics::B-U585I-IOT02A
- Run
cbuild setup
to detect compatible board layerscbuild setup USB_Device.csolution.yml
- Open
USB_Device.cbuild-idx.yml
and copy theBoard-Layer
variable toUSB_Device.csolution.yml
variables: - Board-Layer: <board_layer_path>.Board.clayer.yml
- Copy layer to csolution project (use information from
USB_Device.cbuild-idx.yml
)mkdir -p <copy-to> cp -r <path> <copy-to>
- Adjust
Board-Layer
variable inUSB_Device.csolution.yml
to reflect the copied layer path - Build the application: context
HID.Debug
(specify--packs
to download missing packs)cbuild USB_Device.csolution.yml --context HID.Debug+B-U585I-IOT02A --update-rte --packs
- [Optional]: Examine
*.cbuild.yml
which is the Software Bill-Of-Material (BOM) and lists build information, packs, components, licenses, ... - List generators
csolution list generators USB_Device.csolution.yml
- Run generator (CubeMX)
csolution run -g CubeMX USB_Device.csolution.yml
- Change configuration in STM32CubeMX
- Tab
Pinout & Configuration
- CategorySecurity
- ComponentAES
: enableActivated
- Run
GENERATE CODE
- Tab
- Updated
Board.cgen.yml
contains new files for AES (stm32u5xx_hal_cryp.c
andstm32u5xx_hal_cryp_ex.c
) - Build the modified application: context
HID.Debug
cbuild USB_Device.csolution.yml --context HID.Debug+B-U585I-IOT02A --update-rte
- Use VS Code CMSIS extensions to build the application
- Use
...
andClean Output Directories
(avoid conflict with previous CLI builds) - Use
Manage Solution Settings
- Project NameHID
and Build TypeDebug
- Use
Build
- Use
- Add target under
- Target: NXP EVKB-IMXRT1050 Board
- Add target under
target-types:
toUSB_Device.csolution.yml
- type: EVKB-IMXRT1050 board: NXP::EVKB-IMXRT1050
- Run
cbuild setup
to detect compatible board layerscbuild setup USB_Device.csolution.yml
- Open
USB_Device.cbuild-idx.yml
and copy theBoard-Layer
variable toUSB_Device.csolution.yml
variables: - Board-Layer: <board_layer_path>.Board.clayer.yml
- Build the application: context
HID.Debug
(specify--packs
to download missing packs)cbuild USB_Device.csolution.yml --context HID.Debug+EVKB-IMXRT1050 --update-rte --packs
- Build the application: context
HID.Debug
with GCCcbuild USB_Device.csolution.yml --context HID.Debug+EVKB-IMXRT1050 --update-rte --toolchain GCC --rebuild
Remove startup for AC6
<layer_local_path>/RTE/Device/MIMXRT1052DVL6B/startup_MIMXRT1052.S
to bypass current DFP limitation
- Add target under