Skip to content

October 2023 Release

Compare
Choose a tag to compare
@lorne-maxim lorne-maxim released this 11 Oct 03:03
· 304 commits to release since this release
0ee115d

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

API Updates

  • fix(Examples)!: Require DMA Channel as Input Argument for ADC DMA Conversions, Fix ADC DMA Transfer Bug for Channels > 0 by @Vignesh-VVadivel in #643
  • feat(PeriphDrivers)!: Add support for configuring GPIO Drive Strength by @sihyung-maxim in #673
  • feat(Examples,PeriphDrivers)!: Add SPI v2 Target Transaction functions by @sihyung-maxim in #662

(Opt-in) Native Make Support on Windows

Installation

As of #653 Native Make binaries are now available on Windows. This is a new default component, so existing installs must manually add it through the maintenance tool. Fresh installs will install it by default.

image

Eclipse and VS Code have been updated to look for the native Windows binaries after the MSYS2 binaries to make this an "opt in" feature and preserve compatibility with existing projects.

To opt in to the native binaries on Windows, uninstall the MSYS2 component and install the GNU Make component. Testing showed some incompatibilities having both MSYS2 tools and native Make on the PATH at the same time. Primarily, the colorized output for parallel builds is broken when both are present.

image

Updating Existing VS Code Projects

The latest .vscode/settings.json in the MSDK projects have made the following changes to add the binary to the path. Existing projects should make the same change.

