From 62abac2f3b936145a6781b4e4bdcae14a40dbc42 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 14:26:02 -0700 Subject: [PATCH 01/11] Added default RTOS Stats timer configuration for TMR0 --- .../MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 15 ++ .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 139 ++++++++++++++++++ Examples/MAX78000/FreeRTOSDemo/Makefile | 2 +- Examples/MAX78000/FreeRTOSDemo/README.md | 5 +- Examples/MAX78000/FreeRTOSDemo/project.mk | 3 +- 5 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index ed4be6e9fcc..47f77eb9f99 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -25,6 +25,21 @@ #include #include "max78000.h" +// MSDK Debug flags +#if defined(DEBUG) && DEBUG==1 +extern void ConfigTimerForStats(void); +extern uint32_t GetTimerForStats(void); + +#define configASSERT(x) if((x) == 0) { taskDISABLE_INTERRUPTS(); for(;;); } +#define configENABLE_BACKWARD_COMPATIBILITY 1 +#define configGENERATE_RUN_TIME_STATS 1 +#define configQUEUE_REGISTRY_SIZE 10 +#define configRECORD_STACK_HIGH_ADDRESS 1 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) +#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) +#endif + + /*----------------------------------------------------------- * Application specific definitions. * diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c new file mode 100644 index 00000000000..037234e65ba --- /dev/null +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -0,0 +1,139 @@ +/******************************************************************************** + * Copyright (C) 2023 Analog Devices, Inc. + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * - Neither the name of Analog Devices, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * - The use of this software may or may not infringe the patent rights + * of one or more patent holders. This license does not release you + * from the requirement that you obtain separate licenses from these + * patent holders to use this software. + * - Use of the software either in source or binary form, must be run + * on or directly connected to an Analog Devices Inc. component. + * + * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*******************************************************************************/ +#include "tmr.h" +#include "FreeRTOS.h" +#include "task.h" +#include "tmr.h" +#include "nvic_table.h" + +#include + +// Only include the contents of this file if DEBUG == 1 +#if defined(DEBUG) && (DEBUG == 1) + +// Scheduler tick is 1ms +// RTOS Stats Clock should be 10-100x faster +#define RTOS_STATS_TMR MXC_TMR0 +#define RTOS_STATS_IRQn TMR0_IRQn +#define RTOS_STATS_TMR_SRC MXC_TMR_32K_CLK +#define RTOS_STATS_TMR_CNT 0xFFFFFFFF + +/** NOTE: + * Based on this configuration, this timer will roll over after 2^32 / (TMR_SRC / prescaler) seconds. + * Because the RTOS tracks the total time, rollover events cannot be protected by the application. + * Thus, rollover events will affect statistics over long periods of measurement. + * + * EXAMPLE: + * With APB Clock as the source & 2048 prescale, this will be 2^32 / 32000 = 134,217 s. or ~93 days. + * + * **/ +void ConfigTimerForStats() +{ + mxc_tmr_cfg_t tmr; + + MXC_TMR_Shutdown(RTOS_STATS_TMR); + + tmr.pres = MXC_TMR_PRES_1; + tmr.mode = TMR_MODE_CONTINUOUS; + tmr.bitMode = MXC_TMR_BIT_MODE_32; + tmr.clock = RTOS_STATS_TMR_SRC; + tmr.cmp_cnt = RTOS_STATS_TMR_CNT; //SystemCoreClock*(1/interval_time); + tmr.pol = 0; + MXC_TMR_Init(RTOS_STATS_TMR, &tmr, true); + + MXC_TMR_Start(RTOS_STATS_TMR); +} + +uint32_t GetTimerForStats() +{ + return MXC_TMR_GetCount(RTOS_STATS_TMR); +} + +void prvGetRegistersFromStack( uint32_t *pulFaultStackAddress ) +{ + /* These are volatile to try and prevent the compiler/linker optimising them + away as the variables never actually get used. If the debugger won't show the + values of the variables, make them global my moving their declaration outside + of this function. */ + volatile uint32_t r0; + volatile uint32_t r1; + volatile uint32_t r2; + volatile uint32_t r3; + volatile uint32_t r12; + volatile uint32_t lr; /* Link register. */ + volatile uint32_t pc; /* Program counter. */ + volatile uint32_t psr;/* Program status register. */ + + r0 = pulFaultStackAddress[ 0 ]; + r1 = pulFaultStackAddress[ 1 ]; + r2 = pulFaultStackAddress[ 2 ]; + r3 = pulFaultStackAddress[ 3 ]; + + r12 = pulFaultStackAddress[ 4 ]; + lr = pulFaultStackAddress[ 5 ]; + pc = pulFaultStackAddress[ 6 ]; + psr = pulFaultStackAddress[ 7 ]; + + /* When the following line is hit, the variables contain the register values. */ + for( ;; ); +} + +void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) +{ + for( ;; ); +} + + +/* The prototype shows it is a naked function - in effect this is just an +assembly function. */ +void HardFault_Handler( void ) __attribute__( ( naked, aligned(8) ) ); + +/* The fault handler implementation calls a function called +prvGetRegistersFromStack(). */ +void HardFault_Handler(void) +{ + __asm volatile + ( + " tst lr, #4 \n" + " ite eq \n" + " mrseq r0, msp \n" + " mrsne r0, psp \n" + " ldr r1, [r0, #24] \n" + " ldr r2, handler2_address_const \n" + " bx r2 \n" + " handler2_address_const: .word prvGetRegistersFromStack \n" + ); +} +#endif \ No newline at end of file diff --git a/Examples/MAX78000/FreeRTOSDemo/Makefile b/Examples/MAX78000/FreeRTOSDemo/Makefile index 4655c4955e6..44f83360061 100644 --- a/Examples/MAX78000/FreeRTOSDemo/Makefile +++ b/Examples/MAX78000/FreeRTOSDemo/Makefile @@ -25,7 +25,7 @@ # in "project.mk", on the command-line, or with system environment # variables. -# See https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# See https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system # for more detailed instructions on how to use this system. # The detailed instructions mentioned above are easier to read than diff --git a/Examples/MAX78000/FreeRTOSDemo/README.md b/Examples/MAX78000/FreeRTOSDemo/README.md index d595176f26d..8da09772465 100644 --- a/Examples/MAX78000/FreeRTOSDemo/README.md +++ b/Examples/MAX78000/FreeRTOSDemo/README.md @@ -6,11 +6,12 @@ A basic getting started application for FreeRTOS. ### Project Usage -Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analog-devices-msdk.github.io/msdk/USERGUIDE/)**. +Universal instructions on building, flashing, and debugging this project can be found in the **[MSDK User Guide](https://analogdevicesinc.github.io/msdk/USERGUIDE/)**. ### Project-Specific Build Notes -* This project comes pre-configured for the MAX78000EVKIT. See [Board Support Packages](https://analog-devices-msdk.github.io/msdk/USERGUIDE/#board-support-packages) in the UG for instructions on changing the target board. +* This project comes pre-configured for the MAX78000EVKIT. See [Board Support Packages](https://analogdevicesinc.github.io/msdk/USERGUIDE/#board-support-packages) in the UG for instructions on changing the target board. +* Setting the "DEBUG" flag to 1 in project.mk will configure TMR0 as an RTOS Stats Timer running at 32 kHz. Timer configuration is provided in FreeRTOS_Debug.c. ## Required Connections diff --git a/Examples/MAX78000/FreeRTOSDemo/project.mk b/Examples/MAX78000/FreeRTOSDemo/project.mk index 4eeefc4d54c..06b5bd69332 100644 --- a/Examples/MAX78000/FreeRTOSDemo/project.mk +++ b/Examples/MAX78000/FreeRTOSDemo/project.mk @@ -3,7 +3,7 @@ # "Makefile" that is located next to this one. # For instructions on how to use this system, see -# https://analog-devices-msdk.github.io/msdk/USERGUIDE/#build-system +# https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system #MXC_OPTIMIZE_CFLAGS = -Og # ^ For example, you can uncomment this line to @@ -12,6 +12,7 @@ # ********************************************************** # Add your config here! +DEBUG=1 LIB_FREERTOS = 1 From dca478a30e41ddb9915f68fbc9533f3e593c98ce Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 14:55:29 -0700 Subject: [PATCH 02/11] Format changes with cpplint --- .../MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 13 ++++++++----- .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 18 +++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 490c52d3c7d..119a8db17af 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -25,17 +25,20 @@ #include "max78000.h" // MSDK Debug flags -#if defined(DEBUG) && DEBUG==1 +#if defined(DEBUG) && DEBUG == 1 +// RTOS Stats Timer Functions extern void ConfigTimerForStats(void); extern uint32_t GetTimerForStats(void); +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) +#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) +#define configGENERATE_RUN_TIME_STATS 1 -#define configASSERT(x) if((x) == 0) { taskDISABLE_INTERRUPTS(); for(;;); } +// RTOS Assert & other debug configuration +#define configASSERT(x) if ((x) == 0) { taskDISABLE_INTERRUPTS(); for (;;) {} } #define configENABLE_BACKWARD_COMPATIBILITY 1 -#define configGENERATE_RUN_TIME_STATS 1 #define configQUEUE_REGISTRY_SIZE 10 #define configRECORD_STACK_HIGH_ADDRESS 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) -#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) + #endif diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 037234e65ba..7b3fd209d7a 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -32,14 +32,11 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -#include "tmr.h" #include "FreeRTOS.h" #include "task.h" #include "tmr.h" #include "nvic_table.h" -#include - // Only include the contents of this file if DEBUG == 1 #if defined(DEBUG) && (DEBUG == 1) @@ -81,7 +78,7 @@ uint32_t GetTimerForStats() return MXC_TMR_GetCount(RTOS_STATS_TMR); } -void prvGetRegistersFromStack( uint32_t *pulFaultStackAddress ) +void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) { /* These are volatile to try and prevent the compiler/linker optimising them away as the variables never actually get used. If the debugger won't show the @@ -107,18 +104,18 @@ void prvGetRegistersFromStack( uint32_t *pulFaultStackAddress ) psr = pulFaultStackAddress[ 7 ]; /* When the following line is hit, the variables contain the register values. */ - for( ;; ); + for (;;) {} } -void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) +void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) { - for( ;; ); + for (;;) {} } /* The prototype shows it is a naked function - in effect this is just an assembly function. */ -void HardFault_Handler( void ) __attribute__( ( naked, aligned(8) ) ); +void HardFault_Handler(void) __attribute__((naked, aligned(8))); /* The fault handler implementation calls a function called prvGetRegistersFromStack(). */ @@ -133,7 +130,6 @@ void HardFault_Handler(void) " ldr r1, [r0, #24] \n" " ldr r2, handler2_address_const \n" " bx r2 \n" - " handler2_address_const: .word prvGetRegistersFromStack \n" - ); + " handler2_address_const: .word prvGetRegistersFromStack \n"); } -#endif \ No newline at end of file +#endif From 0662910164a408939a3461a1c578d7bf7f0fe4ca Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 15:03:46 -0700 Subject: [PATCH 03/11] Format changes from clang-format --- .../MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 19 +- .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 37 +- Examples/MAX78000/FreeRTOSDemo/Makefile | 333 +++++++++--------- Examples/MAX78000/FreeRTOSDemo/project.mk | 18 +- 4 files changed, 200 insertions(+), 207 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 119a8db17af..0ddbcd0bf36 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -29,19 +29,22 @@ // RTOS Stats Timer Functions extern void ConfigTimerForStats(void); extern uint32_t GetTimerForStats(void); -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) -#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) -#define configGENERATE_RUN_TIME_STATS 1 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) +#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) +#define configGENERATE_RUN_TIME_STATS 1 // RTOS Assert & other debug configuration -#define configASSERT(x) if ((x) == 0) { taskDISABLE_INTERRUPTS(); for (;;) {} } -#define configENABLE_BACKWARD_COMPATIBILITY 1 -#define configQUEUE_REGISTRY_SIZE 10 -#define configRECORD_STACK_HIGH_ADDRESS 1 +#define configASSERT(x) \ + if ((x) == 0) { \ + taskDISABLE_INTERRUPTS(); \ + for (;;) {} \ + } +#define configENABLE_BACKWARD_COMPATIBILITY 1 +#define configQUEUE_REGISTRY_SIZE 10 +#define configRECORD_STACK_HIGH_ADDRESS 1 #endif - /*----------------------------------------------------------- * Application specific definitions. * diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 7b3fd209d7a..3e2aa793c2d 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -91,17 +91,17 @@ void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) volatile uint32_t r12; volatile uint32_t lr; /* Link register. */ volatile uint32_t pc; /* Program counter. */ - volatile uint32_t psr;/* Program status register. */ + volatile uint32_t psr; /* Program status register. */ - r0 = pulFaultStackAddress[ 0 ]; - r1 = pulFaultStackAddress[ 1 ]; - r2 = pulFaultStackAddress[ 2 ]; - r3 = pulFaultStackAddress[ 3 ]; + r0 = pulFaultStackAddress[0]; + r1 = pulFaultStackAddress[1]; + r2 = pulFaultStackAddress[2]; + r3 = pulFaultStackAddress[3]; - r12 = pulFaultStackAddress[ 4 ]; - lr = pulFaultStackAddress[ 5 ]; - pc = pulFaultStackAddress[ 6 ]; - psr = pulFaultStackAddress[ 7 ]; + r12 = pulFaultStackAddress[4]; + lr = pulFaultStackAddress[5]; + pc = pulFaultStackAddress[6]; + psr = pulFaultStackAddress[7]; /* When the following line is hit, the variables contain the register values. */ for (;;) {} @@ -112,7 +112,6 @@ void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) for (;;) {} } - /* The prototype shows it is a naked function - in effect this is just an assembly function. */ void HardFault_Handler(void) __attribute__((naked, aligned(8))); @@ -121,15 +120,13 @@ void HardFault_Handler(void) __attribute__((naked, aligned(8))); prvGetRegistersFromStack(). */ void HardFault_Handler(void) { - __asm volatile - ( - " tst lr, #4 \n" - " ite eq \n" - " mrseq r0, msp \n" - " mrsne r0, psp \n" - " ldr r1, [r0, #24] \n" - " ldr r2, handler2_address_const \n" - " bx r2 \n" - " handler2_address_const: .word prvGetRegistersFromStack \n"); + __asm volatile(" tst lr, #4 \n" + " ite eq \n" + " mrseq r0, msp \n" + " mrsne r0, psp \n" + " ldr r1, [r0, #24] \n" + " ldr r2, handler2_address_const \n" + " bx r2 \n" + " handler2_address_const: .word prvGetRegistersFromStack \n"); } #endif diff --git a/Examples/MAX78000/FreeRTOSDemo/Makefile b/Examples/MAX78000/FreeRTOSDemo/Makefile index e807fb6b689..dfb2fdd7659 100644 --- a/Examples/MAX78000/FreeRTOSDemo/Makefile +++ b/Examples/MAX78000/FreeRTOSDemo/Makefile @@ -1,173 +1,166 @@ -############################################################################### - # - # Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by - # Analog Devices, Inc.), - # Copyright (C) 2023-2024 Analog Devices, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - # - ############################################################################## - -# ** Readme! ** -# Don't edit this file! This is the core Makefile for a MaximSDK -# project. The available configuration options can be overridden -# in "project.mk", on the command-line, or with system environment -# variables. - -# See https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system -# for more detailed instructions on how to use this system. - -# The detailed instructions mentioned above are easier to read than -# this file, but the comments found in this file also outline the -# available configuration variables. This file is organized into -# sub-sections, some of which expose config variables. - - -# ******************************************************************************* -# Set the target microcontroller and board to compile for. - -# Every TARGET microcontroller has some Board Support Packages (BSPs) that are -# available for it under the MaximSDK/Libraries/Boards/TARGET folder. The BSP -# that gets selected is MaximSDK/Libraries/Boards/TARGET/BOARD. - -# Configuration Variables: -# - TARGET : Override the default target microcontroller. Ex: TARGET=MAX78000 -# - BOARD : Override the default BSP (case sensitive). Ex: BOARD=EvKit_V1, BOARD=FTHR_RevA - - -ifeq "$(TARGET)" "" -# Default target microcontroller -TARGET := MAX78000 -TARGET_UC := MAX78000 -TARGET_LC := max78000 -else -# "TARGET" has been overridden in the environment or on the command-line. -# We need to calculate an upper and lowercase version of the part number, -# because paths on Linux and MacOS are case-sensitive. -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) -endif - -# Default board. -BOARD ?= EvKit_V1 - -# ******************************************************************************* -# Locate the MaximSDK - -# This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable -# should point to the root directory of the MaximSDK installation. Setting this manually -# is usually only required if you're working on the command-line. - -# If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK -# and move up from this project's original location. - -# Configuration Variables: -# - MAXIM_PATH : Tell this Makefile where to find the MaximSDK. Ex: MAXIM_PATH=C:/MaximSDK - - -ifneq "$(MAXIM_PATH)" "" -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -# Locate some other useful paths... -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS -endif - -# ******************************************************************************* -# Include project Makefile. We do this after formulating TARGET, BOARD, and MAXIM_PATH -# in case project.mk needs to reference those values. However, we also include -# this as early as possible in the Makefile so that it can append to or override -# the variables below. - - -PROJECTMK ?= $(abspath ./project.mk) -include $(PROJECTMK) -$(info Loaded project.mk) -# PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file - -# ******************************************************************************* -# Final path sanitization and re-calculation. No options here. - -ifeq "$(MAXIM_PATH)" "" -# MAXIM_PATH is still not defined... -DEPTH := ../../../ -MAXIM_PATH := $(abspath $(DEPTH)) -$(warning Warning: MAXIM_PATH is not set! Set MAXIM_PATH in your environment or in project.mk to clear this warning.) -$(warning Warning: Attempting to use $(MAXIM_PATH) calculated from relative path) -else -# Sanitize MAXIM_PATH for backslashes -MAXIM_PATH := $(subst \,/,$(MAXIM_PATH)) -endif - -# Final recalculation of LIBS_DIR/CMSIS_ROOT -LIBS_DIR := $(abspath $(MAXIM_PATH)/Libraries) -CMSIS_ROOT := $(LIBS_DIR)/CMSIS - -# One final UC/LC check in case user set TARGET in project.mk -TARGET_UC := $(subst m,M,$(subst a,A,$(subst x,X,$(TARGET)))) -TARGET_LC := $(subst M,m,$(subst A,a,$(subst X,x,$(TARGET)))) - -export TARGET -export TARGET_UC -export TARGET_LC -export CMSIS_ROOT -# TODO: Remove dependency on exports for these variables. - -# ******************************************************************************* -# Set up search paths, and auto-detect all source code on those paths. - -# The following paths are searched by default, where "./" is the project directory. -# ./ -# |- *.h -# |- *.c -# |-include (optional) -# |- *.h -# |-src (optional) -# |- *.c - -# Configuration Variables: -# - VPATH : Tell this Makefile to search additional locations for source (.c) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - IPATH : Tell this Makefile to search additional locations for header (.h) files. -# You should use the "+=" operator with this option. -# Ex: VPATH += your/new/path -# - SRCS : Tell this Makefile to explicitly add a source (.c) file to the build. -# This is really only useful if you want to add a source file that isn't -# on any VPATH, in which case you can add the full path to the file here. -# You should use the "+=" operator with this option. -# Ex: SRCS += your/specific/source/file.c -# - AUTOSEARCH : Set whether this Makefile should automatically detect .c files on -# VPATH and add them to the build. This is enabled by default. Set -# to 0 to disable. If autosearch is disabled, source files must be -# manually added to SRCS. -# Ex: AUTOSEARCH = 0 - - -# Where to find source files for this project. -VPATH += . -VPATH += src -VPATH := $(VPATH) - -# Where to find header files for this project -IPATH += . -IPATH += include -IPATH := $(IPATH) - -AUTOSEARCH ?= 1 -ifeq ($(AUTOSEARCH), 1) -# Auto-detect all C/C++ source files on VPATH -SRCS += $(wildcard $(addsuffix /*.c, $(VPATH))) +############################################################################## # +# +#Copyright(C) 2022 - 2023 Maxim Integrated Products, Inc.(now owned by +#Analog Devices, Inc.), +#Copyright(C) 2023 - 2024 Analog Devices, Inc. +# +#Licensed under the Apache License, Version 2.0(the "License"); +#you may not use this file except in compliance with the License. +#You may obtain a copy of the License at +# +#http: //www.apache.org/licenses/LICENSE-2.0 +# +#Unless required by applicable law or agreed to in writing, software +#distributed under the License is distributed on an "AS IS" BASIS, +#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#See the License for the specific language governing permissions and +#limitations under the License. +# + ############################################################################## + +#** Readme !** +#Don't edit this file! This is the core Makefile for a MaximSDK +#project.The available configuration options can be overridden +#in "project.mk", on the command - line, or with system environment +#variables. + +#See https: //analogdevicesinc.github.io/msdk/USERGUIDE/#build-system +#for more detailed instructions on how to use this system. + +#The detailed instructions mentioned above are easier to read than +#this file, but the comments found in this file also outline the +#available configuration variables.This file is organized into +#sub - sections, some of which expose config variables. + +#******************************************************************************* +#Set the target microcontroller and board to compile for. + +#Every TARGET microcontroller has some Board Support Packages(BSPs) that are +#available for it under the MaximSDK / Libraries / Boards / TARGET folder.The BSP +#that gets selected is MaximSDK / Libraries / Boards / TARGET / BOARD. + +#Configuration Variables: +#- TARGET : Override the default target microcontroller.Ex : TARGET = MAX78000 +#- BOARD : Override the default BSP(case sensitive).Ex : BOARD = EvKit_V1, BOARD = FTHR_RevA + + ifeq "$(TARGET)" + "" +#Default target microcontroller + TARGET : = MAX78000 TARGET_UC : = MAX78000 TARGET_LC : = max78000 else +#"TARGET" has been overridden in the environment or on the command - line. +#We need to calculate an upper and lowercase version of the part number, +#because paths on Linux and MacOS are case -sensitive. + TARGET_UC + : = $(subst m, M, $(subst a, A, $(subst x, X, $(TARGET)))) TARGET_LC + : = $(subst M, m, $(subst A, a, $(subst X, x, $(TARGET)))) endif + +#Default board. + BOARD ? + = EvKit_V1 + +#******************************************************************************* +#Locate the MaximSDK + +#This Makefile needs to know where to find the MaximSDK, and the MAXIM_PATH variable +#should point to the root directory of the MaximSDK installation.Setting this manually +#is usually only required if you're working on the command-line. + +#If MAXIM_PATH is not specified, we assume the project still lives inside of the MaximSDK +#and move up from this project's original location. + +#Configuration Variables: +#- MAXIM_PATH : Tell this Makefile where to find the MaximSDK.Ex : MAXIM_PATH = C : / MaximSDK + + ifneq "$(MAXIM_PATH)" + "" +#Sanitize MAXIM_PATH for backslashes + MAXIM_PATH : + = $(subst \, /, $(MAXIM_PATH)) +#Locate some other useful paths... + LIBS_DIR : = $(abspath $(MAXIM_PATH) / Libraries) CMSIS_ROOT + : = $(LIBS_DIR) / CMSIS endif + +#******************************************************************************* +#Include project Makefile.We do this after formulating TARGET, BOARD, and MAXIM_PATH +#in case project.mk needs to reference those values.However, we also include +#this as early as possible in the Makefile so that it can append to or override +#the variables below. + + PROJECTMK ? + = $(abspath./ project.mk) include $(PROJECTMK) $(info Loaded project.mk) +#PROJECTMK is also used by implicit rules and other libraries to add project.mk as a watch file + +#******************************************************************************* +#Final path sanitization and re - calculation.No options here. + + ifeq "$(MAXIM_PATH)" + "" +#MAXIM_PATH is still not defined... + DEPTH : + =../../../ + MAXIM_PATH + : = $(abspath $(DEPTH)) $(warning Warning + : MAXIM_PATH is not set !Set MAXIM_PATH in your environment or + in project.mk to clear this warning.) + $(warning Warning + : Attempting to use $(MAXIM_PATH) calculated from relative path) else +#Sanitize MAXIM_PATH for backslashes + MAXIM_PATH : = $(subst \, /, $(MAXIM_PATH)) endif + +#Final recalculation of LIBS_DIR / CMSIS_ROOT + LIBS_DIR : = $(abspath $(MAXIM_PATH) / Libraries) CMSIS_ROOT + : = $(LIBS_DIR) / CMSIS + +#One final UC / LC check in case user set TARGET in project.mk + TARGET_UC : = $(subst m, M, $(subst a, A, $(subst x, X, $(TARGET)))) + TARGET_LC + : = $(subst M, m, $(subst A, a, $(subst X, x, $(TARGET)))) + + export TARGET export TARGET_UC export TARGET_LC export CMSIS_ROOT +#TODO : Remove dependency on exports for these variables. + +#******************************************************************************* +#Set up search paths, and auto - detect all source code on those paths. + +#The following paths are searched by default, where "./" is the project directory. +#./ +#| - *.h +#| - *.c +#| - include(optional) +#| - *.h +#| - src(optional) +#| - *.c + +#Configuration Variables: +#- VPATH : Tell this Makefile to search additional locations for source(.c) files. +#You should use the "+=" operator with this option. +#Ex : VPATH += your / new / path +#- IPATH : Tell this Makefile to search additional locations for header(.h) files. +#You should use the "+=" operator with this option. +#Ex : VPATH += your / new / path +#- SRCS : Tell this Makefile to explicitly add a source(.c) file to the build. +#This is really only useful if you want to add a source file that isn't +#on any VPATH, in which case you can add the full path to the file here. +#You should use the "+=" operator with this option. +#Ex : SRCS += your / specific / source / file.c +#- AUTOSEARCH : Set whether this Makefile should automatically detect.c files on +#VPATH and add them to the build.This is enabled by default.Set +#to 0 to disable.If autosearch is disabled, source files must be +#manually added to SRCS. +#Ex : AUTOSEARCH = 0 + +#Where to find source files for this project. + VPATH +=.VPATH += src VPATH : = $(VPATH) + +#Where to find header files for this project + IPATH +=.IPATH += include IPATH : = $(IPATH) + + AUTOSEARCH ? + = 1 ifeq($(AUTOSEARCH), 1) +#Auto - detect all C / C++ source files on VPATH + SRCS += + $(wildcard $( + addsuffix /*.c, $(VPATH))) SRCS += $(wildcard $(addsuffix /*.cpp, $(VPATH))) endif diff --git a/Examples/MAX78000/FreeRTOSDemo/project.mk b/Examples/MAX78000/FreeRTOSDemo/project.mk index 06b5bd69332..7b5ec1ec7f3 100644 --- a/Examples/MAX78000/FreeRTOSDemo/project.mk +++ b/Examples/MAX78000/FreeRTOSDemo/project.mk @@ -1,17 +1,17 @@ -# This file can be used to set build configuration -# variables. These variables are defined in a file called -# "Makefile" that is located next to this one. +#This file can be used to set build configuration +#variables.These variables are defined in a file called +#"Makefile" that is located next to this one. -# For instructions on how to use this system, see -# https://analogdevicesinc.github.io/msdk/USERGUIDE/#build-system +#For instructions on how to use this system, see +#https: //analogdevicesinc.github.io/msdk/USERGUIDE/#build-system #MXC_OPTIMIZE_CFLAGS = -Og -# ^ For example, you can uncomment this line to -# optimize the project for debugging +#^ For example, you can uncomment this line to +#optimize the project for debugging -# ********************************************************** +#********************************************************** -# Add your config here! +#Add your config here ! DEBUG=1 LIB_FREERTOS = 1 From aad4ac4ae5cee41157749d46f27f6fb58bdb9058 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 15:11:28 -0700 Subject: [PATCH 04/11] Format changes with cpplint --- .../MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 13 ++++++++----- .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 18 +++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 490c52d3c7d..119a8db17af 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -25,17 +25,20 @@ #include "max78000.h" // MSDK Debug flags -#if defined(DEBUG) && DEBUG==1 +#if defined(DEBUG) && DEBUG == 1 +// RTOS Stats Timer Functions extern void ConfigTimerForStats(void); extern uint32_t GetTimerForStats(void); +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) +#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) +#define configGENERATE_RUN_TIME_STATS 1 -#define configASSERT(x) if((x) == 0) { taskDISABLE_INTERRUPTS(); for(;;); } +// RTOS Assert & other debug configuration +#define configASSERT(x) if ((x) == 0) { taskDISABLE_INTERRUPTS(); for (;;) {} } #define configENABLE_BACKWARD_COMPATIBILITY 1 -#define configGENERATE_RUN_TIME_STATS 1 #define configQUEUE_REGISTRY_SIZE 10 #define configRECORD_STACK_HIGH_ADDRESS 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) -#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) + #endif diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 037234e65ba..7b3fd209d7a 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -32,14 +32,11 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -#include "tmr.h" #include "FreeRTOS.h" #include "task.h" #include "tmr.h" #include "nvic_table.h" -#include - // Only include the contents of this file if DEBUG == 1 #if defined(DEBUG) && (DEBUG == 1) @@ -81,7 +78,7 @@ uint32_t GetTimerForStats() return MXC_TMR_GetCount(RTOS_STATS_TMR); } -void prvGetRegistersFromStack( uint32_t *pulFaultStackAddress ) +void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) { /* These are volatile to try and prevent the compiler/linker optimising them away as the variables never actually get used. If the debugger won't show the @@ -107,18 +104,18 @@ void prvGetRegistersFromStack( uint32_t *pulFaultStackAddress ) psr = pulFaultStackAddress[ 7 ]; /* When the following line is hit, the variables contain the register values. */ - for( ;; ); + for (;;) {} } -void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName ) +void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) { - for( ;; ); + for (;;) {} } /* The prototype shows it is a naked function - in effect this is just an assembly function. */ -void HardFault_Handler( void ) __attribute__( ( naked, aligned(8) ) ); +void HardFault_Handler(void) __attribute__((naked, aligned(8))); /* The fault handler implementation calls a function called prvGetRegistersFromStack(). */ @@ -133,7 +130,6 @@ void HardFault_Handler(void) " ldr r1, [r0, #24] \n" " ldr r2, handler2_address_const \n" " bx r2 \n" - " handler2_address_const: .word prvGetRegistersFromStack \n" - ); + " handler2_address_const: .word prvGetRegistersFromStack \n"); } -#endif \ No newline at end of file +#endif From 783e1737f9b20279e845c966a12b0769ace98d30 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 15:17:29 -0700 Subject: [PATCH 05/11] Fixing typo on FreeRTOSConfig.h --- Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 67786d74e5c..873d79eb189 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -27,8 +27,6 @@ // MSDK Debug flags #if defined(DEBUG) && DEBUG == 1 // RTOS Stats Timer Functions -#if defined(DEBUG) && DEBUG == 1 -// RTOS Stats Timer Functions extern void ConfigTimerForStats(void); extern uint32_t GetTimerForStats(void); #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) From f1c5c096beb8bf17971ecbc46cbb7357e9c7e966 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 15:19:30 -0700 Subject: [PATCH 06/11] Fixing formatter typos with FreeRTOS_Debug.c --- Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index b381bbb0813..634b66b7f17 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -78,7 +78,6 @@ uint32_t GetTimerForStats() return MXC_TMR_GetCount(RTOS_STATS_TMR); } -void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) { /* These are volatile to try and prevent the compiler/linker optimising them @@ -109,7 +108,6 @@ void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) for (;;) {} } -void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) { for (;;) {} @@ -117,8 +115,7 @@ void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) } /* The prototype shows it is a naked function - in effect this is just an -assembly function. */ -void HardFault_Handler(void) __attribute__((naked, aligned(8))); +assembly function. */\ void HardFault_Handler(void) __attribute__((naked, aligned(8))); /* The fault handler implementation calls a function called From a9a3a486325d946850b6050c2faeb048c0dff08a Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 15:23:35 -0700 Subject: [PATCH 07/11] Fixing formatter errors --- Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 634b66b7f17..2250e4fea91 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -43,7 +43,6 @@ // Scheduler tick is 1ms // RTOS Stats Clock should be 10-100x faster #define RTOS_STATS_TMR MXC_TMR0 -#define RTOS_STATS_IRQn TMR0_IRQn #define RTOS_STATS_TMR_SRC MXC_TMR_32K_CLK #define RTOS_STATS_TMR_CNT 0xFFFFFFFF @@ -105,13 +104,11 @@ void prvGetRegistersFromStack(uint32_t *pulFaultStackAddress) /* When the following line is hit, the variables contain the register values. */ for (;;) {} - for (;;) {} } void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) { for (;;) {} - for (;;) {} } /* The prototype shows it is a naked function - in effect this is just an From 0386d1e91cb277b131a0f3157102adb64ea1895c Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 20 Mar 2024 17:20:39 -0700 Subject: [PATCH 08/11] Format FreeRTOS files --- .../MAX78000/FreeRTOSDemo/FreeRTOSConfig.h | 18 ++++++++++------- .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 20 +++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h index 873d79eb189..0ddbcd0bf36 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOSConfig.h @@ -29,15 +29,19 @@ // RTOS Stats Timer Functions extern void ConfigTimerForStats(void); extern uint32_t GetTimerForStats(void); -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) -#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) -#define configGENERATE_RUN_TIME_STATS 1 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ConfigTimerForStats()) +#define portGET_RUN_TIME_COUNTER_VALUE() (GetTimerForStats()) +#define configGENERATE_RUN_TIME_STATS 1 // RTOS Assert & other debug configuration -#define configASSERT(x) if ((x) == 0) { taskDISABLE_INTERRUPTS(); for (;;) {} } -#define configENABLE_BACKWARD_COMPATIBILITY 1 -#define configQUEUE_REGISTRY_SIZE 10 -#define configRECORD_STACK_HIGH_ADDRESS 1 +#define configASSERT(x) \ + if ((x) == 0) { \ + taskDISABLE_INTERRUPTS(); \ + for (;;) {} \ + } +#define configENABLE_BACKWARD_COMPATIBILITY 1 +#define configQUEUE_REGISTRY_SIZE 10 +#define configRECORD_STACK_HIGH_ADDRESS 1 #endif diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 2250e4fea91..5618718072a 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -112,22 +112,20 @@ void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) } /* The prototype shows it is a naked function - in effect this is just an -assembly function. */\ +assembly function. */ void HardFault_Handler(void) __attribute__((naked, aligned(8))); /* The fault handler implementation calls a function called prvGetRegistersFromStack(). */ void HardFault_Handler(void) { - __asm volatile - ( - " tst lr, #4 \n" - " ite eq \n" - " mrseq r0, msp \n" - " mrsne r0, psp \n" - " ldr r1, [r0, #24] \n" - " ldr r2, handler2_address_const \n" - " bx r2 \n" - " handler2_address_const: .word prvGetRegistersFromStack \n"); + __asm volatile(" tst lr, #4 \n" + " ite eq \n" + " mrseq r0, msp \n" + " mrsne r0, psp \n" + " ldr r1, [r0, #24] \n" + " ldr r2, handler2_address_const \n" + " bx r2 \n" + " handler2_address_const: .word prvGetRegistersFromStack \n"); } #endif From 7692a2069542e4ea3f6746d00dbd22154b5084f1 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Wed, 27 Mar 2024 16:36:45 -0700 Subject: [PATCH 09/11] Fix copyright headers --- .../MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c | 52 ++++++++----------- 1 file changed, 21 insertions(+), 31 deletions(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c index 5618718072a..594b465010d 100644 --- a/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c +++ b/Examples/MAX78000/FreeRTOSDemo/FreeRTOS_Debug.c @@ -1,37 +1,27 @@ -/******************************************************************************** - * Copyright (C) 2023 Analog Devices, Inc. +/****************************************************************************** * - * All rights reserved. + * Copyright (C) 2023-2024 Analog Devices, Inc. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - Neither the name of Analog Devices, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - The use of this software may or may not infringe the patent rights - * of one or more patent holders. This license does not release you - * from the requirement that you obtain separate licenses from these - * patent holders to use this software. - * - Use of the software either in source or binary form, must be run - * on or directly connected to an Analog Devices Inc. component. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*******************************************************************************/ + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/** + * @file FreeRTOS_Debug.c + * @brief FreeRTOS Debug utilities including RTOS Stats Timer + * and template HardFault Handler + */ + #include "FreeRTOS.h" #include "task.h" #include "tmr.h" From 493348c424610a5a43d5bb0ef6fe12acb27ac270 Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Thu, 28 Mar 2024 07:58:02 -0700 Subject: [PATCH 10/11] Adding debug details to README.md --- Examples/MAX78000/FreeRTOSDemo/README.md | 14 ++++++++++++++ .../MAX78000/FreeRTOSDemo/img/HardFault.png | Bin 0 -> 165472 bytes 2 files changed, 14 insertions(+) create mode 100644 Examples/MAX78000/FreeRTOSDemo/img/HardFault.png diff --git a/Examples/MAX78000/FreeRTOSDemo/README.md b/Examples/MAX78000/FreeRTOSDemo/README.md index c3dfb30b402..61d0cea0e29 100644 --- a/Examples/MAX78000/FreeRTOSDemo/README.md +++ b/Examples/MAX78000/FreeRTOSDemo/README.md @@ -40,3 +40,17 @@ Uptime is 0x00000000 (0 seconds), tickless-idle is disabled Enter 'help' to view a list of available commands. cmd> ``` + +## Debugging + +Some extra debug features are provided as recommended practice in FreeRTOS_Debug.c. These are based on recommendations from the FreeRTOS documentation. They include: +- A timer setup using TMR0 as an RTOS Statistics timer to profile task runtime. +- A custom HardFaultHandler which copies CPU register state to C variables for viewing inside a debugger program. + - This is useful to diagnose the system state at the moment the HardFault occured. + +The statistics timer can be used by numerous RTOS Debug utilities which detect a kernel and use the kernel's profiling routines to output useful information to the user. A similar timer configuration could also be used for RTOS kernels other than FreeRTOS. + +An example of using the HardFaultHandler can be observed by placing a privileged memory access (e.g. ```int y = *(uint32_t *)0xFFFFFFFF```) inside an RTOS task. The program counter will show as a C variable, which can be used with a Disassembly View to find the location of the HardFault. An image is provided below as an example: + +![Disassembly View in VSCode](img/HardFault.png) + diff --git a/Examples/MAX78000/FreeRTOSDemo/img/HardFault.png b/Examples/MAX78000/FreeRTOSDemo/img/HardFault.png new file mode 100644 index 0000000000000000000000000000000000000000..359a8ae9ddda0b9090f58a3d352d93790ace4ec7 GIT binary patch literal 165472 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 literal 0 HcmV?d00001 From 577d3cdd2fb74a455e15927fe94496607319fe8b Mon Sep 17 00:00:00 2001 From: Brandon-Hurst Date: Thu, 28 Mar 2024 07:59:52 -0700 Subject: [PATCH 11/11] Adding note about low-power timers --- Examples/MAX78000/FreeRTOSDemo/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/MAX78000/FreeRTOSDemo/README.md b/Examples/MAX78000/FreeRTOSDemo/README.md index 61d0cea0e29..009de8385ef 100644 --- a/Examples/MAX78000/FreeRTOSDemo/README.md +++ b/Examples/MAX78000/FreeRTOSDemo/README.md @@ -48,7 +48,7 @@ Some extra debug features are provided as recommended practice in FreeRTOS_Debug - A custom HardFaultHandler which copies CPU register state to C variables for viewing inside a debugger program. - This is useful to diagnose the system state at the moment the HardFault occured. -The statistics timer can be used by numerous RTOS Debug utilities which detect a kernel and use the kernel's profiling routines to output useful information to the user. A similar timer configuration could also be used for RTOS kernels other than FreeRTOS. +The statistics timer can be used by numerous RTOS Debug utilities which detect a kernel and use the kernel's profiling routines to output useful information to the user. A similar timer configuration could also be used for RTOS kernels other than FreeRTOS. Be aware that TMR0 may not behave properly when using Low-Power features -- for these use-cases a Low-Power timer on the device should be used. An example of using the HardFaultHandler can be observed by placing a privileged memory access (e.g. ```int y = *(uint32_t *)0xFFFFFFFF```) inside an RTOS task. The program counter will show as a C variable, which can be used with a Disassembly View to find the location of the HardFault. An image is provided below as an example: