Porting Guide
The intention of this code base is to be relatively portable for different platforms using the SPE devices and the MAX32690 as the host. There are some assumptions that are made, like sticking with FreeRTOS. It is probably relatively easy to move to a different MAX32, but not without a little work.
The Platforms folder intends to hold most of the code needed for a specific
hardware platform. PlatformCommon provides utility functions which should be
specific to all MAX32690s using this project, regardless of board.
Required Implementations
Platform (General)
The platform should create a PlatformSpecs.h file, which at a minimum needs to
define PLATFORM_NUM_I2CS, PLATFORM_NUM_BUTTONS and PLATFORM_NUM_LEDS.
Specific assignments of Buttons and LEDS are done with the following. The
_INVALID definitions from Platform.h can be used if the following aren’t on
the board:
PLATFORM_BOOT_BTN_NUM- Button to restart to the bootloader from application
PLATFORM_T1S_ACT_LED_NUM- T1S Activity LED
PLATFORM_USB_ACT_LED_NUM- USB Activity LED
PLATFORM_STATUS_LED_NUM- General status LED
In addition, a platform C file needs to implement the functions defined in
Platform.h as the applications expect those to be defined.
Platform (AD3306)
For platforms which include an AD3306, the functions defined in AD3306_Platform.h
need to be implemented.
Platform (ADIN1110)
For platforms which include an ADIN1110, the functions defined in
ADIN1110_Platform.h need to be implemented.
Bootloader
To add a new platform/board to the bootloader project, modify the board.h file located in the /bootloader folder to specify the LED, UART, device names and URL used in the mass storage device.
This assumes the standard double-tap reset functionality is applicable to the new hardware. If additional bootloader features are needed, see the TinyUF2 documentation on the Github Repo.