summaryrefslogtreecommitdiff
path: root/mcc_generated_files/system/utils
diff options
context:
space:
mode:
Diffstat (limited to 'mcc_generated_files/system/utils')
-rw-r--r--mcc_generated_files/system/utils/assembler.h49
-rw-r--r--mcc_generated_files/system/utils/assembler/gas.h120
-rw-r--r--mcc_generated_files/system/utils/assembler/iar.h104
-rw-r--r--mcc_generated_files/system/utils/atomic.h87
-rw-r--r--mcc_generated_files/system/utils/compiler.h72
-rw-r--r--mcc_generated_files/system/utils/interrupt_avr8.h88
-rw-r--r--mcc_generated_files/system/utils/utils.h52
-rw-r--r--mcc_generated_files/system/utils/utils_assert.h60
8 files changed, 632 insertions, 0 deletions
diff --git a/mcc_generated_files/system/utils/assembler.h b/mcc_generated_files/system/utils/assembler.h
new file mode 100644
index 0000000..0182fcc
--- /dev/null
+++ b/mcc_generated_files/system/utils/assembler.h
@@ -0,0 +1,49 @@
+/**
+ * Assembler Header File
+ *
+ * @file assembler.h
+ *
+ * @ingroup config_bitsdriver
+ *
+ * @brief This file contains the assembler header file for the configuration bits driver.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+
+#ifndef ASSEMBLER_H_INCLUDED
+#define ASSEMBLER_H_INCLUDED
+
+#if !defined(__ASSEMBLER__) && !defined(__IAR_SYSTEMS_ASM__) && !defined(__DOXYGEN__)
+#error This file may only be included from assembly files
+#endif
+
+#if defined(__ASSEMBLER__)
+#include "assembler/gas.h"
+#include <avr/io.h>
+#elif defined(__IAR_SYSTEMS_ASM__)
+#include "assembler/iar.h"
+#include <ioavr.h>
+#endif
+
+#endif /* ASSEMBLER_H_INCLUDED */
diff --git a/mcc_generated_files/system/utils/assembler/gas.h b/mcc_generated_files/system/utils/assembler/gas.h
new file mode 100644
index 0000000..44a0186
--- /dev/null
+++ b/mcc_generated_files/system/utils/assembler/gas.h
@@ -0,0 +1,120 @@
+/**
+ * GAS Header File
+ *
+ * @file gas.h
+ *
+ * @ingroup config_bitsdriver
+ *
+ * @brief This file contains the generated GAS header file for the Configuration bits driver.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+
+#ifndef ASSEMBLER_GAS_H_INCLUDED
+#define ASSEMBLER_GAS_H_INCLUDED
+
+#ifndef __DOXYGEN__
+
+/* clang-format off */
+
+ /* IAR doesn't accept dots in macro names */
+ .macro ld_addr, reg, sym
+ lda.w \reg, \sym
+ .endm
+
+ /* Define a function \a name that is either globally visible or only
+ * file-local.
+ */
+ .macro gas_begin_func name, is_public
+ .if \is_public
+ .global \name
+ .endif
+ #ifdef __XC8
+ .section .text.\name, code
+ #else
+ .section .text.\name, "ax", @progbits
+ #endif
+ .type \name, @function
+ \name :
+ .endm
+
+ /* Define a function \a name that is either globally visible or only
+ * file-local in a given segment.
+ */
+ .macro gas_begin_func_segm name, is_public, segment
+ .if \is_public
+ .global \name
+ .endif
+ .section .\segment, "ax", @progbits
+ .type \name, @function
+ \name :
+ .endm
+
+ /* Define \a name as a weak alias for the function \a strong_name */
+ .macro gas_weak_function_alias name, strong_name
+ .global \name
+ .weak \name
+ .type \name, @function
+ .set \name, \strong_name
+ .endm
+
+ /* Define a weak function called \a name */
+ .macro gas_weak_function name
+ .weak \name
+ gas_begin_func \name 1
+ .endm
+
+#define REPEAT(count) .rept count
+#define END_REPEAT() .endr
+#define FILL_BYTES(count) .fill count
+#define SET_LOC(offset) .org offset
+#define L(name) .L##name
+#define EXTERN_SYMBOL(name)
+
+#define TEXT_SECTION(name) \
+ .section name, "ax", @progbits
+#define RODATA_SECTION(name) \
+ .section name, "a", @progbits
+#define DATA_SECTION(name) \
+ .section name, "aw", @progbits
+#define BSS_SECTION(name) \
+ .section name, "aw", @nobits
+
+#define FUNCTION(name) gas_begin_func name 0
+#define PUBLIC_FUNCTION(name) gas_begin_func name 1
+#define PUBLIC_FUNCTION_SEGMENT(name, segment) \
+ gas_begin_func_segm name 1 segment
+#define WEAK_FUNCTION(name) gas_weak_function name
+#define WEAK_FUNCTION_ALIAS(name, strong_name) \
+ gas_weak_function_alias name strong_name
+#define END_FUNC(name) \
+ .size name, . - name
+
+#define END_FILE()
+
+/* clang-format on */
+
+#endif /* __DOXYGEN__ */
+
+#endif /* ASSEMBLER_GAS_H_INCLUDED */
diff --git a/mcc_generated_files/system/utils/assembler/iar.h b/mcc_generated_files/system/utils/assembler/iar.h
new file mode 100644
index 0000000..b2fe674
--- /dev/null
+++ b/mcc_generated_files/system/utils/assembler/iar.h
@@ -0,0 +1,104 @@
+/**
+ * IAR Header File
+ *
+ * @file iar.h
+ *
+ * @ingroup config_bitsdriver
+ *
+ * @brief This file contains the generated IAR header file for the Configuration bits driver.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+
+#ifndef ASSEMBLER_IAR_H_INCLUDED
+#define ASSEMBLER_IAR_H_INCLUDED
+
+/* clang-format off */
+
+ld_addr MACRO reg, sym
+ mov reg, LWRD sym
+ orh reg, HWRD sym
+ ENDM
+
+call MACRO sym
+ rcall sym
+ ENDM
+
+iar_begin_func MACRO name, sect, is_public, is_weak
+ MODULE name
+ RSEG CODE:CODE:NOROOT(1)
+ IF is_weak == 1
+ PUBWEAK name
+ ELSEIF is_public
+ PUBLIC name
+ ENDIF
+name:
+ ENDM
+
+iar_begin_func_segm MACRO name, sect, is_public, is_weak, segment
+ MODULE name
+ RSEG segment:CODE:NOROOT(1)
+ IF is_weak == 1
+ PUBWEAK name
+ ELSEIF is_public
+ PUBLIC name
+ ENDIF
+name:
+ ENDM
+
+iar_weak_alias MACRO name, strong_name
+ PUBWEAK name
+name:
+ rjmp strong_name
+ ENDM
+
+#define lo(x) LWRD x
+#define hi(x) HWRD x
+
+#define REPEAT(count) REPT count
+#define END_REPEAT() ENDR
+#define SET_LOC(offset) ORG offset
+#define END_FILE() END
+
+#define FILL_BYTES(count) DS8 count
+
+#define L(name) name
+#define EXTERN_SYMBOL(name) EXTERN name
+#define FUNCTION(name) iar_begin_func name, text_##name, 0, 0
+#define PUBLIC_FUNCTION(name) iar_begin_func name, text_##name, 1, 0
+#define PUBLIC_FUNCTION_SEGMENT(name, segment) \
+ iar_begin_func_segm name, text_##name, 1, 0, segment
+#define WEAK_FUNCTION(name) iar_begin_func name, text_##name, 1, 1
+#define WEAK_FUNCTION_ALIAS(name, strong_name) \
+ iar_weak_alias name, strong_name
+#define END_FUNC(name) ENDMOD
+
+#define TEXT_SECTION(name) RSEG name:CODE:NOROOT
+#define RODATA_SECTION(name) RSEG name:CONST:NOROOT
+#define DATA_SECTION(name) RSEG name:DATA:NOROOT
+#define BSS_SECTION(name) RSEG name:DATA:NOROOT
+
+/* clang-format on */
+
+#endif /* ASSEMBLER_IAR_H_INCLUDED */
diff --git a/mcc_generated_files/system/utils/atomic.h b/mcc_generated_files/system/utils/atomic.h
new file mode 100644
index 0000000..0878285
--- /dev/null
+++ b/mcc_generated_files/system/utils/atomic.h
@@ -0,0 +1,87 @@
+/**
+ * CONFIGURATION BITS Generated Atomic Header File
+ *
+ * @file atomic.h
+ *
+ * @defgroup doc_driver_utils_atomic Atomic memory access and critical sections
+ *
+ * @brief This file contains the atomic memory access and critical sections header file for the configuration bits driver.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+
+#ifndef ATOMIC_H
+#define ATOMIC_H
+
+/* clang-format off */
+
+#if defined(__GNUC__) || defined (__DOXYGEN__)
+
+/**
+ * @brief Enters critical region. Saves the contents of the status register, including the Global Interrupt Enable bit, so that it can be restored upon leaving the critical region.
+ * Thereafter, clears the Global Interrupt Enable Bit.This macro takes a parameter P that is unused for the GCC compiler,but necessary for code compatibility with the IAR compiler.
+ * The IAR compiler declares a variable with the name of the parameter forholding the SREG value.
+ * Compilation will fail when the variable declared in the macro is not unique within the scope that the critical region is declared within.
+ * @param[in] UNUSED(GCC)/P(IAR) Name of variable storing SREG.
+ */
+
+#define ENTER_CRITICAL(UNUSED) __asm__ __volatile__ ( \
+ "in __tmp_reg__, __SREG__" "\n\t" \
+ "cli" "\n\t" \
+ "push __tmp_reg__" "\n\t" \
+ ::: "memory" \
+ )
+
+/**
+ * @brief Exits a critical region. Restores the contents of the status register, including the Global Interrupt Enable bit, as it was when entering the critical region.
+ * This macro takes a parameter P that is unused for the GCC compiler, but necessary for code compatibility with the IAR compiler.
+ * The IAR compiler uses this parameter as the name of a variable that holds the SREG value.
+ * The parameter must be identical to the parameter used in the corresponding ENTER_CRITICAL().
+ * @param[in] UNUSED(GCC)/P(IAR) Name of variable storing SREG
+ */
+
+#define EXIT_CRITICAL(UNUSED) __asm__ __volatile__ ( \
+ "pop __tmp_reg__" "\n\t" \
+ "out __SREG__, __tmp_reg__" "\n\t" \
+ ::: "memory" \
+ )
+
+#define DISABLE_INTERRUPTS() __asm__ __volatile__ ( "cli" ::: "memory")
+#define ENABLE_INTERRUPTS() __asm__ __volatile__ ( "sei" ::: "memory")
+
+#elif defined(__ICCAVR__)
+
+#define ENTER_CRITICAL(P) unsigned char P = __save_interrupt();__disable_interrupt();
+#define EXIT_CRITICAL(P) __restore_interrupt(P);
+
+#define DISABLE_INTERRUPTS() __disable_interrupt();
+#define ENABLE_INTERRUPTS() __enable_interrupt();
+
+#else
+# error Unsupported compiler.
+#endif
+
+/* clang-format on */
+
+#endif /* ATOMIC_H */
diff --git a/mcc_generated_files/system/utils/compiler.h b/mcc_generated_files/system/utils/compiler.h
new file mode 100644
index 0000000..5447b31
--- /dev/null
+++ b/mcc_generated_files/system/utils/compiler.h
@@ -0,0 +1,72 @@
+/**
+ * Compiler Header File
+ *
+ * @file compiler.h
+ *
+ * @defgroup doc_driver_utils_compiler Compiler abstraction
+ *
+ * @brief This file contains the compiler abstraction layer and code utilities for 8-bit AVR. This module provides various abstraction layers and utilities to make code compatible between different compilers.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+
+#ifndef UTILS_COMPILER_H
+#define UTILS_COMPILER_H
+
+#if defined(__GNUC__)
+#include <avr/io.h>
+#include <avr/builtins.h>
+#if defined(__XC8__)
+#include <xc.h>
+#endif
+#elif defined(__ICCAVR__)
+#define ENABLE_BIT_DEFINITIONS 1
+#include <ioavr.h>
+#include <intrinsics.h>
+
+#ifndef CCP_IOREG_gc
+#define CCP_IOREG_gc 0xD8 /* CPU_CCP_IOREG_gc */
+#endif
+#ifndef CCP_SPM_gc
+#define CCP_SPM_gc 0x9D /* CPU_CCP_SPM_gc */
+#endif
+
+#else
+#error Unsupported compiler.
+#endif
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+#include "interrupt_avr8.h"
+
+/**
+ * @def UNUSED
+ * @brief Marking \a v as a unused parameter or value.
+ */
+#define UNUSED(v) (void)(v)
+
+#endif /* UTILS_COMPILER_H */
diff --git a/mcc_generated_files/system/utils/interrupt_avr8.h b/mcc_generated_files/system/utils/interrupt_avr8.h
new file mode 100644
index 0000000..f5a21bb
--- /dev/null
+++ b/mcc_generated_files/system/utils/interrupt_avr8.h
@@ -0,0 +1,88 @@
+/**
+ * interrupt_avr8 Header File
+ *
+ * @file interrupt_avr8.h
+ *
+ * @defgroup doc_driver_utils_interrupts ISR abstraction
+ *
+ * @brief Interrupt-related functionality.
+ *
+ * @version Driver Version 1.0.0
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+#ifndef UTILS_INTERRUPT_AVR8_H
+#define UTILS_INTERRUPT_AVR8_H
+
+/**
+ * \weakgroup interrupt_group
+ *
+ * @{
+ */
+
+#ifdef ISR_CUSTOM_H
+#include ISR_CUSTOM_H
+#else
+
+/**
+ * @def ISR
+ * @brief Define service routine for specified interrupt vector.
+ * @code
+ ISR(FOO_vect)
+ {
+ ...
+ }
+ * @endcode
+ *
+ * @param vect Interrupt vector name as found in the device header files.
+ */
+#if defined(__DOXYGEN__)
+#define ISR(vect)
+#elif defined(__GNUC__)
+#include <avr/interrupt.h>
+#elif defined(__ICCAVR__)
+#define __ISR(x) _Pragma(#x)
+#define ISR(vect) __ISR(vector = vect) __interrupt void handler_##vect(void)
+#endif
+#endif // ISR_CUSTOM_H
+
+#ifdef __GNUC__
+#define cpu_irq_enable() sei()
+#define cpu_irq_disable() cli()
+#else
+#define cpu_irq_enable() __enable_interrupt()
+#define cpu_irq_disable() __disable_interrupt()
+#endif
+
+//! @}
+
+/**
+ * \weakgroup interrupt_deprecated_group
+ * @{
+ */
+// Deprecated definitions.
+#define Enable_global_interrupt() cpu_irq_enable()
+#define Disable_global_interrupt() cpu_irq_disable()
+#define Is_global_interrupt_enabled() cpu_irq_is_enabled()
+//! @}
+
+#endif /* UTILS_INTERRUPT_AVR8_H */
diff --git a/mcc_generated_files/system/utils/utils.h b/mcc_generated_files/system/utils/utils.h
new file mode 100644
index 0000000..37d3756
--- /dev/null
+++ b/mcc_generated_files/system/utils/utils.h
@@ -0,0 +1,52 @@
+/**
+ * utils Header File
+ *
+ * @file system.h
+ *
+ * @defgroup doc_driver_utils AVR Code utility functions
+ *
+ * @brief This file contains the compiler abstraction layer and code utilities for AVR.This module provides various abstraction layers and utilities to make code compatible between different compilers.
+ *
+ * @version Driver Version 1.0.1
+ * \{
+ *
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+#ifndef UTILS_H_INCLUDED
+#define UTILS_H_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Retrieve array size
+ */
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* UTILS_H_INCLUDED */
diff --git a/mcc_generated_files/system/utils/utils_assert.h b/mcc_generated_files/system/utils/utils_assert.h
new file mode 100644
index 0000000..891d017
--- /dev/null
+++ b/mcc_generated_files/system/utils/utils_assert.h
@@ -0,0 +1,60 @@
+/**
+ * utils_assert Header File
+ *
+ * @file utils_assert.h
+ *
+ * @defgroup doc_driver_utils_assert Functionality for assert
+ *
+ * @brief This file contains the generated utils_assert header file for the configuration bits driver.
+ *
+ * @version Driver Version 1.0.1
+*/
+/*
+© [2025] Microchip Technology Inc. and its subsidiaries.
+
+ Subject to your compliance with these terms, you may use Microchip
+ software and any derivatives exclusively with Microchip products.
+ You are responsible for complying with 3rd party license terms
+ applicable to your use of 3rd party software (including open source
+ software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
+ NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
+ SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
+ MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
+ WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
+ INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
+ KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
+ MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
+ FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
+ TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
+ EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
+ THIS SOFTWARE.
+*/
+
+#ifndef _ASSERT_H_INCLUDED
+#define _ASSERT_H_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdbool.h>
+
+/**
+ * @brief Assert macro
+ * Macro used to throw asserts. It can be mapped to different function based on debug level.
+ * @param[in] condition A condition to be checked; assert is thrown if the given condition is false.
+ */
+
+#ifdef DEBUG
+#define ASSERT(condition) \
+ if (!(condition)) \
+ while (true) \
+ ;
+#else
+#define ASSERT(condition) ((void)0)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _ASSERT_H_INCLUDED */