June 2023 Release
This is the June 2023 release of the MSDK.
Installation
See the "Installation" in the MSDK User Guide for instructions on installing the MSDK via the online installer.
For existing users, see the "Maintenance" section of the User Guide for instructions on updating the MSDK.
Offline installers tagged at this version of the MSDK are available at the bottom of this release page. Note: The offline installers have the same pre-requisites as the online installers that must be met before running.
What's Changed
RISC-V Toolchain Upgrade
- The RISC-V toolchain has been upgraded to the latest GNU RISC-V Embedded GCC from xPack.
- Upgrade RISC-V Toolchain, Update Project Files by @Jake-Carter in #628
C++ Support
- Official support for C++ has been added to the MSDK.
- The
AUTOSEARCH
mechanism of the build system will now search for .cpp files in the project to add to the build. - All microcontrollers now include a
Hello_World_Cpp
example demonstrating basic language features such as classes. - Add C++ Support, Add Basic C++ Example, Consolidate GCC Makefiles by @Jake-Carter in #619
Driver Files for Board Support Packages Move
- Driver files for some Board Support Packages have been consolidated to the MiscDrivers folder as of _MiscDrivers: Update all boards to use PB, LED, and stdio source files in MiscDrivers. by @Jacob-Scheiffler in #587
- The BSPs inside the MSDK have been updated to reflect this, but custom BSPs may throw missing file errors if they were using LED/PB/TFT/stdio drivers from the old location.
To resolve these errors, add the updated locations of the source files of your board.mk
of your BSP. If these files are included from your project only, add these locations to your project.mk
file.
# Locate MiscDrivers directory
MISC_DRIVERS_DIR ?= $(MAXIM_PATH)/Libraries/MiscDrivers
# Note: The following additions add all of the MiscDrivers folders to the build.
# You probably don't need all of them.
# Add MiscDrivers folders to search for source files
VPATH += $(MISC_DRIVERS_DIR)
VPATH += $(MISC_DRIVERS_DIR)/ADC
VPATH += $(MISC_DRIVERS_DIR)/BarcodeDecoder
VPATH += $(MISC_DRIVERS_DIR)/Camera
VPATH += $(MISC_DRIVERS_DIR)/CODEC
VPATH += $(MISC_DRIVERS_DIR)/Display
VPATH += $(MISC_DRIVERS_DIR)/ExtMemory
VPATH += $(MISC_DRIVERS_DIR)/LED
VPATH += $(MISC_DRIVERS_DIR)/PMIC
VPATH += $(MISC_DRIVERS_DIR)/PushButton
VPATH += $(MISC_DRIVERS_DIR)/TempSensor
VPATH += $(MISC_DRIVERS_DIR)/Touchscreen
# Add MiscDrivers folder to search for header files
IPATH += $(MISC_DRIVERS_DIR)
IPATH += $(MISC_DRIVERS_DIR)/ADC
IPATH += $(MISC_DRIVERS_DIR)/BarcodeDecoder
IPATH += $(MISC_DRIVERS_DIR)/Camera
IPATH += $(MISC_DRIVERS_DIR)/CODEC
IPATH += $(MISC_DRIVERS_DIR)/Display
IPATH += $(MISC_DRIVERS_DIR)/ExtMemory
IPATH += $(MISC_DRIVERS_DIR)/LED
IPATH += $(MISC_DRIVERS_DIR)/PMIC
IPATH += $(MISC_DRIVERS_DIR)/PushButton
IPATH += $(MISC_DRIVERS_DIR)/TempSensor
IPATH += $(MISC_DRIVERS_DIR)/Touchscreen
Build System Improvements
- "project.mk" is now a tracked file in the dependency graph for the build. When a change is made to project.mk, the project will automatically rebuild. (Rebuild Project when project.mk Changes by @Jake-Carter in #591)
- User's ability to create custom BSPs and load them from directories outside of the MSDK has been improved. (Allow Users to Set BSP Search Directory, Make mxc.h Safe Against LIB_BOARD=0, Remove MiscDrivers Files from mxc.h by @Jake-Carter in #613)
- BLE project build times have been reduced by packing Cordio as a static library file. (Build Cordio as a Library File by @kevin-gillespie in #492)
- A new rule for generating a
project_defines.h
file with build-time and compiler-specific definitions has been added (Update Project Files by @Jake-Carter in #628) - Allow Overriding Linkerfile for SBT Projects by @Jake-Carter in #592
- Makefile targets for flashing have been added (ex
make flash.openocd
) (Added Makefile targets for flashing. by @kevin-gillespie in #519)
VS Code Project File Update
Library Updates
- Add zbar Barcode Decoder Library by @ozersa in #500
- Update LittleFS Library by @Jacob-Scheiffler in #548
Other Notable Features
- CSI2/ImgCapture Image Processing Pipeline Rework, New MAX78002 QSPI Example, New RetinaNet Example by @Jake-Carter in #583
- Add GPIO3 support to MAX32655, MAX32680, MAX78000, and MAX78002 by @Jacob-Scheiffler in #597
- Update HART UART with new transmit features and fixes for MAX32675 and MAX32680 by @jdk-maxim in #600
- Add Cordio API to get Bluetooth MAC address, trace output of MAC address and advertising name for MAX32655, MAX32665, MAX32690 by @EdwinFairchild in #615
- Update AppSwitcher example to use new features with External Flash instead of SDHC by @MertCanBoz1 in #571
- Add Facial Recognition Demo for MAX78000FTHR by @vicloginov in #569
- Add MAX78000CAM01 Board Support, Add CAM01 Face Detection Demo, Move Debayering Implementation by @Jake-Carter in #611
- Add SPI v2 Implementation to MAX78002 by @sihyung-maxim in #632
- Add Examples for Building and Using Static Libraries by @ttmut in #476, #543
Other Changes & Bug Fixes
- Clang-formatter: Updated to Node 16 by @sihyung-maxim in #446
- Cleaning Up ME21 Examples by @Jacob-Scheiffler in #470
- Integrate bootloader with OTAS program code by @AbbyWolf-ADI in #472
- Make a faster PER test by @yc-adi in #482
- Fix Build Issues, Improve Test Coverage by @Jake-Carter in #483
- fix me18 WLP_V1 PER failure by @yc-adi in #478
- Fix ln_args parsing bug on MSYS2 by @Jake-Carter in #479
- Fix RISC-V Debug Functional Test Errors by @Jake-Carter in #489
- MSDK-531: Add OTP_Dump example for MAX32520 by @ttmut in #460
- Dev me12 fthr support by @karaanil in #469
- Added PER mask by @yc-adi in #496
- MSDK-1060: Fix unknown type error in ME10 mxc_lock.h by @ttmut in #486
- Add more info in PER plot by @yc-adi in #499
- Fix Spelling & Grammar Errors in User Guide by @Jake-Carter in #491
- Erase ext flash on failed status by @EdwinFairchild in #506
- Update MAX32570 camera interface by @ozersa in #498
- RTC: Added missing OSCCTRL control bits across all parts. by @sihyung-maxim in #503
- bump llibphy by @EdwinFairchild in #514
- Fix Windows Build Errors from CLI Character Limit by @kevin-gillespie in #524
- Modifying MAX32672 LP example to get lowest current measurements. by @Jacob-Scheiffler in #529
- Adding ME17B SDK changes. by @Jacob-Scheiffler in #511
- User Guide: Add Make to MacOS Dependencies, Add IAR/Keil sections, Add J-Link Setup for Eclipse by @Jake-Carter in #522
- Remove CRC files for MAX32672 by @Jake-Carter in #531
- Add MXC_I2C_AsyncStop and MXC_I2C_AbortAsync Functions by @Jacob-Scheiffler in #538
- Add FaceID Examples for MAX78002, Add requirements.txt for db_gen Utility, Fix AttributeError for db_gen Utility by @aniktash in #537
- MAX32675: Add Pin Definitions for I2C1 by @ozersa in #544
- Adding SFE configuration in MAX32520 Flash example by @Jacob-Scheiffler in #539
- MXC_SYS: Add Support for External Clock Inputs, Fix MXC_SYS API Documentation by @Jake-Carter in #521
- GPIO RevA: Protect Against GPIO Glitches on Configuring Alternate Function by @BobbyCounts in #547
- added fast led api for cordio by @EricB-ADI in #551
- MSDK-1027: CAN: Fix Maximum Value of Prescaler by @ttmut in #546
- Cordio: Pass Options Down to Library Build Correctly by @Jake-Carter in #554
- share wut timer by @EdwinFairchild in #550
- MAX78000, MAX78002: Update Checkpoint for FaceID Database Generation by @aniktash in #552
- MAX32570 cameraif dma bit index updates by @ozersa in #556
- FreeRTOS-Plus: Removing unused features with long path lengths. by @Jacob-Scheiffler in #570
- MAX32675, MAX32680: AFE and HART Driver Updates from Bench and Simulation Testing for New Device Revision by @jdk-maxim in #565
- MAX78000: Updating WearLeveling example to explicitly show flash wear leveling. by @Jacob-Scheiffler in #568
- Cordio: Initialize WSF Message Buffers with Null Terminator by @EdwinFairchild in #517
- Cordio: ble_fcc: Only Check Buffer Length for BT_VER > 9 by @victor-levi-maxim in #477
- Update User Guide by @Jake-Carter in #579
- WearLeveling: Updating WearLeveling example in all micros to match updated MAX78000 version. by @Jacob-Scheiffler in #576
- RTC RevA: Resolving warnings in TrimCrystal function when testing if unsigned integer is negative. by @Jacob-Scheiffler in #572
- MAX32672: Updated AESKEYS and SYS Registers, Deprecated GPIO SetVSSEL and Pad Options. by @sihyung-maxim in #534
- SPI Rev. A: Updating SetTXThreshold and SetRXThreshold to only accept valid threshold values. by @Jacob-Scheiffler in #581
- RTC: Deprecating MXC_RTC_GetSubSecond and MXC_RTC_GetSecond by @Jacob-Scheiffler in #580
- MAX78000FTHR: Bug Fix for CameraIF Streaming Mode, MAX78002: Update KWS20 Audio Tools by @aniktash in #578
- MSDK-1118: FLC: Fix Null Pointer Bug for MAX32660 Flash Base Address by @ozersa in #584
- Add die type to part number conversion table to User Guide by @jlj-ee in #586
- Added support for >1MHz I2C and corrected SPI Mode 1 and 2. Various bug fixes including ME16 timers, USB Suspend / Resume operation and ME18 USB peripheral reset bit. by @sanjayjaroli in #564
- MAX32662, MAX32665, MAX32672: Add new EV Kit Demo examples by @sihyung-maxim in #541
- Add MAXUSB CCID implementation by @karaanil in #595
- MSDK-1167: Fix build issues by @ozersa in #598
- MSDK-1116: Preventing MAX32570 applications from hanging in MXC_FLC_ME13_Flash_Operation. by @Jacob-Scheiffler in #582
- Added RSSI reading in PER test by @yc-adi in #599
- MiscDrivers: Adds volatile qualifier to variable used in ext flash by @EdwinFairchild in #588
- MSDK-171: Fix warnings for MXC_ASSERT_ENABLE not defined cases by @ozersa in #603
- lwIP: Add OS mode configuration by @ttmut in #590
- MSDK-1170: Add include guard for __weak by @ozersa in #602
- fix(PeriphDrivers): Issue #594: Save UART transaction requests before enabling interrupts by @Jacob-Scheiffler in #608
- Update MAX32670 UART Example README by @Suraj-Ajjampur in #607
- feat(Boards): Add USB_CCID example in MAX32570 example list by @ozersa in #612
- fix(Examples,PeriphDrivers): Avoid SIMO soft-start wakeup in LP example for MAX32665 by @victor-levi-maxim in #575
- fix(BLE): Fix memory leak in Cordio stack by @EricB-ADI in #626
- perf(Examples): Change GPIO settings in MAX32670 LP example to improve current consumption by @lorne-maxim in #627
- docs(Examples): Fix pin number for timer configuration by @Vignesh-VVadivel in #624
- fix(Examples): MSDK-1194 Fix to select single SPI operating modes for all Micros by @Suraj-Ajjampur in #625
- refactor(PeriphDrivers): Update MXC_SYS_GetUSN to verify the checksum (and fix some minor bugs) by @Jacob-Scheiffler in #629
- feat(Examples): MSDK-1184 Add Local Echo to WearLeveling Examples by @Suraj-Ajjampur in #630
- fix(Examples): MSDK-1184 Fix CLI bugs in Wear Leveling example. by @Vignesh-VVadivel in #633
- fix(Examples): MSDK-1192: Fix Leading Spaces issue in the Flash CLI example by @Vignesh-VVadivel in #631
- fix(Examples): MSDK-1203: Update READMEs to remove outdated BOARD info by @Suraj-Ajjampur in #637
- fix(Examples): MSDK-1208 Fix I2C Pin number for Audio Codec by @Vignesh-VVadivel in #635
- fix(Examples, PeriphDrivers): Miscellaneous Bug Fixes from Release Testing by @Jake-Carter in #641
New Contributors
- @dependabot made their first contribution in #271
- @EricB-ADI made their first contribution in #344
- @tim-magnusen made their first contribution in #338
- @viviand0097 made their first contribution in #428
- @ttmut made their first contribution in #416
- @AbbyWolf-ADI made their first contribution in #472
- @karaanil made their first contribution in #469
- @BobbyCounts made their first contribution in #547
- @victor-levi-maxim made their first contribution in #477
- @jlj-ee made their first contribution in #586
- @Suraj-Ajjampur made their first contribution in #607
- @MertCanBoz1 made their first contribution in #571
- @Vignesh-VVadivel made their first contribution in #624
Full Diff: v2023_03_Release...v2023_06