--- a/.vscode/settings-old.json
+++ b/.vscode/settings.json
@@ -1,6 +1,6 @@
 {
     "terminal.integrated.env.windows": {
-        "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:Make_path};${env:PATH}",
+        "Path":"${config:OCD_path};${config:ARM_GCC_path}/bin;${config:xPack_GCC_path}/bin;${config:MSYS_path}/usr/bin;${config:Make_path};${env:PATH}",
         "MAXIM_PATH":"${config:MAXIM_PATH}"
     },
     "terminal.integrated.defaultProfile.windows": "Command Prompt",
@@ -33,7 +33,8 @@
     "OCD_path":"${config:MAXIM_PATH}/Tools/OpenOCD",
     "ARM_GCC_path":"${config:MAXIM_PATH}/Tools/GNUTools/${config:v_Arm_GCC}",
     "xPack_GCC_path":"${config:MAXIM_PATH}/Tools/xPack/riscv-none-elf-gcc/${config:v_xPack_GCC}",
-    "Make_path":"${config:MAXIM_PATH}/Tools/MSYS2/usr/bin",
+    "Make_path":"${config:MAXIM_PATH}/Tools/GNUTools/Make",
+    "MSYS_path":"${config:MAXIM_PATH}/Tools/MSYS2",

     "C_Cpp.default.includePath": [
         "${workspaceFolder}",

Verification

The following version string can be used to verify the PATH is set up correctly to load the native binaries.

$ make --version

GNU Make 4.4.1
Built for Windows32
Copyright (C) 1988-2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

SDHC Fixes and FatFS Version Upgrade

As of #720 a critical bug in the SDHC library was fixed, which was causing SD cards to be formatted with the incorrect size. Support for FatFS version R0.15 has also been added to enable the exFAT format and higher capacity SDXC cards.

Users who would like to upgrade their projects to R0.15 can use the new FATFS_VERSION build configuration variable to ff15. The previous version (R0.13) has been left the default for this release.

FatFS changed the f_mkfs API to accept a format struct. Existing code can make the following change to comply with the new API:

-    if ((err = f_mkfs("", FM_ANY, 0, work, sizeof(work))) !=
+    MKFS_PARM format_options = {
+        .fmt = FM_ANY
+    };
+
+    if ((err = f_mkfs("", &format_options, work, sizeof(work))) !=
         FR_OK) {
         printf("Error formatting SD card: %s\n", FF_ERRORS[err]);
     }

New Command-Line Interface Library

  • As of #679, a pre-written UART CLI library is now available. Supporting documentation can be found in the MSDK User Guide

image


Helper String Added to Build Output

As of #742 the build system prints the following helper string to improve exposure to the MSDK's supporting documentation and resources.

****************************************************************************
* Analog Devices MSDK
* - User Guide: https://analog-devices-msdk.github.io/msdk/USERGUIDE/
* - Get Support: https://www.analog.com/support/technical-support.html
* - Report Issues: https://github.com/Analog-Devices-MSDK/msdk/issues
* - Contributing: https://analog-devices-msdk.github.io/msdk/CONTRIBUTING/
****************************************************************************

It can be disabled by setting SUPPRESS_HELP = 1 in the build system.


Other Bug Fixes and Improvements

  • fix(workflow): Make pull_request_template.md visible and update trigger-types for auto-labeler workflow by @sihyung-maxim in #647
  • fix(BLE): Struct used in volatile context now marked as volatile by @EricB-ADI in #645
  • docs(BLE): Update MTU configuration procedure by @EdwinFairchild in #636
  • fix(Examples): Fix return value logic for verifyData function in I2C examples by @Jacob-Scheiffler in #651
  • chore(Examples): Test examples on Rev. B production silicon for MAX32655 by @Jacob-Scheiffler in #649
  • fix(BLE,Examples): Log packet count on BLE dats speed test by @EdwinFairchild in #648
  • feat(Examples,MiscDrivers): Add OV5640 DVP camera driver by @vicloginov in #644
  • feat(workflow): Add new workflow for Releases by @ALofthou in #656
  • fix(Examples): Fix double-type subseconds calculation for MAX32655, MAX78000, and MAX78002 by @sihyung-maxim in #650
  • fix(workflow): Expand labeler file filters in case root of repo is unknown by @sihyung-maxim in #655
  • chore(Examples): Remove obsolete directories from project include paths by @ttmut in #659
  • feat(Examples): Update MAX32650 CLCD example to swap Maxim logo for ADI logo by @ronyaugustine in #658
  • fix(Boards): Add weak definition of GPIO0 IRQ handler to MAX32665's MAXREFDES178 BSP by @Jacob-Scheiffler in #664
  • fix(Build): Fix "empty.c file not found" Error on Make v3.81 or Older by @Jake-Carter in #657
  • fix(Build): Allow Users to Give Absolute Paths to SRCS by @Jake-Carter in #666
  • fix(workflow): Fix globstar paths in labeler workflow and revise PR template by @sihyung-maxim in #675
  • feat(Examples): Speedup TFT update in UNet-highres-demo and aisegment_unet-demo for MAX78000 by @aniktash in #670
  • fix(CMSIS, PeriphDrivers): Add support for all 16 PT channels in the MAX32690 by @Jacob-Scheiffler in #678
  • fix(ThirdParty): Fix Wrong Output Filename for lwIP Library by @Jake-Carter in #669
  • refactor(PeriphDrivers): Fix -Warray-bounds warnings for can and dma by @ozersa in #682
  • fix(Build): Link with libphy_hard.a when MFLOAT_ABI = hard by @khpeterson in #676
  • feat(Examples): MSDK-1220: Review and update SDK examples by @ttmut in #663
  • feat(Examples): Speedup TFT update for MAX78002 CameraIF by @vicloginov in #672
  • perf(PeriphDrivers): Reduce SPI_RevA Code Size by @Jake-Carter in #690
  • feat(PeriphDrivers): Provide user a way to manually drive SPI slave select pin by @ozersa in #674
  • fix(PeriphDrivers): Configure SPI0 pins for MAX32672 by @sihyung-maxim in #660
  • fix(CMSIS): Fix OWM_CTRL_STAT_PRES_DET field location for MAX32665 by @sihyung-maxim in #689
  • docs(Documentation): Update User Guide to Support June 2023 Release by @Jake-Carter in #683
  • fix(BLE): Pass Project Optimization Flag Down to Cordio by @Jake-Carter in #661
  • fix(Examples): Update Flash examples to use MXC_FLC_Read to resolve IAR/Keil build errors by @Jacob-Scheiffler in #696
  • ci(Examples,CMSIS,MiscDrivers,PeriphDrivers): Update MAX32670 files for Keil/IAR pack file by @ftariqAnalogTx in #691
  • feat(Examples): Speedup FTHR TFT update for cats-dogs-demo and digit-detection-demo for MAX78000 by @aniktash in #684
  • feat(Examples): Speedup FTHR TFT update for facial-recognition demo for MAX78000 by @aniktash in #694
  • fix(Documentation): Fix Incorrect README Instructions for CLI Repo Setup by @Jake-Carter in #700
  • fix(Build): Disable Parallel Execution When Creating common_riscv.ld for RISCV_LOAD=1 by @Jake-Carter in #704
  • fix(CMSIS): Regenerate trng_regs.h using correct SVD file for MAX32670 by @sihyung-maxim in #692
  • fix(PeriphDrivers): Update MAX32690 PT pin voltage levels to use VDDIO by default by @Jacob-Scheiffler in #687
  • build(PeriphDrivers): Untrack Pre-built PeriphDriver Libraries by @Jake-Carter in #702
  • fix(Examples): Type overflow in ADC example by @EricB-ADI in #708
  • feat(PeriphDrivers): Return HS frequency from MXC_I2C_GetFrequency when HS-Mode enabled by @Jacob-Scheiffler in #707
  • fix(Examples): Fix ImgCapture RGB888 Conversions by @Jake-Carter in #701
  • fix(PeriphDrivers): Fix -Wcast-align warning for MAX78000 & MAX78002 SYS Drivers by @Jake-Carter in #706
  • fix(Boards, Examples): Fix MAX32690 GPIO Example by @Jake-Carter in #712
  • perf(Build): Set Compressed Instruction Set as Default for RISC-V by @Jake-Carter in #703
  • fix(PeriphDrivers): Explicitly set the LPCMP Polarity Setting (Rising/Falling) by @sihyung-maxim in #697
  • fix(PeriphDrivers,Examples): Remove I2C Rev B and fix bugs in MXC_I2C_RevA_SlaveAsyncHandler by @Jacob-Scheiffler in #719
  • fix(CMSIS, PeriphDrivers): Fix "warning: _kill/_getpid is not implemented and will always fail" on GCC 12 by @Jake-Carter in #714
  • feat(PeriphDrivers,CMSIS): Add support for multiple I2C target addresses by @Jacob-Scheiffler in #725
  • fix(BLE): Always stop atts service discovery idle timers to make sure not leaking TimerStruct buffers by @khpeterson in #685
  • fix(Build): Fix ".elf has a LOAD segment with RWX permissions" Linker Warning on GCC 12+ by @Jake-Carter in #717
  • fix(workflow): Add token secret to clang-format-run workflow to retrigger other actions upon successful completion by @sihyung-maxim in #724
  • feat(Examples): Add generic I2C RX/TX DMA vector flexibility to I2C examples for all parts by @sihyung-maxim in #693
  • feat(Build): Update VS Code Project Files for Native Make by @Jake-Carter in #721
  • fix(Examples): Fix 'this device cannot start COM port' error in MAX32665 USB_CDCACM example by @karaanil in #729
  • perf(Examples,PeriphDrivers): Reset USB block when operating in low power modes for MAX32650 by @sihyung-maxim in #728
  • fix(BLE): Fix PalFlashEraseSector, Decrement Erase by Sector Size by @EdwinFairchild in #726
  • feat(BLE, Examples): Add coded PHY long range demo on MAX32665 by @yc-adi in #740
  • fix(Examples): Bug fix for MAX32670 SPI example by @Jacob-Scheiffler in #739
  • feat(PeriphDrivers): MSDK 1238: Add a way to remove clk and gpio initialization at compile time by @ozersa in #730
  • fix(SDHC): Fix SDHC Get Capacity and Implement Get Sectors functionality by @karaanil in #727
  • fix(workflow): Fix clang-format-run token access by @sihyung-maxim in #743
  • fix(SDHC): Remove second definition of SDHC_CLK_FREQ in sdhc_lib.h to resolve build warning by @Jacob-Scheiffler in #747
  • perf(Examples): Cats&Dogs model parameters updated for MAX78000 demos by @ermanok in #735
  • fix(MiscDrivers): Allow valid param address + txlen <= W25_DEVICE_SIZE when calling Ext_Flash_Program_Page() by @khpeterson in #748
  • fix(ThirdParty,Examples): Add missing dependencies to LVGL makefiles by @lorne-maxim in #754
  • fix(Build): Add statement to MAX32680 linker description file placing flash functions in SRAM by @lorne-maxim in #756
  • fix(Examples,PeriphDrivers): Fix SPI FIFO register access causing swapped message ordering and other minor fixes by @sihyung-maxim in #755
  • fix(Examples): Decrease the delay in the MAX32680 Watchdog example to force a watchdog reset to occur by @lorne-maxim in #758
  • fix(Build): Load MSYS2 Before Native Windows Make by @Jake-Carter in #757
  • fix(CMSIS, PeriphDrivers, Examples): Bug fixes for ME13, ME14 and ME18 found in release testing by @Jacob-Scheiffler in #759
  • fix(Examples): Fix RTC and RTC_Backup Example ERFO Initialization for MAX32655 by @Jake-Carter in #760

New Contributors

Full Changelog: v2023_06...v2023_10